Just ran through all the Maven ITs with a local build of Maven3 patched to use 
Guice trunk, and all passed. Personally I'd still recommend Sisu-Guice though ;)

PS. in the early days there was a minor API discrepancy relating to the 
getTypeConverterBindings method that was originally added in Sisu-Guice and 
then merged upstream. The first version of this method returned List, but this 
was changed to Set when the patch was reviewed and merged into Guice. 
Unfortunately this broke an old version of Sisu that expected to see List, when 
in fact it only really needed to use the result as an Iterable (which would 
have worked with both List and Set). Since then I've been much more careful 
about picking collection types in client code!

For reference here's the patch I applied to Maven3 - note you can remove the 
classifier if you wanted to use Guice with AOP enabled (it's not required 
though)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/maven-core/pom.xml b/maven-core/pom.xml
index acb93b2..db218c2 100644
--- a/maven-core/pom.xml
+++ b/maven-core/pom.xml
@@ -72,6 +72,11 @@
     </dependency>
     <!-- Plexus -->
     <dependency>
+      <groupId>com.google.inject</groupId>
+      <artifactId>guice</artifactId>
+      <classifier>no_aop</classifier>
+    </dependency>
+    <dependency>
       <groupId>org.sonatype.sisu</groupId>
       <artifactId>sisu-inject-plexus</artifactId>
     </dependency>
diff --git a/maven-model-builder/pom.xml b/maven-model-builder/pom.xml
index 505a8e2..3b52cb1 100644
--- a/maven-model-builder/pom.xml
+++ b/maven-model-builder/pom.xml
@@ -43,6 +43,12 @@
     </dependency>
 
     <dependency>
+      <groupId>com.google.inject</groupId>
+      <artifactId>guice</artifactId>
+      <classifier>no_aop</classifier>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
       <groupId>org.sonatype.sisu</groupId>
       <artifactId>sisu-inject-plexus</artifactId>
       <scope>test</scope>
diff --git a/pom.xml b/pom.xml
index 485e5ba..b9bae27 100644
--- a/pom.xml
+++ b/pom.xml
@@ -49,7 +49,7 @@
     <plexusVersion>1.5.5</plexusVersion>
     <plexusInterpolationVersion>1.14</plexusInterpolationVersion>
     <plexusUtilsVersion>2.0.6</plexusUtilsVersion>
-    <sisuInjectVersion>2.3.0</sisuInjectVersion>
+    <sisuInjectVersion>2.3.1</sisuInjectVersion>
     <wagonVersion>2.3-SNAPSHOT</wagonVersion>
     <securityDispatcherVersion>1.3</securityDispatcherVersion>
     <cipherVersion>1.7</cipherVersion>
@@ -172,14 +172,25 @@
         <version>${plexusUtilsVersion}</version>
       </dependency>
       <dependency>
+        <groupId>com.google.inject</groupId>
+        <artifactId>guice</artifactId>
+        <version>3.1.0-SNAPSHOT</version>
+        <classifier>no_aop</classifier>
+        <exclusions>
+          <exclusion>
+            <groupId>com.google.guava</groupId>
+            <artifactId>guava</artifactId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
         <groupId>org.sonatype.sisu</groupId>
         <artifactId>sisu-inject-plexus</artifactId>
         <version>${sisuInjectVersion}</version>
         <exclusions>
           <exclusion>
-            <!-- Decouple build from MNG-3443 and ensure optional/unused 
dependency from sisu-guice stays out -->
-            <groupId>org.sonatype.sisu.inject</groupId>
-            <artifactId>cglib</artifactId>
+            <groupId>org.sonatype.sisu</groupId>
+            <artifactId>sisu-guice</artifactId>
           </exclusion>
         </exclusions>
       </dependency>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

