Revision: 1327
Author: sberlin
Date: Fri Oct 29 05:00:27 2010
Log: make sure MembersInjector dependencies don't blow up on requireExplicitBindings.
http://code.google.com/p/google-guice/source/detail?r=1327

Modified:
 /trunk/core/src/com/google/inject/internal/InjectorImpl.java
 /trunk/core/test/com/google/inject/JitBindingsTest.java

=======================================
--- /trunk/core/src/com/google/inject/internal/InjectorImpl.java Tue Oct 26 19:03:52 2010 +++ /trunk/core/src/com/google/inject/internal/InjectorImpl.java Fri Oct 29 05:00:27 2010
@@ -212,7 +212,7 @@
       throws ErrorsException {


-    boolean jitOverride = isProvider(key) || isTypeLiteral(key);
+ boolean jitOverride = isProvider(key) || isTypeLiteral(key) || isMembersInjector(key); if(options.jitDisabled && jitType == JitLimitation.NO_JIT && !jitOverride) {
       throw errors.jitDisabled(key).toException();
     }
=======================================
--- /trunk/core/test/com/google/inject/JitBindingsTest.java Thu Aug 26 15:36:19 2010 +++ /trunk/core/test/com/google/inject/JitBindingsTest.java Fri Oct 29 05:00:27 2010
@@ -322,6 +322,25 @@
     assertEquals(foo.literal.getRawType(), String.class);
     assertEquals(of("bar"), foo.set);
   }
+
+  public void testMembersInjectorsCanBeInjected() {
+    Injector injector = new InjectorBuilder()
+    .requireExplicitBindings()
+    .addModules(new AbstractModule() {
+      @Override protected void configure() {
+      }
+
+      @Provides String data(MembersInjector<String> mi) {
+        String data = "foo";
+        mi.injectMembers(data);
+        return data;
+      }
+    })
+    .build();
+
+    String data = injector.getInstance(String.class);
+    assertEquals("foo", data);
+  }

   private void ensureWorks(Injector injector, Class<?>... classes) {
     for(int i = 0; i < classes.length; i++) {

--
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.

Reply via email to