Recent pushes to the source repo.

114 views
Skip to first unread message

Christian Gruber

unread,
May 16, 2013, 12:34:58 PM5/16/13
to google...@googlegroups.com

Hey all,

I've been trying to get our internal changes out, and I"m now making progress and exporting. This is in anticipation of a release of guice real-soon-now. The main thing after these changes are exported is to restore the maven build (which seems to have been borked by our upgrade to ASM4, and I just haven't had a moment to fix it… Stuart - you are invited to help with that. :D) Also, if there are any patches, fixes, suggestions people want to get in before a new Guice release, once I sync us all the way (today and/or tomorrow), please start speaking up.

That said, the goal is to release more frequently, even simply point releases with minor fixes, so we can get out of this every-two-year thing. Guice is relatively stable, but we're trying new things with Dagger, and some of those things may be useful in Guice. Additionally, the widespread deployment of Java7 and the forthcoming Java8 may prove to have worthwhile advantages to consider, so by no means is Guice, however stable, a done deal.

I want to thank everyone for being so patient while we ramp this up. We're addressing a lot of internal usage issues in Google, partly by tooling, partly by using Dagger where its use-cases are compelling, partly by improving Guice to be tighter, detect error earlier, etc. That internal work has meant we haven't been as external with our changes and directions as we would, perhaps, have preferred. But there are now plural full time staff charged with working on Dependency Injection in Java inside Google plus a cadre of 20% timers. This should mean love for Guice as well as new efforts.

That said, I also want to plug the project error-prone. (https://code.google.com/p/error-prone/). It treats certain software errors as compiler errors, and we (Sam B) have started down the road of adding certain degenerate guice usage patterns as error-prone errors. That stuff isn't exported yet, but I encourage people to use it. Its like a tighter, more narrowly-focused find-bugs, and they've taken great effort to make sure that they really are "errors." not warnings to be ignored. We plan on doing some detection of common problems in dependency-injection code as error-prone compiler errors. So check it out folks.

In the mean-time, let's get the march to a 3.1 or 4.0 (still figuring that one out) started!

sincerely,
Christian.

Christian Gruber :: Google, Inc. :: Java Core Libraries :: Dependency Injection
email: cgr...@google.com :::: mobile: +1 (646) 807-9839

Sam Berlin

unread,
May 16, 2013, 12:46:21 PM5/16/13
to google...@googlegroups.com

Thanks for fixing all of this, Christian!

For everyone: please try out trunk. Let us know if things work or don't work for you. It's been working wonders for us internally at Google. 

I think there's still a few changes left to push out, so maybe hold off till Christian gives the all clear. 

Sorry for the delay, and thank you all for being so patient! 

sam

--
You received this message because you are subscribed to the Google Groups "google-guice" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-guice...@googlegroups.com.
To post to this group, send email to google...@googlegroups.com.
Visit this group at http://groups.google.com/group/google-guice?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Stuart McCulloch

unread,
May 16, 2013, 1:08:23 PM5/16/13
to google...@googlegroups.com
On 16 May 2013, at 17:34, Christian Gruber wrote:

Hey all,

I've been trying to get our internal changes out, and I"m now making progress and exporting. This is in anticipation of a release of guice real-soon-now. The main thing after these changes are exported is to restore the maven build (which seems to have been borked by our upgrade to ASM4, and I just haven't had a moment to fix it… Stuart - you are invited to help with that. :D)

No worries, it's a relatively simple fix but I'll wait to get the all-clear before I push anything - don't want to disrupt the flow of commits ;)

Also, if there are any patches, fixes, suggestions people want to get in before a new Guice release, once I sync us all the way (today and/or tomorrow), please start speaking up.

