@@ -152,14 +152,15 @@ private Properties settingsAsProperties(XNode context) {
152
152
153
153
private void loadCustomVfs (Properties props ) throws ClassNotFoundException {
154
154
String value = props .getProperty ("vfsImpl" );
155
- if (value != null ) {
156
- String [] clazzes = value .split ("," );
157
- for (String clazz : clazzes ) {
158
- if (!clazz .isEmpty ()) {
159
- @ SuppressWarnings ("unchecked" )
160
- Class <? extends VFS > vfsImpl = (Class <? extends VFS >) Resources .classForName (clazz );
161
- configuration .setVfsImpl (vfsImpl );
162
- }
155
+ if (value == null ) {
156
+ return ;
157
+ }
158
+ String [] clazzes = value .split ("," );
159
+ for (String clazz : clazzes ) {
160
+ if (!clazz .isEmpty ()) {
161
+ @ SuppressWarnings ("unchecked" )
162
+ Class <? extends VFS > vfsImpl = (Class <? extends VFS >) Resources .classForName (clazz );
163
+ configuration .setVfsImpl (vfsImpl );
163
164
}
164
165
}
165
166
}
@@ -169,37 +170,37 @@ private void loadCustomLogImpl(Properties props) {
169
170
configuration .setLogImpl (logImpl );
170
171
}
171
172
172
- private void typeAliasesElement (XNode parent ) {
173
- if (parent != null ) {
174
- for (XNode child : parent .getChildren ()) {
175
- if ("package" .equals (child .getName ())) {
176
- String typeAliasPackage = child .getStringAttribute ("name" );
177
- configuration .getTypeAliasRegistry ().registerAliases (typeAliasPackage );
178
- } else {
179
- String alias = child .getStringAttribute ("alias" );
180
- String type = child .getStringAttribute ("type" );
181
- try {
182
- Class <?> clazz = Resources .classForName (type );
183
- if (alias == null ) {
184
- typeAliasRegistry .registerAlias (clazz );
185
- } else {
186
- typeAliasRegistry .registerAlias (alias , clazz );
187
- }
188
- } catch (ClassNotFoundException e ) {
189
- throw new BuilderException ("Error registering typeAlias for '" + alias + "'. Cause: " + e , e );
173
+ private void typeAliasesElement (XNode context ) {
174
+ if (context == null ) {
175
+ return ;
176
+ }
177
+ for (XNode child : context .getChildren ()) {
178
+ if ("package" .equals (child .getName ())) {
179
+ String typeAliasPackage = child .getStringAttribute ("name" );
180
+ configuration .getTypeAliasRegistry ().registerAliases (typeAliasPackage );
181
+ } else {
182
+ String alias = child .getStringAttribute ("alias" );
183
+ String type = child .getStringAttribute ("type" );
184
+ try {
185
+ Class <?> clazz = Resources .classForName (type );
186
+ if (alias == null ) {
187
+ typeAliasRegistry .registerAlias (clazz );
188
+ } else {
189
+ typeAliasRegistry .registerAlias (alias , clazz );
190
190
}
191
+ } catch (ClassNotFoundException e ) {
192
+ throw new BuilderException ("Error registering typeAlias for '" + alias + "'. Cause: " + e , e );
191
193
}
192
194
}
193
195
}
194
196
}
195
197
196
- private void pluginElement (XNode parent ) throws Exception {
197
- if (parent != null ) {
198
- for (XNode child : parent .getChildren ()) {
198
+ private void pluginElement (XNode context ) throws Exception {
199
+ if (context != null ) {
200
+ for (XNode child : context .getChildren ()) {
199
201
String interceptor = child .getStringAttribute ("interceptor" );
200
202
Properties properties = child .getChildrenAsProperties ();
201
- Interceptor interceptorInstance = (Interceptor ) resolveClass (interceptor ).getDeclaredConstructor ()
202
- .newInstance ();
203
+ Interceptor interceptorInstance = (Interceptor ) resolveClass (interceptor ).getDeclaredConstructor ().newInstance ();
203
204
interceptorInstance .setProperties (properties );
204
205
configuration .addInterceptor (interceptorInstance );
205
206
}
@@ -233,26 +234,27 @@ private void reflectorFactoryElement(XNode context) throws Exception {
233
234
}
234
235
235
236
private void propertiesElement (XNode context ) throws Exception {
236
- if (context != null ) {
237
- Properties defaults = context .getChildrenAsProperties ();
238
- String resource = context .getStringAttribute ("resource" );
239
- String url = context .getStringAttribute ("url" );
240
- if (resource != null && url != null ) {
241
- throw new BuilderException (
242
- "The properties element cannot specify both a URL and a resource based property file reference. Please specify one or the other." );
243
- }
244
- if (resource != null ) {
245
- defaults .putAll (Resources .getResourceAsProperties (resource ));
246
- } else if (url != null ) {
247
- defaults .putAll (Resources .getUrlAsProperties (url ));
248
- }
249
- Properties vars = configuration .getVariables ();
250
- if (vars != null ) {
251
- defaults .putAll (vars );
252
- }
253
- parser .setVariables (defaults );
254
- configuration .setVariables (defaults );
237
+ if (context == null ) {
238
+ return ;
239
+ }
240
+ Properties defaults = context .getChildrenAsProperties ();
241
+ String resource = context .getStringAttribute ("resource" );
242
+ String url = context .getStringAttribute ("url" );
243
+ if (resource != null && url != null ) {
244
+ throw new BuilderException (
245
+ "The properties element cannot specify both a URL and a resource based property file reference. Please specify one or the other." );
255
246
}
247
+ if (resource != null ) {
248
+ defaults .putAll (Resources .getResourceAsProperties (resource ));
249
+ } else if (url != null ) {
250
+ defaults .putAll (Resources .getUrlAsProperties (url ));
251
+ }
252
+ Properties vars = configuration .getVariables ();
253
+ if (vars != null ) {
254
+ defaults .putAll (vars );
255
+ }
256
+ parser .setVariables (defaults );
257
+ configuration .setVariables (defaults );
256
258
}
257
259
258
260
private void settingsElement (Properties props ) {
@@ -293,21 +295,22 @@ private void settingsElement(Properties props) {
293
295
}
294
296
295
297
private void environmentsElement (XNode context ) throws Exception {
296
- if (context != null ) {
297
- if (environment == null ) {
298
- environment = context .getStringAttribute ("default" );
299
- }
300
- for (XNode child : context .getChildren ()) {
301
- String id = child .getStringAttribute ("id" );
302
- if (isSpecifiedEnvironment (id )) {
303
- TransactionFactory txFactory = transactionManagerElement (child .evalNode ("transactionManager" ));
304
- DataSourceFactory dsFactory = dataSourceElement (child .evalNode ("dataSource" ));
305
- DataSource dataSource = dsFactory .getDataSource ();
306
- Environment .Builder environmentBuilder = new Environment .Builder (id ).transactionFactory (txFactory )
307
- .dataSource (dataSource );
308
- configuration .setEnvironment (environmentBuilder .build ());
309
- break ;
310
- }
298
+ if (context == null ) {
299
+ return ;
300
+ }
301
+ if (environment == null ) {
302
+ environment = context .getStringAttribute ("default" );
303
+ }
304
+ for (XNode child : context .getChildren ()) {
305
+ String id = child .getStringAttribute ("id" );
306
+ if (isSpecifiedEnvironment (id )) {
307
+ TransactionFactory txFactory = transactionManagerElement (child .evalNode ("transactionManager" ));
308
+ DataSourceFactory dsFactory = dataSourceElement (child .evalNode ("dataSource" ));
309
+ DataSource dataSource = dsFactory .getDataSource ();
310
+ Environment .Builder environmentBuilder = new Environment .Builder (id ).transactionFactory (txFactory )
311
+ .dataSource (dataSource );
312
+ configuration .setEnvironment (environmentBuilder .build ());
313
+ break ;
311
314
}
312
315
}
313
316
}
@@ -353,64 +356,66 @@ private DataSourceFactory dataSourceElement(XNode context) throws Exception {
353
356
throw new BuilderException ("Environment declaration requires a DataSourceFactory." );
354
357
}
355
358
356
- private void typeHandlerElement (XNode parent ) {
357
- if (parent != null ) {
358
- for (XNode child : parent .getChildren ()) {
359
- if ("package" .equals (child .getName ())) {
360
- String typeHandlerPackage = child .getStringAttribute ("name" );
361
- typeHandlerRegistry .register (typeHandlerPackage );
362
- } else {
363
- String javaTypeName = child .getStringAttribute ("javaType" );
364
- String jdbcTypeName = child .getStringAttribute ("jdbcType" );
365
- String handlerTypeName = child .getStringAttribute ("handler" );
366
- Class <?> javaTypeClass = resolveClass (javaTypeName );
367
- JdbcType jdbcType = resolveJdbcType (jdbcTypeName );
368
- Class <?> typeHandlerClass = resolveClass (handlerTypeName );
369
- if (javaTypeClass != null ) {
370
- if (jdbcType == null ) {
371
- typeHandlerRegistry .register (javaTypeClass , typeHandlerClass );
372
- } else {
373
- typeHandlerRegistry .register (javaTypeClass , jdbcType , typeHandlerClass );
374
- }
359
+ private void typeHandlerElement (XNode context ) {
360
+ if (context == null ) {
361
+ return ;
362
+ }
363
+ for (XNode child : context .getChildren ()) {
364
+ if ("package" .equals (child .getName ())) {
365
+ String typeHandlerPackage = child .getStringAttribute ("name" );
366
+ typeHandlerRegistry .register (typeHandlerPackage );
367
+ } else {
368
+ String javaTypeName = child .getStringAttribute ("javaType" );
369
+ String jdbcTypeName = child .getStringAttribute ("jdbcType" );
370
+ String handlerTypeName = child .getStringAttribute ("handler" );
371
+ Class <?> javaTypeClass = resolveClass (javaTypeName );
372
+ JdbcType jdbcType = resolveJdbcType (jdbcTypeName );
373
+ Class <?> typeHandlerClass = resolveClass (handlerTypeName );
374
+ if (javaTypeClass != null ) {
375
+ if (jdbcType == null ) {
376
+ typeHandlerRegistry .register (javaTypeClass , typeHandlerClass );
375
377
} else {
376
- typeHandlerRegistry .register (typeHandlerClass );
378
+ typeHandlerRegistry .register (javaTypeClass , jdbcType , typeHandlerClass );
377
379
}
380
+ } else {
381
+ typeHandlerRegistry .register (typeHandlerClass );
378
382
}
379
383
}
380
384
}
381
385
}
382
386
383
- private void mapperElement (XNode parent ) throws Exception {
384
- if (parent != null ) {
385
- for (XNode child : parent .getChildren ()) {
386
- if ("package" .equals (child .getName ())) {
387
- String mapperPackage = child .getStringAttribute ("name" );
388
- configuration .addMappers (mapperPackage );
389
- } else {
390
- String resource = child .getStringAttribute ("resource" );
391
- String url = child .getStringAttribute ("url" );
392
- String mapperClass = child .getStringAttribute ("class" );
393
- if (resource != null && url == null && mapperClass == null ) {
394
- ErrorContext .instance ().resource (resource );
395
- try (InputStream inputStream = Resources .getResourceAsStream (resource )) {
396
- XMLMapperBuilder mapperParser = new XMLMapperBuilder (inputStream , configuration , resource ,
397
- configuration .getSqlFragments ());
398
- mapperParser .parse ();
399
- }
400
- } else if (resource == null && url != null && mapperClass == null ) {
401
- ErrorContext .instance ().resource (url );
402
- try (InputStream inputStream = Resources .getUrlAsStream (url )) {
403
- XMLMapperBuilder mapperParser = new XMLMapperBuilder (inputStream , configuration , url ,
404
- configuration .getSqlFragments ());
405
- mapperParser .parse ();
406
- }
407
- } else if (resource == null && url == null && mapperClass != null ) {
408
- Class <?> mapperInterface = Resources .classForName (mapperClass );
409
- configuration .addMapper (mapperInterface );
410
- } else {
411
- throw new BuilderException (
412
- "A mapper element may only specify a url, resource or class, but not more than one." );
387
+ private void mapperElement (XNode context ) throws Exception {
388
+ if (context == null ) {
389
+ return ;
390
+ }
391
+ for (XNode child : context .getChildren ()) {
392
+ if ("package" .equals (child .getName ())) {
393
+ String mapperPackage = child .getStringAttribute ("name" );
394
+ configuration .addMappers (mapperPackage );
395
+ } else {
396
+ String resource = child .getStringAttribute ("resource" );
397
+ String url = child .getStringAttribute ("url" );
398
+ String mapperClass = child .getStringAttribute ("class" );
399
+ if (resource != null && url == null && mapperClass == null ) {
400
+ ErrorContext .instance ().resource (resource );
401
+ try (InputStream inputStream = Resources .getResourceAsStream (resource )) {
402
+ XMLMapperBuilder mapperParser = new XMLMapperBuilder (inputStream , configuration , resource ,
403
+ configuration .getSqlFragments ());
404
+ mapperParser .parse ();
413
405
}
406
+ } else if (resource == null && url != null && mapperClass == null ) {
407
+ ErrorContext .instance ().resource (url );
408
+ try (InputStream inputStream = Resources .getUrlAsStream (url )) {
409
+ XMLMapperBuilder mapperParser = new XMLMapperBuilder (inputStream , configuration , url ,
410
+ configuration .getSqlFragments ());
411
+ mapperParser .parse ();
412
+ }
413
+ } else if (resource == null && url == null && mapperClass != null ) {
414
+ Class <?> mapperInterface = Resources .classForName (mapperClass );
415
+ configuration .addMapper (mapperInterface );
416
+ } else {
417
+ throw new BuilderException (
418
+ "A mapper element may only specify a url, resource or class, but not more than one." );
414
419
}
415
420
}
416
421
}
0 commit comments