Example usage for org.apache.ibatis.session Configuration getInterceptors

List of usage examples for org.apache.ibatis.session Configuration getInterceptors

Introduction

In this page you can find the example usage for org.apache.ibatis.session Configuration getInterceptors.

Prototype

public List<Interceptor> getInterceptors() 

Source Link

Usage

From source file:org.mybatis.guice.configuration.ConfigurationProviderTest.java

License:Apache License

@Test
public void get() {
    injector = Guice.createInjector(new AbstractModule() {
        @Override/*from ww w  . ja  v  a2 s.c o m*/
        protected void configure() {
            bind(Environment.class).toInstance(environment);
            bind(DataSource.class).toInstance(dataSource);
            bind(Configuration.class).toProvider(configurationProvider);
        }
    });

    Configuration configuration = injector.getInstance(Configuration.class);

    configuration.getMappedStatementNames(); // Test that configuration is valid.
    assertEquals(environment, configuration.getEnvironment());
    assertNull(configuration.getTypeAliasRegistry().getTypeAliases().get("alias"));
    assertFalse(configuration.getTypeHandlerRegistry().hasTypeHandler(Alias.class));
    assertFalse(configuration.getTypeHandlerRegistry().hasTypeHandler(Human.class));
    assertEquals(0, configuration.getMapperRegistry().getMappers().size());
    assertEquals(0, configuration.getInterceptors().size());
    assertFalse(configuration.isLazyLoadingEnabled());
    assertTrue(configuration.isAggressiveLazyLoading());
    assertTrue(configuration.isMultipleResultSetsEnabled());
    assertFalse(configuration.isUseGeneratedKeys());
    assertTrue(configuration.isUseColumnLabel());
    assertTrue(configuration.isCacheEnabled());
    assertEquals(ExecutorType.SIMPLE, configuration.getDefaultExecutorType());
    assertEquals(AutoMappingBehavior.PARTIAL, configuration.getAutoMappingBehavior());
    assertFalse(configuration.isCallSettersOnNulls());
    assertNull(configuration.getDefaultStatementTimeout());
    assertFalse(configuration.isMapUnderscoreToCamelCase());
}

From source file:org.mybatis.guice.configuration.ConfigurationProviderTest.java

License:Apache License

