|
1 | 1 | /**
|
2 |
| - * Copyright 2009-2017 the original author or authors. |
| 2 | + * Copyright 2009-2018 the original author or authors. |
3 | 3 | *
|
4 | 4 | * Licensed under the Apache License, Version 2.0 (the "License");
|
5 | 5 | * you may not use this file except in compliance with the License.
|
@@ -72,35 +72,35 @@ public class XmlConfigBuilderTest {
|
72 | 72 | @Test
|
73 | 73 | public void shouldSuccessfullyLoadMinimalXMLConfigFile() throws Exception {
|
74 | 74 | String resource = "org/apache/ibatis/builder/MinimalMapperConfig.xml";
|
75 |
| - InputStream inputStream = Resources.getResourceAsStream(resource); |
76 |
| - XMLConfigBuilder builder = new XMLConfigBuilder(inputStream); |
77 |
| - Configuration config = builder.parse(); |
78 |
| - assertNotNull(config); |
79 |
| - assertThat(config.getAutoMappingBehavior()).isEqualTo(AutoMappingBehavior.PARTIAL); |
80 |
| - assertThat(config.getAutoMappingUnknownColumnBehavior()).isEqualTo(AutoMappingUnknownColumnBehavior.NONE); |
81 |
| - assertThat(config.isCacheEnabled()).isTrue(); |
82 |
| - assertThat(config.getProxyFactory()).isInstanceOf(JavassistProxyFactory.class); |
83 |
| - assertThat(config.isLazyLoadingEnabled()).isFalse(); |
84 |
| - assertThat(config.isAggressiveLazyLoading()).isFalse(); |
85 |
| - assertThat(config.isMultipleResultSetsEnabled()).isTrue(); |
86 |
| - assertThat(config.isUseColumnLabel()).isTrue(); |
87 |
| - assertThat(config.isUseGeneratedKeys()).isFalse(); |
88 |
| - assertThat(config.getDefaultExecutorType()).isEqualTo(ExecutorType.SIMPLE); |
89 |
| - assertNull(config.getDefaultStatementTimeout()); |
90 |
| - assertNull(config.getDefaultFetchSize()); |
91 |
| - assertThat(config.isMapUnderscoreToCamelCase()).isFalse(); |
92 |
| - assertThat(config.isSafeRowBoundsEnabled()).isFalse(); |
93 |
| - assertThat(config.getLocalCacheScope()).isEqualTo(LocalCacheScope.SESSION); |
94 |
| - assertThat(config.getJdbcTypeForNull()).isEqualTo(JdbcType.OTHER); |
95 |
| - assertThat(config.getLazyLoadTriggerMethods()).isEqualTo((Set<String>) new HashSet<String>(Arrays.asList("equals", "clone", "hashCode", "toString"))); |
96 |
| - assertThat(config.isSafeResultHandlerEnabled()).isTrue(); |
97 |
| - assertThat(config.getDefaultScriptingLanuageInstance()).isInstanceOf(XMLLanguageDriver.class); |
98 |
| - assertThat(config.isCallSettersOnNulls()).isFalse(); |
99 |
| - assertNull(config.getLogPrefix()); |
100 |
| - assertNull(config.getLogImpl()); |
101 |
| - assertNull(config.getConfigurationFactory()); |
102 |
| - assertThat(config.getTypeHandlerRegistry().getTypeHandler(RoundingMode.class)).isInstanceOf(EnumTypeHandler.class); |
103 |
| - inputStream.close(); |
| 75 | + try (InputStream inputStream = Resources.getResourceAsStream(resource)) { |
| 76 | + XMLConfigBuilder builder = new XMLConfigBuilder(inputStream); |
| 77 | + Configuration config = builder.parse(); |
| 78 | + assertNotNull(config); |
| 79 | + assertThat(config.getAutoMappingBehavior()).isEqualTo(AutoMappingBehavior.PARTIAL); |
| 80 | + assertThat(config.getAutoMappingUnknownColumnBehavior()).isEqualTo(AutoMappingUnknownColumnBehavior.NONE); |
| 81 | + assertThat(config.isCacheEnabled()).isTrue(); |
| 82 | + assertThat(config.getProxyFactory()).isInstanceOf(JavassistProxyFactory.class); |
| 83 | + assertThat(config.isLazyLoadingEnabled()).isFalse(); |
| 84 | + assertThat(config.isAggressiveLazyLoading()).isFalse(); |
| 85 | + assertThat(config.isMultipleResultSetsEnabled()).isTrue(); |
| 86 | + assertThat(config.isUseColumnLabel()).isTrue(); |
| 87 | + assertThat(config.isUseGeneratedKeys()).isFalse(); |
| 88 | + assertThat(config.getDefaultExecutorType()).isEqualTo(ExecutorType.SIMPLE); |
| 89 | + assertNull(config.getDefaultStatementTimeout()); |
| 90 | + assertNull(config.getDefaultFetchSize()); |
| 91 | + assertThat(config.isMapUnderscoreToCamelCase()).isFalse(); |
| 92 | + assertThat(config.isSafeRowBoundsEnabled()).isFalse(); |
| 93 | + assertThat(config.getLocalCacheScope()).isEqualTo(LocalCacheScope.SESSION); |
| 94 | + assertThat(config.getJdbcTypeForNull()).isEqualTo(JdbcType.OTHER); |
| 95 | + assertThat(config.getLazyLoadTriggerMethods()).isEqualTo((Set<String>) new HashSet<String>(Arrays.asList("equals", "clone", "hashCode", "toString"))); |
| 96 | + assertThat(config.isSafeResultHandlerEnabled()).isTrue(); |
| 97 | + assertThat(config.getDefaultScriptingLanuageInstance()).isInstanceOf(XMLLanguageDriver.class); |
| 98 | + assertThat(config.isCallSettersOnNulls()).isFalse(); |
| 99 | + assertNull(config.getLogPrefix()); |
| 100 | + assertNull(config.getLogImpl()); |
| 101 | + assertNull(config.getConfigurationFactory()); |
| 102 | + assertThat(config.getTypeHandlerRegistry().getTypeHandler(RoundingMode.class)).isInstanceOf(EnumTypeHandler.class); |
| 103 | + } |
104 | 104 | }
|
105 | 105 |
|
106 | 106 | enum MyEnum {
|
@@ -163,96 +163,96 @@ public void registerJavaTypeInitializingTypeHandler() {
|
163 | 163 | @Test
|
164 | 164 | public void shouldSuccessfullyLoadXMLConfigFile() throws Exception {
|
165 | 165 | String resource = "org/apache/ibatis/builder/CustomizedSettingsMapperConfig.xml";
|
166 |
| - InputStream inputStream = Resources.getResourceAsStream(resource); |
167 |
| - Properties props = new Properties(); |
168 |
| - props.put("prop2", "cccc"); |
169 |
| - XMLConfigBuilder builder = new XMLConfigBuilder(inputStream, null, props); |
170 |
| - Configuration config = builder.parse(); |
171 |
| - |
172 |
| - assertThat(config.getAutoMappingBehavior()).isEqualTo(AutoMappingBehavior.NONE); |
173 |
| - assertThat(config.getAutoMappingUnknownColumnBehavior()).isEqualTo(AutoMappingUnknownColumnBehavior.WARNING); |
174 |
| - assertThat(config.isCacheEnabled()).isFalse(); |
175 |
| - assertThat(config.getProxyFactory()).isInstanceOf(CglibProxyFactory.class); |
176 |
| - assertThat(config.isLazyLoadingEnabled()).isTrue(); |
177 |
| - assertThat(config.isAggressiveLazyLoading()).isTrue(); |
178 |
| - assertThat(config.isMultipleResultSetsEnabled()).isFalse(); |
179 |
| - assertThat(config.isUseColumnLabel()).isFalse(); |
180 |
| - assertThat(config.isUseGeneratedKeys()).isTrue(); |
181 |
| - assertThat(config.getDefaultExecutorType()).isEqualTo(ExecutorType.BATCH); |
182 |
| - assertThat(config.getDefaultStatementTimeout()).isEqualTo(10); |
183 |
| - assertThat(config.getDefaultFetchSize()).isEqualTo(100); |
184 |
| - assertThat(config.isMapUnderscoreToCamelCase()).isTrue(); |
185 |
| - assertThat(config.isSafeRowBoundsEnabled()).isTrue(); |
186 |
| - assertThat(config.getLocalCacheScope()).isEqualTo(LocalCacheScope.STATEMENT); |
187 |
| - assertThat(config.getJdbcTypeForNull()).isEqualTo(JdbcType.NULL); |
188 |
| - assertThat(config.getLazyLoadTriggerMethods()).isEqualTo((Set<String>) new HashSet<String>(Arrays.asList("equals", "clone", "hashCode", "toString", "xxx"))); |
189 |
| - assertThat(config.isSafeResultHandlerEnabled()).isFalse(); |
190 |
| - assertThat(config.getDefaultScriptingLanuageInstance()).isInstanceOf(RawLanguageDriver.class); |
191 |
| - assertThat(config.isCallSettersOnNulls()).isTrue(); |
192 |
| - assertThat(config.getLogPrefix()).isEqualTo("mybatis_"); |
193 |
| - assertThat(config.getLogImpl().getName()).isEqualTo(Slf4jImpl.class.getName()); |
194 |
| - assertThat(config.getVfsImpl().getName()).isEqualTo(JBoss6VFS.class.getName()); |
195 |
| - assertThat(config.getConfigurationFactory().getName()).isEqualTo(String.class.getName()); |
196 |
| - |
197 |
| - assertTrue(config.getTypeAliasRegistry().getTypeAliases().get("blogauthor").equals(Author.class)); |
198 |
| - assertTrue(config.getTypeAliasRegistry().getTypeAliases().get("blog").equals(Blog.class)); |
199 |
| - assertTrue(config.getTypeAliasRegistry().getTypeAliases().get("cart").equals(Cart.class)); |
200 |
| - |
201 |
| - assertThat(config.getTypeHandlerRegistry().getTypeHandler(Integer.class)).isInstanceOf(CustomIntegerTypeHandler.class); |
202 |
| - assertThat(config.getTypeHandlerRegistry().getTypeHandler(Long.class)).isInstanceOf(CustomLongTypeHandler.class); |
203 |
| - assertThat(config.getTypeHandlerRegistry().getTypeHandler(String.class)).isInstanceOf(CustomStringTypeHandler.class); |
204 |
| - assertThat(config.getTypeHandlerRegistry().getTypeHandler(String.class, JdbcType.VARCHAR)).isInstanceOf(CustomStringTypeHandler.class); |
205 |
| - assertThat(config.getTypeHandlerRegistry().getTypeHandler(RoundingMode.class)).isInstanceOf(EnumOrdinalTypeHandler.class); |
206 |
| - |
207 |
| - ExampleObjectFactory objectFactory = (ExampleObjectFactory)config.getObjectFactory(); |
208 |
| - assertThat(objectFactory.getProperties().size()).isEqualTo(1); |
209 |
| - assertThat(objectFactory.getProperties().getProperty("objectFactoryProperty")).isEqualTo("100"); |
210 |
| - |
211 |
| - assertThat(config.getObjectWrapperFactory()).isInstanceOf(CustomObjectWrapperFactory.class); |
212 |
| - |
213 |
| - assertThat(config.getReflectorFactory()).isInstanceOf(CustomReflectorFactory.class); |
214 |
| - |
215 |
| - ExamplePlugin plugin = (ExamplePlugin)config.getInterceptors().get(0); |
216 |
| - assertThat(plugin.getProperties().size()).isEqualTo(1); |
217 |
| - assertThat(plugin.getProperties().getProperty("pluginProperty")).isEqualTo("100"); |
218 |
| - |
219 |
| - Environment environment = config.getEnvironment(); |
220 |
| - assertThat(environment.getId()).isEqualTo("development"); |
221 |
| - assertThat(environment.getDataSource()).isInstanceOf(UnpooledDataSource.class); |
222 |
| - assertThat(environment.getTransactionFactory()).isInstanceOf(JdbcTransactionFactory.class); |
223 |
| - |
224 |
| - assertThat(config.getDatabaseId()).isEqualTo("derby"); |
225 |
| - |
226 |
| - assertThat(config.getMapperRegistry().getMappers().size()).isEqualTo(4); |
227 |
| - assertThat(config.getMapperRegistry().hasMapper(CachedAuthorMapper.class)).isTrue(); |
228 |
| - assertThat(config.getMapperRegistry().hasMapper(CustomMapper.class)).isTrue(); |
229 |
| - assertThat(config.getMapperRegistry().hasMapper(BlogMapper.class)).isTrue(); |
230 |
| - assertThat(config.getMapperRegistry().hasMapper(NestedBlogMapper.class)).isTrue(); |
231 |
| - inputStream.close(); |
| 166 | + try (InputStream inputStream = Resources.getResourceAsStream(resource)) { |
| 167 | + Properties props = new Properties(); |
| 168 | + props.put("prop2", "cccc"); |
| 169 | + XMLConfigBuilder builder = new XMLConfigBuilder(inputStream, null, props); |
| 170 | + Configuration config = builder.parse(); |
| 171 | + |
| 172 | + assertThat(config.getAutoMappingBehavior()).isEqualTo(AutoMappingBehavior.NONE); |
| 173 | + assertThat(config.getAutoMappingUnknownColumnBehavior()).isEqualTo(AutoMappingUnknownColumnBehavior.WARNING); |
| 174 | + assertThat(config.isCacheEnabled()).isFalse(); |
| 175 | + assertThat(config.getProxyFactory()).isInstanceOf(CglibProxyFactory.class); |
| 176 | + assertThat(config.isLazyLoadingEnabled()).isTrue(); |
| 177 | + assertThat(config.isAggressiveLazyLoading()).isTrue(); |
| 178 | + assertThat(config.isMultipleResultSetsEnabled()).isFalse(); |
| 179 | + assertThat(config.isUseColumnLabel()).isFalse(); |
| 180 | + assertThat(config.isUseGeneratedKeys()).isTrue(); |
| 181 | + assertThat(config.getDefaultExecutorType()).isEqualTo(ExecutorType.BATCH); |
| 182 | + assertThat(config.getDefaultStatementTimeout()).isEqualTo(10); |
| 183 | + assertThat(config.getDefaultFetchSize()).isEqualTo(100); |
| 184 | + assertThat(config.isMapUnderscoreToCamelCase()).isTrue(); |
| 185 | + assertThat(config.isSafeRowBoundsEnabled()).isTrue(); |
| 186 | + assertThat(config.getLocalCacheScope()).isEqualTo(LocalCacheScope.STATEMENT); |
| 187 | + assertThat(config.getJdbcTypeForNull()).isEqualTo(JdbcType.NULL); |
| 188 | + assertThat(config.getLazyLoadTriggerMethods()).isEqualTo((Set<String>) new HashSet<String>(Arrays.asList("equals", "clone", "hashCode", "toString", "xxx"))); |
| 189 | + assertThat(config.isSafeResultHandlerEnabled()).isFalse(); |
| 190 | + assertThat(config.getDefaultScriptingLanuageInstance()).isInstanceOf(RawLanguageDriver.class); |
| 191 | + assertThat(config.isCallSettersOnNulls()).isTrue(); |
| 192 | + assertThat(config.getLogPrefix()).isEqualTo("mybatis_"); |
| 193 | + assertThat(config.getLogImpl().getName()).isEqualTo(Slf4jImpl.class.getName()); |
| 194 | + assertThat(config.getVfsImpl().getName()).isEqualTo(JBoss6VFS.class.getName()); |
| 195 | + assertThat(config.getConfigurationFactory().getName()).isEqualTo(String.class.getName()); |
| 196 | + |
| 197 | + assertTrue(config.getTypeAliasRegistry().getTypeAliases().get("blogauthor").equals(Author.class)); |
| 198 | + assertTrue(config.getTypeAliasRegistry().getTypeAliases().get("blog").equals(Blog.class)); |
| 199 | + assertTrue(config.getTypeAliasRegistry().getTypeAliases().get("cart").equals(Cart.class)); |
| 200 | + |
| 201 | + assertThat(config.getTypeHandlerRegistry().getTypeHandler(Integer.class)).isInstanceOf(CustomIntegerTypeHandler.class); |
| 202 | + assertThat(config.getTypeHandlerRegistry().getTypeHandler(Long.class)).isInstanceOf(CustomLongTypeHandler.class); |
| 203 | + assertThat(config.getTypeHandlerRegistry().getTypeHandler(String.class)).isInstanceOf(CustomStringTypeHandler.class); |
| 204 | + assertThat(config.getTypeHandlerRegistry().getTypeHandler(String.class, JdbcType.VARCHAR)).isInstanceOf(CustomStringTypeHandler.class); |
| 205 | + assertThat(config.getTypeHandlerRegistry().getTypeHandler(RoundingMode.class)).isInstanceOf(EnumOrdinalTypeHandler.class); |
| 206 | + |
| 207 | + ExampleObjectFactory objectFactory = (ExampleObjectFactory) config.getObjectFactory(); |
| 208 | + assertThat(objectFactory.getProperties().size()).isEqualTo(1); |
| 209 | + assertThat(objectFactory.getProperties().getProperty("objectFactoryProperty")).isEqualTo("100"); |
| 210 | + |
| 211 | + assertThat(config.getObjectWrapperFactory()).isInstanceOf(CustomObjectWrapperFactory.class); |
| 212 | + |
| 213 | + assertThat(config.getReflectorFactory()).isInstanceOf(CustomReflectorFactory.class); |
| 214 | + |
| 215 | + ExamplePlugin plugin = (ExamplePlugin) config.getInterceptors().get(0); |
| 216 | + assertThat(plugin.getProperties().size()).isEqualTo(1); |
| 217 | + assertThat(plugin.getProperties().getProperty("pluginProperty")).isEqualTo("100"); |
| 218 | + |
| 219 | + Environment environment = config.getEnvironment(); |
| 220 | + assertThat(environment.getId()).isEqualTo("development"); |
| 221 | + assertThat(environment.getDataSource()).isInstanceOf(UnpooledDataSource.class); |
| 222 | + assertThat(environment.getTransactionFactory()).isInstanceOf(JdbcTransactionFactory.class); |
| 223 | + |
| 224 | + assertThat(config.getDatabaseId()).isEqualTo("derby"); |
| 225 | + |
| 226 | + assertThat(config.getMapperRegistry().getMappers().size()).isEqualTo(4); |
| 227 | + assertThat(config.getMapperRegistry().hasMapper(CachedAuthorMapper.class)).isTrue(); |
| 228 | + assertThat(config.getMapperRegistry().hasMapper(CustomMapper.class)).isTrue(); |
| 229 | + assertThat(config.getMapperRegistry().hasMapper(BlogMapper.class)).isTrue(); |
| 230 | + assertThat(config.getMapperRegistry().hasMapper(NestedBlogMapper.class)).isTrue(); |
| 231 | + } |
232 | 232 | }
|
233 | 233 |
|
234 | 234 | @Test
|
235 | 235 | public void shouldSuccessfullyLoadXMLConfigFileWithPropertiesUrl() throws Exception {
|
236 | 236 | String resource = "org/apache/ibatis/builder/PropertiesUrlMapperConfig.xml";
|
237 |
| - InputStream inputStream = Resources.getResourceAsStream(resource); |
238 |
| - XMLConfigBuilder builder = new XMLConfigBuilder(inputStream); |
239 |
| - Configuration config = builder.parse(); |
240 |
| - assertThat(config.getVariables().get("driver").toString()).isEqualTo("org.apache.derby.jdbc.EmbeddedDriver"); |
241 |
| - assertThat(config.getVariables().get("prop1").toString()).isEqualTo("bbbb"); |
242 |
| - inputStream.close(); |
| 237 | + try (InputStream inputStream = Resources.getResourceAsStream(resource)) { |
| 238 | + XMLConfigBuilder builder = new XMLConfigBuilder(inputStream); |
| 239 | + Configuration config = builder.parse(); |
| 240 | + assertThat(config.getVariables().get("driver").toString()).isEqualTo("org.apache.derby.jdbc.EmbeddedDriver"); |
| 241 | + assertThat(config.getVariables().get("prop1").toString()).isEqualTo("bbbb"); |
| 242 | + } |
243 | 243 | }
|
244 | 244 |
|
245 | 245 | @Test
|
246 | 246 | public void parseIsTwice() throws Exception {
|
247 | 247 | String resource = "org/apache/ibatis/builder/MinimalMapperConfig.xml";
|
248 |
| - InputStream inputStream = Resources.getResourceAsStream(resource); |
249 |
| - XMLConfigBuilder builder = new XMLConfigBuilder(inputStream); |
250 |
| - builder.parse(); |
| 248 | + try (InputStream inputStream = Resources.getResourceAsStream(resource)) { |
| 249 | + XMLConfigBuilder builder = new XMLConfigBuilder(inputStream); |
| 250 | + builder.parse(); |
251 | 251 |
|
252 |
| - when(builder).parse(); |
253 |
| - then(caughtException()).isInstanceOf(BuilderException.class) |
254 |
| - .hasMessage("Each XMLConfigBuilder can only be used once."); |
255 |
| - inputStream.close(); |
| 252 | + when(builder).parse(); |
| 253 | + then(caughtException()).isInstanceOf(BuilderException.class) |
| 254 | + .hasMessage("Each XMLConfigBuilder can only be used once."); |
| 255 | + } |
256 | 256 | }
|
257 | 257 |
|
258 | 258 | @Test
|
|
0 commit comments