I'd really like to expose Guava as a direct dependency rather than keep jarjar'ing it - other than that my patches are relatively minor (I'll rebase them once the repos are back in sync)

That said, the goal is to release more frequently, even simply point releases with minor fixes, so we can get out of this every-two-year thing. Guice is relatively stable, but we're trying new things with Dagger, and some of those things may be useful in Guice. Additionally, the widespread deployment of Java7 and the forthcoming Java8 may prove to have worthwhile advantages to consider, so by no means is Guice, however stable, a done deal.

I want to thank everyone for being so patient while we ramp this up. We're addressing a lot of internal usage issues in Google, partly by tooling, partly by using Dagger where its use-cases are compelling, partly by improving Guice to be tighter, detect error earlier, etc. That internal work has meant we haven't been as external with our changes and directions as we would, perhaps, have preferred. But there are now plural full time staff charged with working on Dependency Injection in Java inside Google plus a cadre of 20% timers. This should mean love for Guice as well as new efforts.

That said, I also want to plug the project error-prone. (https://code.google.com/p/error-prone/). It treats certain software errors as compiler errors, and we (Sam B) have started down the road of adding certain degenerate guice usage patterns as error-prone errors. That stuff isn't exported yet, but I encourage people to use it. Its like a tighter, more narrowly-focused find-bugs, and they've taken great effort to make sure that they really are "errors." not warnings to be ignored. We plan on doing some detection of common problems in dependency-injection code as error-prone compiler errors. So check it out folks.

In the mean-time, let's get the march to a 3.1 or 4.0 (still figuring that one out) started!

Looking forward to it - thanks for sorting this out.

sincerely,
Christian.

Christian Gruber :: Google, Inc. :: Java Core Libraries :: Dependency Injection
email: cgr...@google.com :::: mobile: +1 (646) 807-9839


Message has been deleted

elect...@gmail.com

unread,
May 16, 2013, 3:27:15 PM5/16/13
to google...@googlegroups.com
Thank you for your work!

robertdup

unread,
May 17, 2013, 5:36:48 AM5/17/13
to google...@googlegroups.com
Wow !  I've been waiting for this moment for so long. Thanks to keep working on this AWESOME project !

Tim Boudreau

unread,
May 19, 2013, 12:05:40 AM5/19/13
to google...@googlegroups.com
Thanks!  Really nice to be closer to a release!

In the "be careful what you wish for" department, I could tell you did something because my builds started failing :-)

Did something strange happen with the version of cglib?  Most of my builds are failing now with:
com.google.inject.internal.guava.collect.$ComputationException: java.lang.NoClassDefFoundError: Could not initialize class com.google.inject.internal.cglib.core.$MethodWrapper
	at com.google.inject.internal.cglib.core.$DuplicatesPredicate.evaluate(DuplicatesPredicate.java:25)

I'm guessing the wrong version of cglib is on the classpath, but it's not immediately obvious where to fix it.


Any "doh!" things you can think of that would have caused this?

-Tim

Tim Boudreau

unread,
May 19, 2013, 12:23:23 AM5/19/13
to google...@googlegroups.com
On Sunday, May 19, 2013 12:05:40 AM UTC-4, Tim Boudreau wrote:
In the "be careful what you wish for" department, I could tell you did something because my builds started failing :-)

For anyone else with this problem, blowing away Jenkins' checkout and doing a fresh checkout cured it - probably some stale non-version-controlled bits that the build didn't replace if present.

-Tim

Christian Gruber

unread,
May 19, 2013, 1:33:10 AM5/19/13
to google...@googlegroups.com
CGLIB was updated to 3.0, and ASM was updated (therefore) to 4.0. This
is working in ant, but if you have the previous versions around, since
some build rules use globs of jars, you have to ensure you remove all
prior versions.

Also (currently) the maven build is not working, but we should have that
fixed up again shortly.

Christian.
> --
> You received this message because you are subscribed to the Google
> Groups "google-guice" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to google-guice...@googlegroups.com.
> To post to this group, send email to google...@googlegroups.com.
> Visit this group at http://groups.google.com/group/google-guice?hl=en.
> For more options, visit https://groups.google.com/groups/opt_out.


Stuart McCulloch

unread,
May 20, 2013, 5:59:08 AM5/20/13
to google...@googlegroups.com
FYI, the following patch will fix the maven build:

diff --git a/core/pom.xml b/core/pom.xml
index 283e7e4..43570f2 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -15,6 +15,7 @@

<properties>
<cglib.version>3.0</cglib.version>
+ <asm.version>4.0</asm.version>
</properties>

<dependencies>
@@ -39,6 +40,11 @@
<version>${cglib.version}</version>
</dependency>
<dependency>
+ <groupId>org.ow2.asm</groupId>
+ <artifactId>asm-util</artifactId>
+ <version>${asm.version}</version>
+ </dependency>
+ <dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject-tck</artifactId>
<version>1</version>
@@ -207,6 +213,12 @@
<version>${cglib.version}</version>
<optional>true</optional>
</dependency>
+ <dependency>
+ <groupId>org.ow2.asm</groupId>
+ <artifactId>asm-util</artifactId>
+ <version>${asm.version}</version>
+ <optional>true</optional>
+ </dependency>
</dependencies>
<build>
<plugins>
@@ -215,7 +227,7 @@
<artifactId>jarjar-maven-plugin</artifactId>
<configuration>
<includes>
- <include>*:asm</include>
+ <include>*:asm*</include>
<include>*:cglib</include>
<include>*:guava</include>
<include>*:jsr305</include>

Christian Gruber

unread,
May 20, 2013, 12:26:52 PM5/20/13
to google...@googlegroups.com
Got it. Thanks, Stuart. You rock.

I'll push it in from our side.

Christian.
Reply all
Reply to author
Forward
0 new messages