@Test
public void get_Optionals() throws Throwable {
    String databaseId = "test_database_id";
    final Integer defaultFetchSize = 200;
    final Integer defaultStatementTimeout = 2000;
    when(databaseIdProvider.getDatabaseId(dataSource)).thenReturn(databaseId);
    final Key<TypeHandler<Alias>> aliasTypeHandlerKey = Key.get(new TypeLiteral<TypeHandler<Alias>>() {
    });/* w w  w .  jav  a 2 s.c o m*/
    injector = Guice.createInjector(new AbstractModule() {
        @Override
        protected void configure() {
            bind(Environment.class).toInstance(environment);
            bind(DataSource.class).toInstance(dataSource);
            bindConstant().annotatedWith(Names.named("mybatis.configuration.lazyLoadingEnabled")).to(true);
            bindConstant().annotatedWith(Names.named("mybatis.configuration.aggressiveLazyLoading")).to(false);
            bindConstant().annotatedWith(Names.named("mybatis.configuration.multipleResultSetsEnabled"))
                    .to(false);
            bindConstant().annotatedWith(Names.named("mybatis.configuration.useGeneratedKeys")).to(true);
            bindConstant().annotatedWith(Names.named("mybatis.configuration.useColumnLabel")).to(false);
            bindConstant().annotatedWith(Names.named("mybatis.configuration.cacheEnabled")).to(false);
            bindConstant().annotatedWith(Names.named("mybatis.configuration.defaultExecutorType"))
                    .to(ExecutorType.REUSE);
            bindConstant().annotatedWith(Names.named("mybatis.configuration.autoMappingBehavior"))
                    .to(AutoMappingBehavior.FULL);
            bindConstant().annotatedWith(Names.named("mybatis.configuration.callSettersOnNulls")).to(true);
            bindConstant().annotatedWith(Names.named("mybatis.configuration.defaultStatementTimeout"))
                    .to(defaultStatementTimeout);
            bindConstant().annotatedWith(Names.named("mybatis.configuration.mapUnderscoreToCamelCase"))
                    .to(true);
            bind(DatabaseIdProvider.class).toInstance(databaseIdProvider);
            bind(Configuration.class).toProvider(configurationProvider);
            bind(aliasTypeHandlerKey).toInstance(aliasTypeHandler);
            bind(Interceptor.class).toInstance(interceptor);
        }
    });
    configurationProvider.addConfigurationSetting(new AliasConfigurationSetting("alias", Alias.class));
    JavaTypeAndHandlerConfigurationSettingProvider aliasTypeHandlerSetting = JavaTypeAndHandlerConfigurationSettingProvider
            .create(Alias.class, aliasTypeHandlerKey);
    injector.injectMembers(aliasTypeHandlerSetting);
    configurationProvider.addConfigurationSetting(aliasTypeHandlerSetting.get());
    TypeHandlerConfigurationSettingProvider humanTypeHandlerSetting = new TypeHandlerConfigurationSettingProvider(
            Key.get(HumanTypeHandler.class));
    injector.injectMembers(humanTypeHandlerSetting);
    configurationProvider.addConfigurationSetting(humanTypeHandlerSetting.get());
    configurationProvider.addMapperConfigurationSetting(new MapperConfigurationSetting(TestMapper.class));
    InterceptorConfigurationSettingProvider interceptorSetting = new InterceptorConfigurationSettingProvider(
            Interceptor.class);
    injector.injectMembers(interceptorSetting);
    configurationProvider.addConfigurationSetting(interceptorSetting.get());
    configurationProvider.addConfigurationSetting((new ConfigurationSetting() {
        @Override
        public void applyConfigurationSetting(Configuration configuration) {
            configuration.setDefaultFetchSize(defaultFetchSize);
        }
    }));

    Configuration configuration = injector.getInstance(Configuration.class);

    configuration.getMappedStatementNames(); // Test that configuration is valid.
    assertEquals(environment, configuration.getEnvironment());
    assertEquals(Alias.class, configuration.getTypeAliasRegistry().getTypeAliases().get("alias"));
    assertTrue(configuration.getTypeHandlerRegistry().hasTypeHandler(Alias.class));
    assertTrue(configuration.getTypeHandlerRegistry().hasTypeHandler(Human.class));
    assertEquals(1, configuration.getMapperRegistry().getMappers().size());
    assertTrue(configuration.getMapperRegistry().getMappers().contains(TestMapper.class));
    assertEquals(1, configuration.getInterceptors().size());
    assertTrue(configuration.getInterceptors().contains(interceptor));
    verify(databaseIdProvider).getDatabaseId(dataSource);
    assertEquals(databaseId, configuration.getDatabaseId());
    assertTrue(configuration.isLazyLoadingEnabled());
    assertFalse(configuration.isAggressiveLazyLoading());
    assertFalse(configuration.isMultipleResultSetsEnabled());
    assertTrue(configuration.isUseGeneratedKeys());
    assertFalse(configuration.isUseColumnLabel());
    assertFalse(configuration.isCacheEnabled());
    assertEquals(ExecutorType.REUSE, configuration.getDefaultExecutorType());
    assertEquals(AutoMappingBehavior.FULL, configuration.getAutoMappingBehavior());
    assertTrue(configuration.isCallSettersOnNulls());
    assertEquals(defaultStatementTimeout, configuration.getDefaultStatementTimeout());
    assertTrue(configuration.isMapUnderscoreToCamelCase());
    assertEquals(defaultFetchSize, configuration.getDefaultFetchSize());
}

From source file:org.mybatis.guice.MyBatisModuleTest.java

License:Apache License

@Test
public void addInterceptorClass() {
    Injector injector = Guice.createInjector(new MyBatisModule() {
        @Override//from  w  ww.  jav a  2s . c  om
        protected void initialize() {
            addInterceptorClass(FirstInterceptor.class);
            environmentId("test_environment");
            bindDataSourceProvider(dataSourceProvider);
            bindTransactionFactory(transactionFactoryProvider);
        }
    });

    Configuration configuration = injector.getInstance(Configuration.class);

    assertEquals(1, configuration.getInterceptors().size());
    assertTrue(configuration.getInterceptors().iterator().next() instanceof FirstInterceptor);
}

