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

Reply via email to