Stuart, thank you for your email. Do you think that future emails related to the process below (mainly if I found any difficulties in building the whole thing plus observations, suggestions, etc) should be addressed to the dev mailing list?
M. On Sun, 2010-06-06 at 18:11 +0800, Stuart McCulloch wrote: > On 6 June 2010 17:22, Jemos Infra <jemos.in...@googlemail.com> wrote: > > > Stuart, a couple of things re the below: > > > > 1) The first URL downloads spice-inject and the whole Guice. Question: > > was Guice extended for this compatibility layer? What actually is the > > compatibility layer? Is it just "spice" or the whole lot? > > > The first URL is the umbrella project that provides the > compatibility layer - it contains a patched version of > Guice because we needed to tweak and experiment > with certain behavior during development, and handle > some corner-cases wrt. Nexus > > Most changes have been committed into Guice trunk. > There's only one patch left needed for Maven, which is > the type converter feature and this should go in soon. > (diff vanilla.src vs. src to see the remaining patches) > > We're still keeping our patched tree around for further > experimentation / point-releases because Guice 2.1 > has not yet been officially released - otherwise you'd > need to download and build Guice from scratch too. > > spice-inject also contains various modules that provide > classpath scanning and Plexus-like features on top of > Guice - these modules are combined into the two main > distro jars: spice-inject-bean and spice-inject-plexus > for convenience sake. [ these are not going back into > Guice as they're external extensions ] > > spice-inject-bean provides a component model on top > of JSR330 (component scanning, dynamic collections) > - see the examples module for, well, an example ;) > > spice-inject-plexus adds support for Plexus > > to replace the Plexus container in Maven3 you need: > > spice-inject-bean-1.2.1-SNAPSHOT.jar > spice-inject-plexus-1.2.1-SNAPSHOT.jar > guice-patches-2.1.4-SNAPSHOT-noaop.jar > > at least until the type converter patches go into Guice > > If it's just "spice", could we avoid from build the whole Guice and have the > > dependencies downloaded from the net? > > > > if you just want to download the dependencies then add > that second URL (the Sonatype Forge) as a snapshot > repository in your settings.xml, apply the patch from the > end of my original email to Maven 3 trunk, and do a build > > 2) The second URL points to a Maven repository. You were talking of a > > replacement container (which I thought of as being classworlds). However > > I was looking for the source code. > > > > for the new container source code see 1) ... specifically > guice-bean / guice-plexus which form most of the code > [ it's modular so there's no single project source tree ] > > also look at the example to see JSR330 in practice > > To summarise, I'd like to have the URLs only to the source code needed > > to build Maven 3 with the Guice bit. > > > > you already have it... build 1) and you have everything > needed - as explained you still need the patch of Guice > for now, but won't in the future > > or just use 2) to download the binary snapshots > > > > I understand that there is a compatibility layer, and I can build that > > (after knowing if I have to build the whole Guice as well with it). I > > understand that there is a replacement container (but I don't have a > > precise URL to the SVN code for it); I'd like to know if the Maven 3 > > trunk builds already on top of the above, or if I need another URL with > > Guice support, and if this case I'd like a precise URL for it. > > > > Maven 3 trunk still builds with Plexus at the moment, > but if you take the patch from the bottom of my earlier > email and apply it to Maven 3 then it will build with the > new artifacts > > or just grab a snapshot build of Maven 3, remove the > Plexus container jar and add the three artifacts listed > above... > > Thanks for your time. > > > > M. > > > > > > On Sun, 2010-06-06 at 16:40 +0800, Stuart McCulloch wrote: > > > On 6 June 2010 02:27, Jemos Infra <jemos.in...@googlemail.com> wrote: > > > > > > > Hi, > > > > > > > > Can somebody point me to the Maven 3 branch with Google guice? I > > > > undertsand that Google guice will replace Plexus classworlds, but the > > > > trunk still has Plexus in it. I'd like to have a look at what Maven 3 > > > > will look like when finished (from a code perspective). > > > > > > > > > > The idea is for Guice to replace the Plexus container > > > by using a compatibility layer to inject requirements > > > into components. (Plexus classworlds is more about > > > classloader isolation, which is orthogonal to injection > > > and may or may not be replaced in the near future) > > > > > > The Plexus container compatibility layer is here: > > > > > > http://svn.sonatype.org/spice/trunk/spice-inject > > > > > > Note that because this supports Plexus components > > > on top of Guice/JSR330 there's actually no changes > > > needed to Maven 3 to run it on top of Guice - that's > > > all handled by the compatibility layer, you can even > > > mix JSR330 and Plexus components/annotations. > > > > > > Below is the patch to build M3 with the replacement > > > container - note you'll need to build the spice-inject > > > project beforehand, unless you use the Sonatype > > > forge repository to get the latest snapshots: > > > > > > https://repository.sonatype.org/content/groups/forge > > > > > > Changing future plugins / Maven to use pure JSR330 > > > annotations is a separate discussion that will happen > > > on the dev list - first I need to write up our experience > > > at Sonatype with using a JSR330 component model* > > > so people have something concrete to discuss. > > > > > > [* apologies to the dev-list for delays in writing this up] > > > > > > HTH > > > > > > Index: maven-repository/pom.xml > > > =================================================================== > > > --- maven-repository/pom.xml (revision 951813) > > > +++ maven-repository/pom.xml (working copy) > > > @@ -39,8 +39,8 @@ > > > <artifactId>maven-compat</artifactId> > > > </dependency> > > > <dependency> > > > - <groupId>org.codehaus.plexus</groupId> > > > - <artifactId>plexus-container-default</artifactId> > > > + <groupId>org.sonatype.spice</groupId> > > > + <artifactId>spice-inject-plexus</artifactId> > > > </dependency> > > > <dependency> > > > <groupId>org.codehaus.plexus</groupId> > > > Index: apache-maven/pom.xml > > > =================================================================== > > > --- apache-maven/pom.xml (revision 951813) > > > +++ apache-maven/pom.xml (working copy) > > > @@ -43,8 +43,8 @@ > > > <artifactId>maven-compat</artifactId> > > > </dependency> > > > <dependency> > > > - <groupId>org.codehaus.plexus</groupId> > > > - <artifactId>plexus-container-default</artifactId> > > > + <groupId>org.sonatype.spice</groupId> > > > + <artifactId>spice-inject-plexus</artifactId> > > > </dependency> > > > <!-- CLI --> > > > <dependency> > > > Index: maven-compat/pom.xml > > > =================================================================== > > > --- maven-compat/pom.xml (revision 951813) > > > +++ maven-compat/pom.xml (working copy) > > > @@ -53,8 +53,8 @@ > > > <artifactId>plexus-interpolation</artifactId> > > > </dependency> > > > <dependency> > > > - <groupId>org.codehaus.plexus</groupId> > > > - <artifactId>plexus-container-default</artifactId> > > > + <groupId>org.sonatype.spice</groupId> > > > + <artifactId>spice-inject-plexus</artifactId> > > > </dependency> > > > <dependency> > > > <groupId>org.codehaus.plexus</groupId> > > > Index: maven-model-builder/pom.xml > > > =================================================================== > > > --- maven-model-builder/pom.xml (revision 951813) > > > +++ maven-model-builder/pom.xml (working copy) > > > @@ -41,8 +41,8 @@ > > > <artifactId>maven-model</artifactId> > > > </dependency> > > > <dependency> > > > - <groupId>org.codehaus.plexus</groupId> > > > - <artifactId>plexus-container-default</artifactId> > > > + <groupId>org.sonatype.spice</groupId> > > > + <artifactId>spice-inject-plexus</artifactId> > > > <scope>test</scope> > > > </dependency> > > > </dependencies> > > > Index: pom.xml > > > =================================================================== > > > --- pom.xml (revision 951813) > > > +++ pom.xml (working copy) > > > @@ -44,6 +44,7 @@ > > > <plexusVersion>1.5.4</plexusVersion> > > > <plexusInterpolationVersion>1.11</plexusInterpolationVersion> > > > <plexusUtilsVersion>2.0.4</plexusUtilsVersion> > > > + <spiceInjectVersion>1.2.1-SNAPSHOT</spiceInjectVersion> > > > <wagonVersion>1.0-beta-6</wagonVersion> > > > <securityDispatcherVersion>1.3</securityDispatcherVersion> > > > <cipherVersion>1.4</cipherVersion> > > > @@ -240,15 +241,9 @@ > > > <version>${plexusUtilsVersion}</version> > > > </dependency> > > > <dependency> > > > - <groupId>org.codehaus.plexus</groupId> > > > - <artifactId>plexus-container-default</artifactId> > > > - <version>${plexusVersion}</version> > > > - <exclusions> > > > - <exclusion> > > > - <groupId>junit</groupId> > > > - <artifactId>junit</artifactId> > > > - </exclusion> > > > - </exclusions> > > > + <groupId>org.sonatype.spice</groupId> > > > + <artifactId>spice-inject-plexus</artifactId> > > > + <version>${spiceInjectVersion}</version> > > > </dependency> > > > <dependency> > > > <groupId>org.codehaus.plexus</groupId> > > > Index: maven-core/pom.xml > > > =================================================================== > > > --- maven-core/pom.xml (revision 951813) > > > +++ maven-core/pom.xml (working copy) > > > @@ -51,8 +51,8 @@ > > > </dependency> > > > <!-- Plexus --> > > > <dependency> > > > - <groupId>org.codehaus.plexus</groupId> > > > - <artifactId>plexus-container-default</artifactId> > > > + <groupId>org.sonatype.spice</groupId> > > > + <artifactId>spice-inject-plexus</artifactId> > > > </dependency> > > > <dependency> > > > <groupId>org.codehaus.plexus</groupId> > > > Index: maven-plugin-api/pom.xml > > > =================================================================== > > > --- maven-plugin-api/pom.xml (revision 951813) > > > +++ maven-plugin-api/pom.xml (working copy) > > > @@ -48,8 +48,8 @@ > > > </exclusions> > > > </dependency> > > > <dependency> > > > - <groupId>org.codehaus.plexus</groupId> > > > - <artifactId>plexus-container-default</artifactId> > > > + <groupId>org.sonatype.spice</groupId> > > > + <artifactId>spice-inject-plexus</artifactId> > > > </dependency> > > > </dependencies> > > > > > > Index: maven-embedder/pom.xml > > > =================================================================== > > > --- maven-embedder/pom.xml (revision 951813) > > > +++ maven-embedder/pom.xml (working copy) > > > @@ -54,8 +54,8 @@ > > > <artifactId>plexus-classworlds</artifactId> > > > </dependency> > > > <dependency> > > > - <groupId>org.codehaus.plexus</groupId> > > > - <artifactId>plexus-container-default</artifactId> > > > + <groupId>org.sonatype.spice</groupId> > > > + <artifactId>spice-inject-plexus</artifactId> > > > </dependency> > > > <dependency> > > > <groupId>org.codehaus.plexus</groupId> > > > > > > > > > > Thanks. > > > > > > > > M. > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: users-unsubscr...@maven.apache.org > > For additional commands, e-mail: users-h...@maven.apache.org > > > > > > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@maven.apache.org For additional commands, e-mail: users-h...@maven.apache.org