Skip to content

Commit f12de00

Browse files
Fixes #91. Restores setting configuration fields with Properties.
1 parent 06c27f6 commit f12de00

File tree

5 files changed

+72
-70
lines changed

5 files changed

+72
-70
lines changed

Diff for: src/main/java/org/mybatis/guice/MyBatisModule.java

+5-2
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@
6060
import org.mybatis.guice.configuration.settings.DefaultExecutorTypeConfigurationSetting;
6161
import org.mybatis.guice.configuration.settings.DefaultScriptingLanguageTypeConfigurationSetting;
6262
import org.mybatis.guice.configuration.settings.DefaultStatementTimeoutConfigurationSetting;
63-
import org.mybatis.guice.configuration.settings.FailFastSettingImpl;
6463
import org.mybatis.guice.configuration.settings.LazyLoadingEnabledConfigurationSetting;
6564
import org.mybatis.guice.configuration.settings.LocalCacheScopeConfigurationSetting;
6665
import org.mybatis.guice.configuration.settings.MapUnderscoreToCamelCaseConfigurationSetting;
@@ -235,7 +234,7 @@ protected final void useSqlSessionFactoryProvider(Class<? extends Provider<? ext
235234
* @param failFast
236235
*/
237236
protected final void failFast(boolean failFast) {
238-
bindConstant().annotatedWith(FailFastSettingImpl.get()).to(failFast);
237+
bindBoolean("mybatis.configuration.failFast", failFast);
239238
}
240239

241240
/**
@@ -263,6 +262,10 @@ public void bindConfigurationSetting(final ConfigurationSetting configurationSet
263262
public void bindConfigurationSettingProvider(final Provider<? extends ConfigurationSetting> configurationSettingProvider){
264263
configurationSettings.addBinding().toProvider(guicify(configurationSettingProvider));
265264
}
265+
266+
private final void bindBoolean(String name, boolean value) {
267+
bindConstant().annotatedWith(named(name)).to(value);
268+
}
266269

267270
/**
268271
*

Diff for: src/main/java/org/mybatis/guice/configuration/ConfigurationProvider.java

+66-5
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import java.util.Map;
2020
import java.util.Set;
2121

22+
import javax.annotation.Nullable;
2223
import javax.inject.Provider;
2324
import javax.inject.Singleton;
2425
import javax.sql.DataSource;
@@ -27,13 +28,15 @@
2728
import org.apache.ibatis.mapping.DatabaseIdProvider;
2829
import org.apache.ibatis.mapping.Environment;
2930
import org.apache.ibatis.plugin.Interceptor;
31+
import org.apache.ibatis.session.AutoMappingBehavior;
3032
import org.apache.ibatis.session.Configuration;
33+
import org.apache.ibatis.session.ExecutorType;
3134
import org.apache.ibatis.type.TypeHandler;
3235
import org.mybatis.guice.configuration.settings.ConfigurationSetting;
3336
import org.mybatis.guice.configuration.settings.ConfigurationSettings;
34-
import org.mybatis.guice.configuration.settings.FailFastSetting;
3537

3638
import com.google.inject.ProvisionException;
39+
import com.google.inject.name.Named;
3740

3841
/**
3942
* Provides the myBatis Configuration.
@@ -46,6 +49,55 @@ public class ConfigurationProvider implements Provider<Configuration> {
4649
*/
4750
private final Environment environment;
4851

52+
@com.google.inject.Inject(optional = true)
53+
@Named("mybatis.configuration.lazyLoadingEnabled")
54+
private boolean lazyLoadingEnabled = false;
55+
56+
@com.google.inject.Inject(optional = true)
57+
@Named("mybatis.configuration.aggressiveLazyLoading")
58+
private boolean aggressiveLazyLoading = true;
59+
60+
@com.google.inject.Inject(optional = true)
61+
@Named("mybatis.configuration.multipleResultSetsEnabled")
62+
private boolean multipleResultSetsEnabled = true;
63+
64+
@com.google.inject.Inject(optional = true)
65+
@Named("mybatis.configuration.useGeneratedKeys")
66+
private boolean useGeneratedKeys = false;
67+
68+
@com.google.inject.Inject(optional = true)
69+
@Named("mybatis.configuration.useColumnLabel")
70+
private boolean useColumnLabel = true;
71+
72+
@com.google.inject.Inject(optional = true)
73+
@Named("mybatis.configuration.cacheEnabled")
74+
private boolean cacheEnabled = true;
75+
76+
@com.google.inject.Inject(optional = true)
77+
@Named("mybatis.configuration.defaultExecutorType")
78+
private ExecutorType defaultExecutorType = ExecutorType.SIMPLE;
79+
80+
@com.google.inject.Inject(optional = true)
81+
@Named("mybatis.configuration.autoMappingBehavior")
82+
private AutoMappingBehavior autoMappingBehavior = AutoMappingBehavior.PARTIAL;
83+
84+
@com.google.inject.Inject(optional = true)
85+
@Named("mybatis.configuration.callSettersOnNulls")
86+
private boolean callSettersOnNulls = false;
87+
88+
@com.google.inject.Inject(optional = true)
89+
@Named("mybatis.configuration.defaultStatementTimeout")
90+
@Nullable
91+
private Integer defaultStatementTimeout;
92+
93+
@com.google.inject.Inject(optional = true)
94+
@Named("mybatis.configuration.mapUnderscoreToCamelCase")
95+
private boolean mapUnderscoreToCamelCase = false;
96+
97+
@com.google.inject.Inject(optional = true)
98+
@Named("mybatis.configuration.failFast")
99+
private boolean failFast = false;
100+
49101
@com.google.inject.Inject(optional = true)
50102
@TypeAliases
51103
private Map<String, Class<?>> typeAliases;
@@ -74,10 +126,6 @@ public class ConfigurationProvider implements Provider<Configuration> {
74126
@ConfigurationSettings
75127
private Set<ConfigurationSetting> configurationSettings = Collections.emptySet();
76128

77-
@com.google.inject.Inject(optional = true)
78-
@FailFastSetting
79-
private boolean failFast;
80-
81129
/**
82130
* @since 1.0.1
83131
*/
@@ -156,7 +204,19 @@ protected Configuration newConfiguration(Environment environment) {
156204
*/
157205
@Override
158206
public Configuration get() {
207+
System.out.println(lazyLoadingEnabled);
159208
final Configuration configuration = newConfiguration(environment);
209+
configuration.setLazyLoadingEnabled(lazyLoadingEnabled);
210+
configuration.setAggressiveLazyLoading(aggressiveLazyLoading);
211+
configuration.setMultipleResultSetsEnabled(multipleResultSetsEnabled);
212+
configuration.setUseGeneratedKeys(useGeneratedKeys);
213+
configuration.setUseColumnLabel(useColumnLabel);
214+
configuration.setCacheEnabled(cacheEnabled);
215+
configuration.setDefaultExecutorType(defaultExecutorType);
216+
configuration.setAutoMappingBehavior(autoMappingBehavior);
217+
configuration.setCallSettersOnNulls(callSettersOnNulls);
218+
configuration.setDefaultStatementTimeout(defaultStatementTimeout);
219+
configuration.setMapUnderscoreToCamelCase(mapUnderscoreToCamelCase);
160220

161221
for(ConfigurationSetting setting : configurationSettings){
162222
setting.applyConfigurationSetting(configuration);
@@ -197,6 +257,7 @@ public Configuration get() {
197257
} finally {
198258
ErrorContext.instance().reset();
199259
}
260+
System.out.println(configuration.isLazyLoadingEnabled());
200261

201262
return configuration;
202263
}

Diff for: src/main/java/org/mybatis/guice/configuration/settings/FailFastSetting.java

-33
This file was deleted.

Diff for: src/main/java/org/mybatis/guice/configuration/settings/FailFastSettingImpl.java

-30
This file was deleted.

Diff for: src/test/java/org/mybatis/guice/GuiceTestRunner.java

+1
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ protected Properties createTestProperties() {
7878
myBatisProperties.setProperty("JDBC.username", "sa");
7979
myBatisProperties.setProperty("JDBC.password", "");
8080
myBatisProperties.setProperty("JDBC.autoCommit", "false");
81+
myBatisProperties.setProperty("JDBC.autoCommit", "false");
8182
return myBatisProperties;
8283
}
8384
}

0 commit comments

Comments
 (0)