On 6 June 2010 17:22, Jemos Infra <[email protected]> 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 <[email protected]> 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: [email protected] > For additional commands, e-mail: [email protected] > > -- Cheers, Stuart
