Search in sources :

Example 46 with AbstractModule

use of com.google.inject.AbstractModule in project guice by google.

the class OverrideModuleTest method testStandardScopeAnnotation.

public void testStandardScopeAnnotation() {
    final SingleUseScope scope = new SingleUseScope();
    Module module = new AbstractModule() {

        @Override
        protected void configure() {
            bindScope(TestScopeAnnotation.class, scope);
            bind(String.class).in(TestScopeAnnotation.class);
        }
    };
    assertFalse(scope.used);
    Guice.createInjector(module);
    assertTrue(scope.used);
}
Also used : Module(com.google.inject.Module) PrivateModule(com.google.inject.PrivateModule) AbstractModule(com.google.inject.AbstractModule) AbstractModule(com.google.inject.AbstractModule)

Example 47 with AbstractModule

use of com.google.inject.AbstractModule in project guice by google.

the class Jsr330Test method testProviderInject.

public void testProviderInject() {
    Injector injector = Guice.createInjector(new AbstractModule() {

        @Override
        protected void configure() {
            bind(B.class).annotatedWith(Names.named("jodie")).toInstance(b);
            bind(C.class).toInstance(c);
            bind(D.class).annotatedWith(RED).toInstance(d);
            bind(E.class).toInstance(e);
            bind(G.class);
        }
    });
    G g = injector.getInstance(G.class);
    assertSame(b, g.bProvider.get());
    assertSame(c, g.cProvider.get());
    assertSame(d, g.dProvider.get());
    assertSame(e, g.eProvider.get());
}
Also used : Injector(com.google.inject.Injector) AbstractModule(com.google.inject.AbstractModule)

Example 48 with AbstractModule

use of com.google.inject.AbstractModule in project guice by google.

the class FactoryModuleBuilderTest method testSingletonScopeOnAssistedClassIsIgnored.

public void testSingletonScopeOnAssistedClassIsIgnored() {
    try {
        Guice.createInjector(new AbstractModule() {

            @Override
            protected void configure() {
                install(new FactoryModuleBuilder().build(SingletonFactory.class));
            }
        });
        fail();
    } catch (CreationException ce) {
        assertEquals(1, ce.getErrorMessages().size());
        assertEquals("Found scope annotation [" + Singleton.class.getName() + "]" + " on implementation class [" + AssistedSingleton.class.getName() + "]" + " of AssistedInject factory [" + SingletonFactory.class.getName() + "]." + "\nThis is not allowed, please remove the scope annotation.", Iterables.getOnlyElement(ce.getErrorMessages()).getMessage());
    }
}
Also used : Singleton(com.google.inject.Singleton) CreationException(com.google.inject.CreationException) AbstractModule(com.google.inject.AbstractModule)

Example 49 with AbstractModule

use of com.google.inject.AbstractModule in project guice by google.

the class FactoryModuleBuilderTest method testMultipleReturnTypes.

public void testMultipleReturnTypes() {
    Injector injector = Guice.createInjector(new AbstractModule() {

        @Override
        protected void configure() {
            bind(Double.class).toInstance(5.0d);
            install(new FactoryModuleBuilder().build(VersatileCarFactory.class));
        }
    });
    VersatileCarFactory factory = injector.getInstance(VersatileCarFactory.class);
    Mustang mustang = factory.getMustang(Color.RED);
    assertEquals(Color.RED, mustang.color);
    Beetle beetle = factory.getBeetle(Color.GREEN);
    assertEquals(Color.GREEN, beetle.color);
}
Also used : Injector(com.google.inject.Injector) AbstractModule(com.google.inject.AbstractModule)

Example 50 with AbstractModule

use of com.google.inject.AbstractModule in project guice by google.

the class FactoryModuleBuilderTest method testFactoryPublicAndReturnTypeNotPublic.

public void testFactoryPublicAndReturnTypeNotPublic() {
    try {
        Guice.createInjector(new AbstractModule() {

            @Override
            protected void configure() {
                install(new FactoryModuleBuilder().implement(Hidden.class, HiddenImpl.class).build(NotHidden.class));
            }
        });
        fail("Expected CreationException");
    } catch (CreationException ce) {
        assertEquals(NotHidden.class.getName() + " is public, but has a method that returns a non-public type: " + Hidden.class.getName() + ". Due to limitations with java.lang.reflect.Proxy, this is not allowed. " + "Please either make the factory non-public or the return type public.", Iterables.getOnlyElement(ce.getErrorMessages()).getMessage());
    }
}
Also used : CreationException(com.google.inject.CreationException) AbstractModule(com.google.inject.AbstractModule)

Aggregations

AbstractModule (com.google.inject.AbstractModule)845 Injector (com.google.inject.Injector)525 Module (com.google.inject.Module)232 CreationException (com.google.inject.CreationException)162 Provider (com.google.inject.Provider)64 Key (com.google.inject.Key)55 ConfigModule (co.cask.cdap.common.guice.ConfigModule)54 AuthorizationEnforcementModule (co.cask.cdap.security.authorization.AuthorizationEnforcementModule)49 DataSetsModules (co.cask.cdap.data.runtime.DataSetsModules)46 PrivateModule (com.google.inject.PrivateModule)46 AuthenticationContextModules (co.cask.cdap.security.auth.context.AuthenticationContextModules)45 AuthorizationTestModule (co.cask.cdap.security.authorization.AuthorizationTestModule)43 TypeLiteral (com.google.inject.TypeLiteral)43 DiscoveryRuntimeModule (co.cask.cdap.common.guice.DiscoveryRuntimeModule)42 BeforeClass (org.junit.BeforeClass)38 Map (java.util.Map)37 CConfiguration (co.cask.cdap.common.conf.CConfiguration)36 UnsupportedUGIProvider (co.cask.cdap.security.impersonation.UnsupportedUGIProvider)36 NonCustomLocationUnitTestModule (co.cask.cdap.common.guice.NonCustomLocationUnitTestModule)35 DefaultOwnerAdmin (co.cask.cdap.security.impersonation.DefaultOwnerAdmin)35