Author: drew.mclaughlin
Date: Mon Jun  8 15:44:05 2009
New Revision: 1007

Modified:
    trunk/src/com/google/inject/internal/BindingBuilder.java
    trunk/src/com/google/inject/internal/InstanceBindingImpl.java
    trunk/test/com/google/inject/spi/ElementsTest.java
    trunk/test/com/google/inject/spi/SpiBindingsTest.java

Log:
change Scoping of InstanceBindings

Modified: trunk/src/com/google/inject/internal/BindingBuilder.java
==============================================================================
--- trunk/src/com/google/inject/internal/BindingBuilder.java    (original)
+++ trunk/src/com/google/inject/internal/BindingBuilder.java    Mon Jun  8  
15:44:05 2009
@@ -90,7 +90,7 @@

      BindingImpl<T> base = getBinding();
      setBinding(new InstanceBindingImpl<T>(
-        base.getSource(), base.getKey(), base.getScoping(),  
injectionPoints, instance));
+        base.getSource(), base.getKey(), Scoping.EAGER_SINGLETON,  
injectionPoints, instance));
    }

    public BindingBuilder<T> toProvider(Provider<? extends T> provider) {

Modified: trunk/src/com/google/inject/internal/InstanceBindingImpl.java
==============================================================================
--- trunk/src/com/google/inject/internal/InstanceBindingImpl.java       
(original)
+++ trunk/src/com/google/inject/internal/InstanceBindingImpl.java       Mon Jun 
  
8 15:44:05 2009
@@ -36,7 +36,7 @@
    public InstanceBindingImpl(InjectorImpl injector, Key<T> key, Object  
source,
        InternalFactory<? extends T> internalFactory, Set<InjectionPoint>  
injectionPoints,
        T instance) {
-    super(injector, key, source, internalFactory, Scoping.UNSCOPED);
+    super(injector, key, source, internalFactory, Scoping.EAGER_SINGLETON);
      this.injectionPoints = ImmutableSet.copyOf(injectionPoints);
      this.instance = instance;
      this.provider = Providers.of(instance);

Modified: trunk/test/com/google/inject/spi/ElementsTest.java
==============================================================================
--- trunk/test/com/google/inject/spi/ElementsTest.java  (original)
+++ trunk/test/com/google/inject/spi/ElementsTest.java  Mon Jun  8 15:44:05  
2009
@@ -562,6 +562,56 @@
      );
    }

+  public void testBindToInstanceInScope() {
+    checkModule(
+        new AbstractModule() {
+          protected void configure() {
+            AnnotatedBindingBuilder<String> b = bind(String.class);
+            b.toInstance("A");
+            b.in(Singleton.class);
+          }
+        },
+
+        new FailingElementVisitor() {
+          @Override public <T> Void visit(Binding<T> command) {
+            return null;
+          }
+        },
+
+        new FailingElementVisitor() {
+          @Override public Void visit(Message command) {
+            assertEquals("Setting the scope is not permitted when binding  
to a single instance.",
+                command.getMessage());
+            assertNull(command.getCause());
+            assertContains(command.getSource(), "ElementsTest.java");
+            return null;
+          }
+        }
+      );
+  }
+
+  public void testBindToInstanceScope() {
+    checkModule(
+        new AbstractModule() {
+          protected void configure() {
+            bind(String.class).toInstance("A");
+          }
+        },
+
+        new FailingElementVisitor() {
+          @Override public <T> Void visit(Binding<T> binding) {
+            assertEquals(Key.get(String.class), binding.getKey());
+            binding.acceptScopingVisitor(new  
FailingBindingScopingVisitor() {
+              public Void visitEagerSingleton() {
+                return null;
+              }
+            });
+            return null;
+          }
+        }
+      );
+  }
+
    /*if[AOP]*/
    public void testBindIntercepor() {
      final Matcher<Class> classMatcher = Matchers.subclassesOf(List.class);

Modified: trunk/test/com/google/inject/spi/SpiBindingsTest.java
==============================================================================
--- trunk/test/com/google/inject/spi/SpiBindingsTest.java       (original)
+++ trunk/test/com/google/inject/spi/SpiBindingsTest.java       Mon Jun  8  
15:44:05 2009
@@ -82,6 +82,11 @@
                  return null;
                }
              });
+            binding.acceptScopingVisitor(new  
FailingBindingScopingVisitor() {
+              public Void visitEagerSingleton() {
+                return null;
+              }
+            });
              return null;
            }
          }

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