Skip to content

Commit 6d64d35

Browse files
committed
[source] Cleanup source code
1 parent d308c57 commit 6d64d35

15 files changed

+96
-112
lines changed

src/main/java/org/mybatis/spring/MyBatisExceptionTranslator.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ public DataAccessException translateExceptionIfPossible(RuntimeException e) {
7979
if (e instanceof PersistenceException) {
8080
// Batch exceptions come inside another PersistenceException
8181
// recursion has a risk of infinite loop so better make another if
82-
String msg = e.getMessage();
82+
var msg = e.getMessage();
8383
if (e.getCause() instanceof PersistenceException) {
8484
e = (PersistenceException) e.getCause();
8585
if (msg == null) {
@@ -88,11 +88,12 @@ public DataAccessException translateExceptionIfPossible(RuntimeException e) {
8888
}
8989
if (e.getCause() instanceof SQLException) {
9090
this.initExceptionTranslator();
91-
String task = e.getMessage() + "\n";
92-
SQLException se = (SQLException) e.getCause();
93-
DataAccessException dae = this.exceptionTranslator.translate(task, null, se);
91+
var task = e.getMessage() + "\n";
92+
var se = (SQLException) e.getCause();
93+
var dae = this.exceptionTranslator.translate(task, null, se);
9494
return dae != null ? dae : new UncategorizedSQLException(task, null, se);
95-
} else if (e.getCause() instanceof TransactionException) {
95+
}
96+
if (e.getCause() instanceof TransactionException) {
9697
throw (TransactionException) e.getCause();
9798
}
9899
return new MyBatisSystemException(msg, e);

src/main/java/org/mybatis/spring/SqlSessionFactoryBean.java

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,6 @@
6464
import org.springframework.core.io.Resource;
6565
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
6666
import org.springframework.core.io.support.ResourcePatternResolver;
67-
import org.springframework.core.type.ClassMetadata;
6867
import org.springframework.core.type.classreading.CachingMetadataReaderFactory;
6968
import org.springframework.core.type.classreading.MetadataReaderFactory;
7069
import org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy;
@@ -553,14 +552,13 @@ public void addTypeAliases(Class<?>... typeAliases) {
553552
private <T> T[] appendArrays(T[] oldArrays, T[] newArrays, IntFunction<T[]> generator) {
554553
if (oldArrays == null) {
555554
return newArrays;
555+
}
556+
if (newArrays == null) {
557+
return oldArrays;
556558
} else {
557-
if (newArrays == null) {
558-
return oldArrays;
559-
} else {
560-
List<T> newList = new ArrayList<>(Arrays.asList(oldArrays));
561-
newList.addAll(Arrays.asList(newArrays));
562-
return newList.toArray(generator.apply(0));
563-
}
559+
List<T> newList = new ArrayList<>(Arrays.asList(oldArrays));
560+
newList.addAll(Arrays.asList(newArrays));
561+
return newList.toArray(generator.apply(0));
564562
}
565563
}
566564

@@ -690,8 +688,8 @@ protected SqlSessionFactory buildSqlSessionFactory() throws Exception {
690688
continue;
691689
}
692690
try {
693-
XMLMapperBuilder xmlMapperBuilder = new XMLMapperBuilder(mapperLocation.getInputStream(),
694-
targetConfiguration, mapperLocation.toString(), targetConfiguration.getSqlFragments());
691+
var xmlMapperBuilder = new XMLMapperBuilder(mapperLocation.getInputStream(), targetConfiguration,
692+
mapperLocation.toString(), targetConfiguration.getSqlFragments());
695693
xmlMapperBuilder.parse();
696694
} catch (Exception e) {
697695
throw new IOException("Failed to parse mapping resource: '" + mapperLocation + "'", e);
@@ -737,14 +735,14 @@ public void onApplicationEvent(ContextRefreshedEvent event) {
737735

738736
private Set<Class<?>> scanClasses(String packagePatterns, Class<?> assignableType) throws IOException {
739737
Set<Class<?>> classes = new HashSet<>();
740-
String[] packagePatternArray = tokenizeToStringArray(packagePatterns,
738+
var packagePatternArray = tokenizeToStringArray(packagePatterns,
741739
ConfigurableApplicationContext.CONFIG_LOCATION_DELIMITERS);
742740
for (String packagePattern : packagePatternArray) {
743-
Resource[] resources = RESOURCE_PATTERN_RESOLVER.getResources(ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX
741+
var resources = RESOURCE_PATTERN_RESOLVER.getResources(ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX
744742
+ ClassUtils.convertClassNameToResourcePath(packagePattern) + "/**/*.class");
745743
for (Resource resource : resources) {
746744
try {
747-
ClassMetadata classMetadata = METADATA_READER_FACTORY.getMetadataReader(resource).getClassMetadata();
745+
var classMetadata = METADATA_READER_FACTORY.getMetadataReader(resource).getClassMetadata();
748746
Class<?> clazz = Resources.classForName(classMetadata.getClassName());
749747
if (assignableType == null || assignableType.isAssignableFrom(clazz)) {
750748
classes.add(clazz);

src/main/java/org/mybatis/spring/SqlSessionTemplate.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -327,18 +327,18 @@ public void destroy() throws Exception {
327327
private class SqlSessionInterceptor implements InvocationHandler {
328328
@Override
329329
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
330-
SqlSession sqlSession = getSqlSession(SqlSessionTemplate.this.sqlSessionFactory,
331-
SqlSessionTemplate.this.executorType, SqlSessionTemplate.this.exceptionTranslator);
330+
var sqlSession = getSqlSession(SqlSessionTemplate.this.sqlSessionFactory, SqlSessionTemplate.this.executorType,
331+
SqlSessionTemplate.this.exceptionTranslator);
332332
try {
333-
Object result = method.invoke(sqlSession, args);
333+
var result = method.invoke(sqlSession, args);
334334
if (!isSqlSessionTransactional(sqlSession, SqlSessionTemplate.this.sqlSessionFactory)) {
335335
// force commit even on non-dirty sessions because some databases require
336336
// a commit/rollback before calling close()
337337
sqlSession.commit(true);
338338
}
339339
return result;
340340
} catch (Throwable t) {
341-
Throwable unwrapped = unwrapThrowable(t);
341+
var unwrapped = unwrapThrowable(t);
342342
if (SqlSessionTemplate.this.exceptionTranslator != null && unwrapped instanceof PersistenceException) {
343343
// release the connection to avoid a deadlock if the translator is no loaded. See issue #22
344344
closeSqlSession(sqlSession, SqlSessionTemplate.this.sqlSessionFactory);

src/main/java/org/mybatis/spring/SqlSessionUtils.java

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,12 @@
1818
import static org.springframework.util.Assert.notNull;
1919

2020
import org.apache.ibatis.exceptions.PersistenceException;
21-
import org.apache.ibatis.mapping.Environment;
2221
import org.apache.ibatis.session.ExecutorType;
2322
import org.apache.ibatis.session.SqlSession;
2423
import org.apache.ibatis.session.SqlSessionFactory;
2524
import org.mybatis.logging.Logger;
2625
import org.mybatis.logging.LoggerFactory;
2726
import org.mybatis.spring.transaction.SpringManagedTransactionFactory;
28-
import org.springframework.dao.DataAccessException;
2927
import org.springframework.dao.TransientDataAccessResourceException;
3028
import org.springframework.dao.support.PersistenceExceptionTranslator;
3129
import org.springframework.jdbc.datasource.DataSourceUtils;
@@ -68,7 +66,7 @@ private SqlSessionUtils() {
6866
* {@code SpringManagedTransactionFactory}
6967
*/
7068
public static SqlSession getSqlSession(SqlSessionFactory sessionFactory) {
71-
ExecutorType executorType = sessionFactory.getConfiguration().getDefaultExecutorType();
69+
var executorType = sessionFactory.getConfiguration().getDefaultExecutorType();
7270
return getSqlSession(sessionFactory, executorType, null);
7371
}
7472

@@ -99,9 +97,9 @@ public static SqlSession getSqlSession(SqlSessionFactory sessionFactory, Executo
9997
notNull(sessionFactory, NO_SQL_SESSION_FACTORY_SPECIFIED);
10098
notNull(executorType, NO_EXECUTOR_TYPE_SPECIFIED);
10199

102-
SqlSessionHolder holder = (SqlSessionHolder) TransactionSynchronizationManager.getResource(sessionFactory);
100+
var holder = (SqlSessionHolder) TransactionSynchronizationManager.getResource(sessionFactory);
103101

104-
SqlSession session = sessionHolder(executorType, holder);
102+
var session = sessionHolder(executorType, holder);
105103
if (session != null) {
106104
return session;
107105
}
@@ -134,7 +132,7 @@ private static void registerSessionHolder(SqlSessionFactory sessionFactory, Exec
134132
PersistenceExceptionTranslator exceptionTranslator, SqlSession session) {
135133
SqlSessionHolder holder;
136134
if (TransactionSynchronizationManager.isSynchronizationActive()) {
137-
Environment environment = sessionFactory.getConfiguration().getEnvironment();
135+
var environment = sessionFactory.getConfiguration().getEnvironment();
138136

139137
if (environment.getTransactionFactory() instanceof SpringManagedTransactionFactory) {
140138
LOGGER.debug(() -> "Registering transaction synchronization for SqlSession [" + session + "]");
@@ -145,14 +143,12 @@ private static void registerSessionHolder(SqlSessionFactory sessionFactory, Exec
145143
.registerSynchronization(new SqlSessionSynchronization(holder, sessionFactory));
146144
holder.setSynchronizedWithTransaction(true);
147145
holder.requested();
146+
} else if (TransactionSynchronizationManager.getResource(environment.getDataSource()) == null) {
147+
LOGGER.debug(() -> "SqlSession [" + session
148+
+ "] was not registered for synchronization because DataSource is not transactional");
148149
} else {
149-
if (TransactionSynchronizationManager.getResource(environment.getDataSource()) == null) {
150-
LOGGER.debug(() -> "SqlSession [" + session
151-
+ "] was not registered for synchronization because DataSource is not transactional");
152-
} else {
153-
throw new TransientDataAccessResourceException(
154-
"SqlSessionFactory must be using a SpringManagedTransactionFactory in order to use Spring transaction synchronization");
155-
}
150+
throw new TransientDataAccessResourceException(
151+
"SqlSessionFactory must be using a SpringManagedTransactionFactory in order to use Spring transaction synchronization");
156152
}
157153
} else {
158154
LOGGER.debug(() -> "SqlSession [" + session
@@ -191,8 +187,8 @@ public static void closeSqlSession(SqlSession session, SqlSessionFactory session
191187
notNull(session, NO_SQL_SESSION_SPECIFIED);
192188
notNull(sessionFactory, NO_SQL_SESSION_FACTORY_SPECIFIED);
193189

194-
SqlSessionHolder holder = (SqlSessionHolder) TransactionSynchronizationManager.getResource(sessionFactory);
195-
if ((holder != null) && (holder.getSqlSession() == session)) {
190+
var holder = (SqlSessionHolder) TransactionSynchronizationManager.getResource(sessionFactory);
191+
if (holder != null && holder.getSqlSession() == session) {
196192
LOGGER.debug(() -> "Releasing transactional SqlSession [" + session + "]");
197193
holder.released();
198194
} else {
@@ -215,9 +211,9 @@ public static boolean isSqlSessionTransactional(SqlSession session, SqlSessionFa
215211
notNull(session, NO_SQL_SESSION_SPECIFIED);
216212
notNull(sessionFactory, NO_SQL_SESSION_FACTORY_SPECIFIED);
217213

218-
SqlSessionHolder holder = (SqlSessionHolder) TransactionSynchronizationManager.getResource(sessionFactory);
214+
var holder = (SqlSessionHolder) TransactionSynchronizationManager.getResource(sessionFactory);
219215

220-
return (holder != null) && (holder.getSqlSession() == session);
216+
return holder != null && holder.getSqlSession() == session;
221217
}
222218

223219
/**
@@ -277,8 +273,7 @@ public void beforeCommit(boolean readOnly) {
277273
this.holder.getSqlSession().commit();
278274
} catch (PersistenceException p) {
279275
if (this.holder.getPersistenceExceptionTranslator() != null) {
280-
DataAccessException translated = this.holder.getPersistenceExceptionTranslator()
281-
.translateExceptionIfPossible(p);
276+
var translated = this.holder.getPersistenceExceptionTranslator().translateExceptionIfPossible(p);
282277
if (translated != null) {
283278
throw translated;
284279
}

src/main/java/org/mybatis/spring/annotation/MapperScannerRegistrar.java

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ public void setResourceLoader(ResourceLoader resourceLoader) {
7070

7171
@Override
7272
public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {
73-
AnnotationAttributes mapperScanAttrs = AnnotationAttributes
73+
var mapperScanAttrs = AnnotationAttributes
7474
.fromMap(importingClassMetadata.getAnnotationAttributes(MapperScan.class.getName()));
7575
if (mapperScanAttrs != null) {
7676
registerBeanDefinitions(importingClassMetadata, mapperScanAttrs, registry,
@@ -81,7 +81,7 @@ public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, B
8181
void registerBeanDefinitions(AnnotationMetadata annoMeta, AnnotationAttributes annoAttrs,
8282
BeanDefinitionRegistry registry, String beanName) {
8383

84-
BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(MapperScannerConfigurer.class);
84+
var builder = BeanDefinitionBuilder.genericBeanDefinition(MapperScannerConfigurer.class);
8585
builder.addPropertyValue("processPropertyPlaceHolders", annoAttrs.getBoolean("processPropertyPlaceHolders"));
8686

8787
Class<? extends Annotation> annotationClass = annoAttrs.getClass("annotationClass");
@@ -104,20 +104,18 @@ void registerBeanDefinitions(AnnotationMetadata annoMeta, AnnotationAttributes a
104104
builder.addPropertyValue("mapperFactoryBeanClass", mapperFactoryBeanClass);
105105
}
106106

107-
String sqlSessionTemplateRef = annoAttrs.getString("sqlSessionTemplateRef");
107+
var sqlSessionTemplateRef = annoAttrs.getString("sqlSessionTemplateRef");
108108
if (StringUtils.hasText(sqlSessionTemplateRef)) {
109109
builder.addPropertyValue("sqlSessionTemplateBeanName", annoAttrs.getString("sqlSessionTemplateRef"));
110110
}
111111

112-
String sqlSessionFactoryRef = annoAttrs.getString("sqlSessionFactoryRef");
112+
var sqlSessionFactoryRef = annoAttrs.getString("sqlSessionFactoryRef");
113113
if (StringUtils.hasText(sqlSessionFactoryRef)) {
114114
builder.addPropertyValue("sqlSessionFactoryBeanName", annoAttrs.getString("sqlSessionFactoryRef"));
115115
}
116116

117-
List<String> basePackages = new ArrayList<>();
118-
119-
basePackages.addAll(Arrays.stream(annoAttrs.getStringArray("basePackages")).filter(StringUtils::hasText)
120-
.collect(Collectors.toList()));
117+
List<String> basePackages = new ArrayList<>(Arrays.stream(annoAttrs.getStringArray("basePackages"))
118+
.filter(StringUtils::hasText).collect(Collectors.toList()));
121119

122120
basePackages.addAll(Arrays.stream(annoAttrs.getClassArray("basePackageClasses")).map(ClassUtils::getPackageName)
123121
.collect(Collectors.toList()));
@@ -126,7 +124,7 @@ void registerBeanDefinitions(AnnotationMetadata annoMeta, AnnotationAttributes a
126124
basePackages.add(getDefaultBasePackage(annoMeta));
127125
}
128126

129-
AnnotationAttributes[] excludeFilterArray = annoAttrs.getAnnotationArray("excludeFilters");
127+
var excludeFilterArray = annoAttrs.getAnnotationArray("excludeFilters");
130128
if (excludeFilterArray.length > 0) {
131129
List<TypeFilter> typeFilters = new ArrayList<>();
132130
List<Map<String, String>> rawTypeFilters = new ArrayList<>();
@@ -142,12 +140,12 @@ void registerBeanDefinitions(AnnotationMetadata annoMeta, AnnotationAttributes a
142140
builder.addPropertyValue("rawExcludeFilters", rawTypeFilters);
143141
}
144142

145-
String lazyInitialization = annoAttrs.getString("lazyInitialization");
143+
var lazyInitialization = annoAttrs.getString("lazyInitialization");
146144
if (StringUtils.hasText(lazyInitialization)) {
147145
builder.addPropertyValue("lazyInitialization", lazyInitialization);
148146
}
149147

150-
String defaultScope = annoAttrs.getString("defaultScope");
148+
var defaultScope = annoAttrs.getString("defaultScope");
151149
if (!AbstractBeanDefinition.SCOPE_DEFAULT.equals(defaultScope)) {
152150
builder.addPropertyValue("defaultScope", defaultScope);
153151
}
@@ -173,7 +171,7 @@ private List<Map<String, String>> parseFiltersHasPatterns(AnnotationAttributes f
173171

174172
List<Map<String, String>> rawTypeFilters = new ArrayList<>();
175173
FilterType filterType = filterAttributes.getEnum("type");
176-
String[] expressionArray = filterAttributes.getStringArray("pattern");
174+
var expressionArray = filterAttributes.getStringArray("pattern");
177175
for (String expression : expressionArray) {
178176
switch (filterType) {
179177
case REGEX:
@@ -210,7 +208,7 @@ private List<TypeFilter> typeFiltersFor(AnnotationAttributes filterAttributes) {
210208
Assert.isAssignable(Annotation.class, filterClass,
211209
"Specified an unsupported type in 'ANNOTATION' exclude filter of @MapperScan");
212210
@SuppressWarnings("unchecked")
213-
Class<Annotation> annoClass = (Class<Annotation>) filterClass;
211+
var annoClass = (Class<Annotation>) filterClass;
214212
typeFilters.add(new AnnotationTypeFilter(annoClass));
215213
break;
216214
case ASSIGNABLE_TYPE:
@@ -245,11 +243,11 @@ private static String getDefaultBasePackage(AnnotationMetadata importingClassMet
245243
static class RepeatingRegistrar extends MapperScannerRegistrar {
246244
@Override
247245
public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {
248-
AnnotationAttributes mapperScansAttrs = AnnotationAttributes
246+
var mapperScansAttrs = AnnotationAttributes
249247
.fromMap(importingClassMetadata.getAnnotationAttributes(MapperScans.class.getName()));
250248
if (mapperScansAttrs != null) {
251-
AnnotationAttributes[] annotations = mapperScansAttrs.getAnnotationArray("value");
252-
for (int i = 0; i < annotations.length; i++) {
249+
var annotations = mapperScansAttrs.getAnnotationArray("value");
250+
for (var i = 0; i < annotations.length; i++) {
253251
registerBeanDefinitions(importingClassMetadata, annotations[i], registry,
254252
generateBaseBeanName(importingClassMetadata, i));
255253
}

src/main/java/org/mybatis/spring/batch/MyBatisBatchItemWriter.java

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,6 @@
1818
import static org.springframework.util.Assert.isTrue;
1919
import static org.springframework.util.Assert.notNull;
2020

21-
import java.util.List;
22-
23-
import org.apache.ibatis.executor.BatchResult;
2421
import org.apache.ibatis.session.ExecutorType;
2522
import org.apache.ibatis.session.SqlSession;
2623
import org.apache.ibatis.session.SqlSessionFactory;
@@ -143,18 +140,18 @@ public void write(final Chunk<? extends T> items) {
143140
sqlSessionTemplate.update(statementId, itemToParameterConverter.convert(item));
144141
}
145142

146-
List<BatchResult> results = sqlSessionTemplate.flushStatements();
143+
var results = sqlSessionTemplate.flushStatements();
147144

148145
if (assertUpdates) {
149146
if (results.size() != 1) {
150147
throw new InvalidDataAccessResourceUsageException("Batch execution returned invalid results. "
151148
+ "Expected 1 but number of BatchResult objects returned was " + results.size());
152149
}
153150

154-
int[] updateCounts = results.get(0).getUpdateCounts();
151+
var updateCounts = results.get(0).getUpdateCounts();
155152

156-
for (int i = 0; i < updateCounts.length; i++) {
157-
int value = updateCounts[i];
153+
for (var i = 0; i < updateCounts.length; i++) {
154+
var value = updateCounts[i];
158155
if (value == 0) {
159156
throw new EmptyResultDataAccessException("Item " + i + " of " + updateCounts.length
160157
+ " did not update any rows: [" + items.getItems().get(i) + "]", 1);

src/main/java/org/mybatis/spring/batch/builder/MyBatisBatchItemWriterBuilder.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2010-2022 the original author or authors.
2+
* Copyright 2010-2024 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -120,7 +120,7 @@ public MyBatisBatchItemWriterBuilder<T> itemToParameterConverter(Converter<T, ?>
120120
* @return the writer
121121
*/
122122
public MyBatisBatchItemWriter<T> build() {
123-
MyBatisBatchItemWriter<T> writer = new MyBatisBatchItemWriter<>();
123+
var writer = new MyBatisBatchItemWriter<T>();
124124
writer.setSqlSessionTemplate(this.sqlSessionTemplate);
125125
writer.setSqlSessionFactory(this.sqlSessionFactory);
126126
writer.setStatementId(this.statementId);

src/main/java/org/mybatis/spring/batch/builder/MyBatisCursorItemReaderBuilder.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2010-2022 the original author or authors.
2+
* Copyright 2010-2024 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -140,7 +140,7 @@ public MyBatisCursorItemReaderBuilder<T> maxItemCount(int maxItemCount) {
140140
* @return the reader
141141
*/
142142
public MyBatisCursorItemReader<T> build() {
143-
MyBatisCursorItemReader<T> reader = new MyBatisCursorItemReader<>();
143+
var reader = new MyBatisCursorItemReader<T>();
144144
reader.setSqlSessionFactory(this.sqlSessionFactory);
145145
reader.setQueryId(this.queryId);
146146
reader.setParameterValues(this.parameterValues);

0 commit comments

Comments
 (0)