On 27 Sep 2012, at 23:06, Olivier Lamy wrote:
> 2012/9/27 Stuart McCulloch <[email protected]>:
>> On 27 Sep 2012, at 21:50, Olivier Lamy wrote:
>>> 2012/9/27 Jason van Zyl <[email protected]>:
>>>> On Sep 27, 2012, at 4:33 PM, Olivier Lamy <[email protected]> wrote:
>>>> 
>>>>> Hi,
>>>>> Good news.
>>>>> 
>>>>>> 
>>>>>> * fix for a missing JarFile.close when scanning certain "file:" 
>>>>>> classpath entries
>>>>>> * support for injecting the containing BundleContext when running inside 
>>>>>> OSGi
>>>>>> * sisu-guice dependency bumped up to 3.1.2
>>>>> 
>>>>> Perso I'd like we don't use a fork of guice.
>>>> 
>>>> It's not a fork of Guice. You do understand that we can never use stock 
>>>> Guice without Sisu? Sisu is a set of extensions that sit on top of Guice. 
>>>> All of our patches except for one has been absorbed by the Guice team and 
>>>> Stuart is a Guice committer. Just making sure you understand the 
>>>> distinction in that we have to support Plexus components forever in the 
>>>> plugins and extensions that exist and Guice by itself is never going to do 
>>>> that.
>>> 
>>> I talk about https://github.com/sonatype/sisu-guice
>>> 
>>> Not a fork of guice http://code.google.com/p/google-guice/source/browse/
>>> 
>>> So I'm curious how we can named that ?
>> 
>> Just to clarify to the wider audience... Sisu-Guice is a fork of Guice with 
>> various internal enhancements, whereas Sisu is a container built on top of 
>> (Sisu-)Guice that provides additional external enhancements to JSR330 (such 
>> as support for injection of dynamic collections, classpath 
>> scanning/indexing, auto-binding, etc.) as well as being able to mimic the 
>> Plexus API + semantics. As I mentioned in my original post one of the items 
>> on the roadmap is to reduce the coupling between Sisu and Guice, so people 
>> can re-use all or parts of it with other JSR330 implementations.
>> 
> 
> Sounds a good goal to be able to replace any other impl ! (sorry I
> didn't read the post yet)
> 
>> Once Guice deploys its next release with the ProvisionListener API you 
>> should be able to use it with Sisu (I'll try running the ITs to verify 
>> this). You may still want to consider using Sisu-Guice for the various 
>> documented enhancements that have not yet been merged into Guice trunk, but 
>> I'm not going to force it on people. It should be just a matter of excluding 
>> and replacing the dependency in the parent pom where you consume Sisu.
>> 
> Nice. I had a bad experience with jenkins which mix up guice and sisu-guice.
> But sure that was only a matter of exclusions.
> 
> Thanks for the summary !
>>>> 
>>>>> What is the status of that, when will that be possible ?
>>>>> 
>>>>>> 
>>>>>> I also ran the Maven ITs against this release to verify.
>>>>>> 
>>>>>> Still plenty left to do on the roadmap 
>>>>>> (http://wiki.eclipse.org/Sisu/Roadmap) - including cleanup of the Sisu 
>>>>>> API/SPI to make it more reusable and less tied to Guice for the future.
>>>>>> 
>>>>>> If anyone has questions, ideas, or wants to help out then they're very 
>>>>>> welcome (see support / developers links on the main page) otherwise I'll 
>>>>>> send the occasional note to keep everyone in the loop.
>>>>>> 
>>>>>> --
>>>>>> Cheers, Stuart
>>>>>> 
>>>>>> Begin forwarded message:
>>>>>> 
>>>>>>> From: Stuart McCulloch <[email protected]>
>>>>>>> Date: 25 September 2012 22:39:00 GMT+01:00
>>>>>>> To: [email protected]
>>>>>>> Subject: Initial contribution milestone (0.0.0.M0)
>>>>>>> 
>>>>>>> Hi folks,
>>>>>>> 
>>>>>>> Since the two main contributions were approved:
>>>>>>> 
>>>>>>> https://bugs.eclipse.org/bugs/show_bug.cgi?id=372081
>>>>>>> https://bugs.eclipse.org/bugs/show_bug.cgi?id=385803
>>>>>>> 
>>>>>>> and the nightly builds were in a good state:
>>>>>>> 
>>>>>>> https://hudson.eclipse.org/hudson/job/sisu-inject-nightly/10/
>>>>>>> https://hudson.eclipse.org/hudson/job/sisu-plexus-nightly/17/
>>>>>>> 
>>>>>>> I decided to tag our first (baseline) milestone:
>>>>>>> 
>>>>>>> http://git.eclipse.org/c/sisu/org.eclipse.sisu.inject.git/tag/?id=milestones/0.0.0.M0
>>>>>>> http://git.eclipse.org/c/sisu/org.eclipse.sisu.plexus.git/tag/?id=milestones/0.0.0.M0
>>>>>>> 
>>>>>>> The major difference between this and the original (pre-Eclipse) 
>>>>>>> codebase is the move to "org.eclipse.sisu" as the primary package and 
>>>>>>> the new Tycho-driven build.
>>>>>>> 
>>>>>>> To prove this was indeed the case I reworked the original Sisu build to 
>>>>>>> take this milestone and repackage the code back to the original 
>>>>>>> "org.sonatype..." packages:
>>>>>>> 
>>>>>>> https://github.com/sonatype/sisu/blob/master/legacy/containers/sisu-inject-bean/pom.xml
>>>>>>> https://github.com/sonatype/sisu/blob/master/legacy/containers/sisu-inject-plexus/pom.xml
>>>>>>> 
>>>>>>> I then verified the binaries, sources, and javadoc were sufficiently 
>>>>>>> similar to the (pre-Eclipse) 2.3.0 release and tagged this build in the 
>>>>>>> old repository as sisu-2.3.1.
>>>>>>> 
>>>>>>> This should give us a firm foundation as we work on improving the 
>>>>>>> API/SPI.
>>>>>>> 
>>>>>>> --
>>>>>>> Cheers, Stuart
>>>>>>> 
>>>>>>> PS. There are plenty of tasks in the backlog if people would like to 
>>>>>>> help out and learn more about the Sisu codebase:
>>>>>>> 
>>>>>>> https://bugs.eclipse.org/bugs/buglist.cgi?resolution=---&classification=Technology&query_format=advanced&component=Inject&component=Plexus&product=Sisu
>>>>>>> 
>>>>>>> ;)
>>>>>>> 
>>>>>> 
>>>>> 
>>>>> --
>>>>> Olivier Lamy
>>>>> Talend: http://coders.talend.com
>>>>> http://twitter.com/olamy | http://linkedin.com/in/olamy
>>>> 
>>>> Thanks,
>>>> 
>>>> Jason
>>>> 
>>>> ----------------------------------------------------------
>>>> Jason van Zyl
>>>> Founder & CTO, Sonatype
>>>> Founder,  Apache Maven
>>>> http://twitter.com/jvanzyl
>>>> ---------------------------------------------------------
>>>> 
>>>> I never make the mistake of arguing with people for whose opinions I have 
>>>> no respect.
>>>> 
>>>> -- Edward Gibbon
>>> 
>>> --
>>> Olivier Lamy
>>> Talend: http://coders.talend.com
>>> http://twitter.com/olamy | http://linkedin.com/in/olamy
> 
> -- 
> Olivier Lamy
> Talend: http://coders.talend.com
> http://twitter.com/olamy | http://linkedin.com/in/olamy

Reply via email to