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