Revision: 1233
Author: [email protected]
Date: Wed Sep 15 15:30:59 2010
Log: Fix singletons to be eager as intended.
http://code.google.com/p/google-guice/source/detail?r=1233
Modified:
/trunk/extensions/mini/src/com/google/inject/mini/MiniGuice.java
/trunk/extensions/mini/test/com/google/inject/mini/MiniGuiceTest.java
=======================================
--- /trunk/extensions/mini/src/com/google/inject/mini/MiniGuice.java Mon
Sep 13 00:25:39 2010
+++ /trunk/extensions/mini/src/com/google/inject/mini/MiniGuice.java Wed
Sep 15 15:30:59 2010
@@ -260,6 +260,7 @@
private void putBinding(Key key, Provider<Object> provider, boolean
singleton) {
if (singleton) {
+ singletons.add(key);
final Provider<Object> unscoped = provider;
provider = new Provider<Object>() {
private Object onlyInstance = UNINITIALIZED;
=======================================
--- /trunk/extensions/mini/test/com/google/inject/mini/MiniGuiceTest.java
Mon Sep 13 00:25:39 2010
+++ /trunk/extensions/mini/test/com/google/inject/mini/MiniGuiceTest.java
Wed Sep 15 15:30:59 2010
@@ -16,6 +16,7 @@
package com.google.inject.mini;
import com.google.inject.Provides;
+import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicReference;
import javax.inject.Inject;
import javax.inject.Named;
@@ -221,4 +222,33 @@
public static class Q extends P {
@Inject Q() {}
}
-}
+
+ public void testSingletonsAreEager() {
+ final AtomicBoolean sInjected = new AtomicBoolean();
+
+ R.injected = false;
+ MiniGuice.inject(A.class, new Object() {
+ @Provides F provideF(R r) {
+ return new F();
+ }
+
+ @Provides @Singleton S provideS() {
+ sInjected.set(true);
+ return new S();
+ }
+ });
+
+ assertTrue(R.injected);
+ assertTrue(sInjected.get());
+ }
+
+ @Singleton
+ static class R {
+ static boolean injected = false;
+ @Inject R() {
+ injected = true;
+ }
+ }
+
+ static class S {}
+}
--
You received this message because you are subscribed to the Google Groups
"google-guice-dev" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/google-guice-dev?hl=en.