From source file:org.mybatis.guice.MyBatisModuleTest.java

License:Apache License

@Test
public void addInterceptorsClasses() {
    Injector injector = Guice.createInjector(new MyBatisModule() {
        @Override//ww  w .j a  v a2  s . c o m
        protected void initialize() {
            Collection<Class<? extends Interceptor>> interceptors = new ArrayList<Class<? extends Interceptor>>();
            interceptors.add(FirstInterceptor.class);
            interceptors.add(SecondInterceptor.class);
            addInterceptorsClasses(interceptors);
            environmentId("test_environment");
            bindDataSourceProvider(dataSourceProvider);
            bindTransactionFactory(transactionFactoryProvider);
        }
    });

    Configuration configuration = injector.getInstance(Configuration.class);

    assertEquals(2, configuration.getInterceptors().size());
    List<Interceptor> interceptors = configuration.getInterceptors();
    assertTrue(
            interceptors.get(0) instanceof FirstInterceptor || interceptors.get(1) instanceof FirstInterceptor);
    assertFalse(interceptors.get(0) instanceof SecondInterceptor
            && interceptors.get(1) instanceof SecondInterceptor);
}

From source file:org.mybatis.guice.MyBatisModuleTest.java

License:Apache License

@Test
public void addInterceptorsClasses_Package() {
    Injector injector = Guice.createInjector(new MyBatisModule() {
        @Override/*from   w w  w.j  a  v  a2s . c  om*/
        protected void initialize() {
            addInterceptorsClasses(FirstInterceptor.class.getPackage().getName());
            environmentId("test_environment");
            bindDataSourceProvider(dataSourceProvider);
            bindTransactionFactory(transactionFactoryProvider);
        }
    });

    Configuration configuration = injector.getInstance(Configuration.class);

    assertEquals(2, configuration.getInterceptors().size());
    List<Interceptor> interceptors = configuration.getInterceptors();
    assertTrue(
            interceptors.get(0) instanceof FirstInterceptor || interceptors.get(1) instanceof FirstInterceptor);
    assertFalse(interceptors.get(0) instanceof SecondInterceptor
            && interceptors.get(1) instanceof SecondInterceptor);
}

From source file:org.mybatis.guice.XMLMyBatisModule.java

License:Apache License

/**
 * {@inheritDoc}// w  w  w.  j a  va  2s  .  c o  m
 */
@Override
final void internalConfigure() {
    this.initialize();

    Reader reader = null;
    try {
        reader = getResourceAsReader(getResourceClassLoader(), classPathResource);
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader, environmentId,
                properties);
        bind(SqlSessionFactory.class).toInstance(sessionFactory);

        Configuration configuration = sessionFactory.getConfiguration();

        // bind mappers
        Collection<Class<?>> mapperClasses = configuration.getMapperRegistry().getMappers();
        for (Class<?> mapperType : mapperClasses) {
            bindMapper(mapperType);
        }

        // request injection for type handlers
        Collection<TypeHandler<?>> allTypeHandlers = configuration.getTypeHandlerRegistry().getTypeHandlers();
        for (TypeHandler<?> handler : allTypeHandlers) {
            requestInjection(handler);
        }

        // request injection for interceptors
        Collection<Interceptor> interceptors = configuration.getInterceptors();
        for (Interceptor interceptor : interceptors) {
            requestInjection(interceptor);
        }

        // request injection for object factory.
        requestInjection(configuration.getObjectFactory());

        // request injection for object wrapper factory.
        requestInjection(configuration.getObjectWrapperFactory());
    } catch (Exception e) {
        addError("Impossible to read classpath resource '%s', see nested exceptions: %s", classPathResource,
                e.getMessage());
    } finally {
        if (reader != null) {
            try {
                reader.close();
            } catch (IOException e) {
                // close quietly
            }
        }
    }
}