From c8ecb3ca6dd05bc22b828702abd377fb68ab964d Mon Sep 17 00:00:00 2001 From: Eduardo Macarron Date: Wed, 3 Feb 2016 17:09:15 +0100 Subject: [PATCH 1/6] Cherripicking #59, #78 && #105 --- pom.xml | 32 ++++++------ .../mybatis/spring/SqlSessionFactoryBean.java | 40 ++++++++++----- .../mybatis/spring/SqlSessionTemplate.java | 49 ++++++++++++++++--- .../spring/mapper/ClassPathMapperScanner.java | 2 +- .../spring/mapper/MapperFactoryBean.java | 7 ++- .../mybatis/spring/ExecutorInterceptor.java | 3 ++ .../spring/SqlSessionFactoryBeanTest.java | 2 + .../spring/annotation/MapperScanTest.java | 1 + .../AsyncAfterCompletionHelper.java | 1 + .../mybatis/spring/config/NamespaceTest.java | 1 + .../spring/mapper/MapperImplementation.java | 1 + .../mapper/MapperScannerConfigurerTest.java | 1 + .../org/mybatis/spring/mybatis-config.xml | 1 + .../spring/sample/dao/UserDaoImpl.java | 1 + .../mybatis/spring/sample/domain/User.java | 1 + .../spring/submitted/xa/UserServiceImpl.java | 3 ++ .../spring/type/DummyMapperFactoryBean.java | 8 +++ .../mybatis/spring/type/DummyTypeHandler.java | 4 ++ .../spring/type/DummyTypeHandler2.java | 4 ++ 19 files changed, 123 insertions(+), 39 deletions(-) diff --git a/pom.xml b/pom.xml index 42547f8b8e..4c9c7c77c5 100644 --- a/pom.xml +++ b/pom.xml @@ -20,15 +20,16 @@ org.mybatis mybatis-parent - 24 + 26 + mybatis-spring - 1.2.3 + 1.2.4-SNAPSHOT jar mybatis-spring - An easy-to-use Spring3 bridge for MyBatis sql mapping framework. + An easy-to-use Spring bridge for MyBatis sql mapping framework. http://www.mybatis.org/spring/ @@ -69,7 +70,7 @@ - Tomáš Piňos + Tomáš Piňos tomas.pinos@gmail.com @@ -78,7 +79,7 @@ http://github.com/mybatis/spring scm:git:ssh://github.com/mybatis/spring.git scm:git:ssh://git@github.com/mybatis/spring.git - mybatis-spring-1.2.3 + HEAD GitHub Issue Management @@ -90,8 +91,9 @@ - github - gitsite:git@github.com/mybatis/spring.git + gh-pages + Mybatis GitHub Pages + git:ssh://git@github.com/mybatis/spring.git?gh-pages# @@ -101,7 +103,7 @@ Spring org.springframework.batch.*;resolution:=optional,* * - 3.2.13.RELEASE + 4.2.4.RELEASE @@ -109,7 +111,7 @@ org.mybatis mybatis - 3.3.0 + 3.4.0-SNAPSHOT provided @@ -129,7 +131,7 @@ org.springframework.batch spring-batch-infrastructure - 3.0.4.RELEASE + 3.0.6.RELEASE provided @@ -145,21 +147,21 @@ org.apache.derby derby - 10.11.1.1 + 10.12.1.1 test ognl ognl - 3.0.11 + 3.1.2 test cglib cglib - 3.1 + 3.2.0 test @@ -173,7 +175,7 @@ org.jboss.byteman byteman-bmunit - 3.0.1 + 3.0.3 test @@ -187,7 +189,7 @@ org.hsqldb hsqldb - 2.3.2 + 2.3.3 test diff --git a/src/main/java/org/mybatis/spring/SqlSessionFactoryBean.java b/src/main/java/org/mybatis/spring/SqlSessionFactoryBean.java index 30dff45c50..f3ef64f240 100644 --- a/src/main/java/org/mybatis/spring/SqlSessionFactoryBean.java +++ b/src/main/java/org/mybatis/spring/SqlSessionFactoryBean.java @@ -29,6 +29,7 @@ import org.apache.ibatis.builder.xml.XMLConfigBuilder; import org.apache.ibatis.builder.xml.XMLMapperBuilder; import org.apache.ibatis.executor.ErrorContext; +import org.apache.ibatis.io.VFS; import org.apache.ibatis.logging.Log; import org.apache.ibatis.logging.LogFactory; import org.apache.ibatis.mapping.DatabaseIdProvider; @@ -64,7 +65,8 @@ * @author Putthibong Boonbong * @author Hunter Presnall * @author Eduardo Macarron - * + * @author Eddú Meléndez + * * @see #setConfigLocation * @see #setDataSource * @version $Id$ @@ -107,13 +109,15 @@ public class SqlSessionFactoryBean implements FactoryBean, In //issue #19. No default provider. private DatabaseIdProvider databaseIdProvider; + private Class vfs; + private ObjectFactory objectFactory; private ObjectWrapperFactory objectWrapperFactory; /** * Sets the ObjectFactory. - * + * * @since 1.1.2 * @param objectFactory */ @@ -123,7 +127,7 @@ public void setObjectFactory(ObjectFactory objectFactory) { /** * Sets the ObjectWrapperFactory. - * + * * @since 1.1.2 * @param objectWrapperFactory */ @@ -143,7 +147,7 @@ public DatabaseIdProvider getDatabaseIdProvider() { /** * Sets the DatabaseIdProvider. - * As of version 1.2.2 this variable is not initialized by default. + * As of version 1.2.2 this variable is not initialized by default. * * @since 1.1.0 * @param databaseIdProvider @@ -152,6 +156,14 @@ public void setDatabaseIdProvider(DatabaseIdProvider databaseIdProvider) { this.databaseIdProvider = databaseIdProvider; } + public Class getVfs() { + return this.vfs; + } + + public void setVfs(Class vfs) { + this.vfs = vfs; + } + /** * Mybatis plugin list. * @@ -426,6 +438,18 @@ protected SqlSessionFactory buildSqlSessionFactory() throws IOException { } } + if (this.databaseIdProvider != null) {//fix #64 set databaseId before parse mapper xmls + try { + configuration.setDatabaseId(this.databaseIdProvider.getDatabaseId(this.dataSource)); + } catch (SQLException e) { + throw new NestedIOException("Failed getting a databaseId", e); + } + } + + if (this.vfs != null) { + configuration.setVfsImpl(this.vfs); + } + if (xmlConfigBuilder != null) { try { xmlConfigBuilder.parse(); @@ -446,14 +470,6 @@ protected SqlSessionFactory buildSqlSessionFactory() throws IOException { configuration.setEnvironment(new Environment(this.environment, this.transactionFactory, this.dataSource)); - if (this.databaseIdProvider != null) { - try { - configuration.setDatabaseId(this.databaseIdProvider.getDatabaseId(this.dataSource)); - } catch (SQLException e) { - throw new NestedIOException("Failed getting a databaseId", e); - } - } - if (!isEmpty(this.mapperLocations)) { for (Resource mapperLocation : this.mapperLocations) { if (mapperLocation == null) { diff --git a/src/main/java/org/mybatis/spring/SqlSessionTemplate.java b/src/main/java/org/mybatis/spring/SqlSessionTemplate.java index dac3da432d..17784672ee 100644 --- a/src/main/java/org/mybatis/spring/SqlSessionTemplate.java +++ b/src/main/java/org/mybatis/spring/SqlSessionTemplate.java @@ -28,6 +28,7 @@ import java.util.List; import java.util.Map; +import org.apache.ibatis.cursor.Cursor; import org.apache.ibatis.exceptions.PersistenceException; import org.apache.ibatis.executor.BatchResult; import org.apache.ibatis.session.Configuration; @@ -36,6 +37,7 @@ import org.apache.ibatis.session.RowBounds; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; +import org.springframework.beans.factory.DisposableBean; import org.springframework.dao.support.PersistenceExceptionTranslator; /** @@ -68,12 +70,12 @@ * @author Putthibong Boonbong * @author Hunter Presnall * @author Eduardo Macarron - * + * * @see SqlSessionFactory * @see MyBatisExceptionTranslator * @version $Id$ */ -public class SqlSessionTemplate implements SqlSession { +public class SqlSessionTemplate implements SqlSession, DisposableBean { private final SqlSessionFactory sqlSessionFactory; @@ -370,11 +372,32 @@ public List flushStatements() { } /** - * Proxy needed to route MyBatis method calls to the proper SqlSession got - * from Spring's Transaction Manager - * It also unwraps exceptions thrown by {@code Method#invoke(Object, Object...)} to - * pass a {@code PersistenceException} to the {@code PersistenceExceptionTranslator}. - */ + * Allow gently dispose bean: + *
+  * {@code
+  *
+  * 
+  *  
+  * 
+  * }
+  *
+ * + * The implementation of {@link DisposableBean} forces spring context to use {@link DisposableBean#destroy()} method instead of {@link SqlSessionTemplate#close()} to shutdown gently. + * + * @see SqlSessionTemplate#close() + * @see org.springframework.beans.factory.support.DisposableBeanAdapter#inferDestroyMethodIfNecessary + * @see org.springframework.beans.factory.support.DisposableBeanAdapter#CLOSE_METHOD_NAME + */ + @Override + public void destroy() throws Exception { + } + + /** + * Proxy needed to route MyBatis method calls to the proper SqlSession got + * from Spring's Transaction Manager + * It also unwraps exceptions thrown by {@code Method#invoke(Object, Object...)} to + * pass a {@code PersistenceException} to the {@code PersistenceExceptionTranslator}. + */ private class SqlSessionInterceptor implements InvocationHandler { @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { @@ -410,4 +433,16 @@ public Object invoke(Object proxy, Method method, Object[] args) throws Throwabl } } + public Cursor selectCursor(String statement) { + return null; + } + + public Cursor selectCursor(String statement, Object parameter) { + return null; + } + + public Cursor selectCursor(String statement, Object parameter, RowBounds rowBounds) { + return null; + } + } diff --git a/src/main/java/org/mybatis/spring/mapper/ClassPathMapperScanner.java b/src/main/java/org/mybatis/spring/mapper/ClassPathMapperScanner.java index 26401a0b45..0342b2a47e 100644 --- a/src/main/java/org/mybatis/spring/mapper/ClassPathMapperScanner.java +++ b/src/main/java/org/mybatis/spring/mapper/ClassPathMapperScanner.java @@ -184,7 +184,7 @@ private void processBeanDefinitions(Set beanDefinitions) { // the mapper interface is the original class of the bean // but, the actual class of the bean is MapperFactoryBean - definition.getPropertyValues().add("mapperInterface", definition.getBeanClassName()); + definition.getConstructorArgumentValues().addGenericArgumentValue(definition.getBeanClassName()); // issue #59 definition.setBeanClass(this.mapperFactoryBean.getClass()); definition.getPropertyValues().add("addToConfig", this.addToConfig); diff --git a/src/main/java/org/mybatis/spring/mapper/MapperFactoryBean.java b/src/main/java/org/mybatis/spring/mapper/MapperFactoryBean.java index 333b4d4eb8..c3b8da8551 100644 --- a/src/main/java/org/mybatis/spring/mapper/MapperFactoryBean.java +++ b/src/main/java/org/mybatis/spring/mapper/MapperFactoryBean.java @@ -58,14 +58,13 @@ public class MapperFactoryBean extends SqlSessionDaoSupport implements Factor private boolean addToConfig = true; - + public MapperFactoryBean() { + } + public MapperFactoryBean(Class mapperInterface) { this.mapperInterface = mapperInterface; } - public MapperFactoryBean() { - } - /** * {@inheritDoc} */ diff --git a/src/test/java/org/mybatis/spring/ExecutorInterceptor.java b/src/test/java/org/mybatis/spring/ExecutorInterceptor.java index 3565e074ff..1b607255b4 100644 --- a/src/test/java/org/mybatis/spring/ExecutorInterceptor.java +++ b/src/test/java/org/mybatis/spring/ExecutorInterceptor.java @@ -46,6 +46,7 @@ final class ExecutorInterceptor implements Interceptor { private boolean closed; + @Override public Object intercept(Invocation invocation) throws Throwable { if ("commit".equals(invocation.getMethod().getName())) { ++this.commitCount; @@ -58,10 +59,12 @@ public Object intercept(Invocation invocation) throws Throwable { return invocation.proceed(); } + @Override public Object plugin(Object target) { return Plugin.wrap(target, this); } + @Override public void setProperties(Properties properties) { // do nothing } diff --git a/src/test/java/org/mybatis/spring/SqlSessionFactoryBeanTest.java b/src/test/java/org/mybatis/spring/SqlSessionFactoryBeanTest.java index 5accf31ad3..e88368e162 100644 --- a/src/test/java/org/mybatis/spring/SqlSessionFactoryBeanTest.java +++ b/src/test/java/org/mybatis/spring/SqlSessionFactoryBeanTest.java @@ -20,6 +20,7 @@ import java.math.BigDecimal; import java.math.BigInteger; +import org.apache.ibatis.io.JBoss6VFS; import org.apache.ibatis.reflection.factory.DefaultObjectFactory; import org.apache.ibatis.reflection.factory.ObjectFactory; import org.apache.ibatis.reflection.wrapper.DefaultObjectWrapperFactory; @@ -136,6 +137,7 @@ public void testSetConfigLocation() throws Exception { assertSame(factory.getConfiguration().getEnvironment().getDataSource(), dataSource); assertSame(factory.getConfiguration().getEnvironment().getTransactionFactory().getClass(), org.mybatis.spring.transaction.SpringManagedTransactionFactory.class); + assertSame(factory.getConfiguration().getVfsImpl(), JBoss6VFS.class); // properties explicitly set differently than the defaults in the config xml assertFalse(factory.getConfiguration().isCacheEnabled()); diff --git a/src/test/java/org/mybatis/spring/annotation/MapperScanTest.java b/src/test/java/org/mybatis/spring/annotation/MapperScanTest.java index a7991f740a..ee923e6bba 100644 --- a/src/test/java/org/mybatis/spring/annotation/MapperScanTest.java +++ b/src/test/java/org/mybatis/spring/annotation/MapperScanTest.java @@ -290,6 +290,7 @@ public static class AppConfigWithCustomMapperFactoryBean { public static class BeanNameGenerator implements org.springframework.beans.factory.support.BeanNameGenerator { + @Override public String generateBeanName(BeanDefinition beanDefinition, BeanDefinitionRegistry definitionRegistry) { return beanDefinition.getBeanClassName(); } diff --git a/src/test/java/org/mybatis/spring/asyncsynchronization/AsyncAfterCompletionHelper.java b/src/test/java/org/mybatis/spring/asyncsynchronization/AsyncAfterCompletionHelper.java index 672196a8b0..52d74a58a8 100644 --- a/src/test/java/org/mybatis/spring/asyncsynchronization/AsyncAfterCompletionHelper.java +++ b/src/test/java/org/mybatis/spring/asyncsynchronization/AsyncAfterCompletionHelper.java @@ -48,6 +48,7 @@ static class AsynchAfterCompletionInvocationHandler implements this.target = target; } + @Override public Object invoke(final Object proxy, final Method method, final Object[] args) throws Throwable { if ("afterCompletion".equals(method.getName())) { diff --git a/src/test/java/org/mybatis/spring/config/NamespaceTest.java b/src/test/java/org/mybatis/spring/config/NamespaceTest.java index 3dd52ae180..c09745b168 100644 --- a/src/test/java/org/mybatis/spring/config/NamespaceTest.java +++ b/src/test/java/org/mybatis/spring/config/NamespaceTest.java @@ -211,6 +211,7 @@ private void assertBeanNotLoaded(String name) { public static class BeanNameGenerator implements org.springframework.beans.factory.support.BeanNameGenerator { + @Override public String generateBeanName(BeanDefinition beanDefinition, BeanDefinitionRegistry definitionRegistry) { return beanDefinition.getBeanClassName(); } diff --git a/src/test/java/org/mybatis/spring/mapper/MapperImplementation.java b/src/test/java/org/mybatis/spring/mapper/MapperImplementation.java index db5a8e9a88..f25bb1cc22 100644 --- a/src/test/java/org/mybatis/spring/mapper/MapperImplementation.java +++ b/src/test/java/org/mybatis/spring/mapper/MapperImplementation.java @@ -20,6 +20,7 @@ */ // implementation of MapperInterface to test conflicting types final class MapperImplementation implements MapperInterface { + @Override public void method() { } } diff --git a/src/test/java/org/mybatis/spring/mapper/MapperScannerConfigurerTest.java b/src/test/java/org/mybatis/spring/mapper/MapperScannerConfigurerTest.java index 141fe77423..72172aee52 100644 --- a/src/test/java/org/mybatis/spring/mapper/MapperScannerConfigurerTest.java +++ b/src/test/java/org/mybatis/spring/mapper/MapperScannerConfigurerTest.java @@ -272,6 +272,7 @@ private void assertBeanNotLoaded(String name) { public static class BeanNameGenerator implements org.springframework.beans.factory.support.BeanNameGenerator { + @Override public String generateBeanName(BeanDefinition beanDefinition, BeanDefinitionRegistry definitionRegistry) { return beanDefinition.getBeanClassName(); } diff --git a/src/test/java/org/mybatis/spring/mybatis-config.xml b/src/test/java/org/mybatis/spring/mybatis-config.xml index e76a422548..c466ac8c05 100644 --- a/src/test/java/org/mybatis/spring/mybatis-config.xml +++ b/src/test/java/org/mybatis/spring/mybatis-config.xml @@ -28,6 +28,7 @@ + diff --git a/src/test/java/org/mybatis/spring/sample/dao/UserDaoImpl.java b/src/test/java/org/mybatis/spring/sample/dao/UserDaoImpl.java index 8ac2b86bdb..706ac85145 100644 --- a/src/test/java/org/mybatis/spring/sample/dao/UserDaoImpl.java +++ b/src/test/java/org/mybatis/spring/sample/dao/UserDaoImpl.java @@ -28,6 +28,7 @@ */ public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao { + @Override public User getUser(String userId) { return (User) getSqlSession().selectOne("org.mybatis.spring.sample.dao.UserDao.getUser", userId); } diff --git a/src/test/java/org/mybatis/spring/sample/domain/User.java b/src/test/java/org/mybatis/spring/sample/domain/User.java index 37b11f78b1..56379a7c15 100644 --- a/src/test/java/org/mybatis/spring/sample/domain/User.java +++ b/src/test/java/org/mybatis/spring/sample/domain/User.java @@ -42,6 +42,7 @@ public void setName(String name) { this.name = name; } + @Override public String toString() { StringBuilder buf = new StringBuilder(30); buf.append("{"); diff --git a/src/test/java/org/mybatis/spring/submitted/xa/UserServiceImpl.java b/src/test/java/org/mybatis/spring/submitted/xa/UserServiceImpl.java index 79892d9cb7..10a4d9665f 100644 --- a/src/test/java/org/mybatis/spring/submitted/xa/UserServiceImpl.java +++ b/src/test/java/org/mybatis/spring/submitted/xa/UserServiceImpl.java @@ -27,12 +27,14 @@ public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapperSlave; + @Override @Transactional public void saveWithNoFailure(User user) { userMapperMaster.save(user); userMapperSlave.save(user); } + @Override @Transactional public void saveWithFailure(User user) { userMapperMaster.save(user); @@ -40,6 +42,7 @@ public void saveWithFailure(User user) { throw new RuntimeException("failed!"); } + @Override public boolean checkUserExists(int id) { if (userMapperMaster.select(id) != null) return true; if (userMapperSlave.select(id) != null) return true; diff --git a/src/test/java/org/mybatis/spring/type/DummyMapperFactoryBean.java b/src/test/java/org/mybatis/spring/type/DummyMapperFactoryBean.java index 0a364c3e91..f61e5e6b1a 100644 --- a/src/test/java/org/mybatis/spring/type/DummyMapperFactoryBean.java +++ b/src/test/java/org/mybatis/spring/type/DummyMapperFactoryBean.java @@ -26,6 +26,14 @@ public class DummyMapperFactoryBean extends MapperFactoryBean { + public DummyMapperFactoryBean() { + super(); + } + + public DummyMapperFactoryBean(Class mapperInterface) { + super(mapperInterface); + } + private static final Logger LOGGER = Logger.getLogger(DummyMapperFactoryBean.class); private static final AtomicInteger mapperInstanceCount = new AtomicInteger(0); diff --git a/src/test/java/org/mybatis/spring/type/DummyTypeHandler.java b/src/test/java/org/mybatis/spring/type/DummyTypeHandler.java index 56e7a36d20..219606a8b9 100644 --- a/src/test/java/org/mybatis/spring/type/DummyTypeHandler.java +++ b/src/test/java/org/mybatis/spring/type/DummyTypeHandler.java @@ -31,17 +31,21 @@ @MappedTypes(BigInteger.class) public class DummyTypeHandler implements TypeHandler { + @Override public void setParameter(PreparedStatement ps, int i, Object parameter, JdbcType jdbcType) throws SQLException { } + @Override public Object getResult(ResultSet rs, String columnName) throws SQLException { return null; } + @Override public Object getResult(CallableStatement cs, int columnIndex) throws SQLException { return null; } + @Override public Object getResult(ResultSet rs, int columnIndex) throws SQLException { return null; } diff --git a/src/test/java/org/mybatis/spring/type/DummyTypeHandler2.java b/src/test/java/org/mybatis/spring/type/DummyTypeHandler2.java index 010fc7ba53..f611ba6ac3 100644 --- a/src/test/java/org/mybatis/spring/type/DummyTypeHandler2.java +++ b/src/test/java/org/mybatis/spring/type/DummyTypeHandler2.java @@ -31,17 +31,21 @@ @MappedTypes(BigDecimal.class) public class DummyTypeHandler2 implements TypeHandler { + @Override public void setParameter(PreparedStatement ps, int i, Object parameter, JdbcType jdbcType) throws SQLException { } + @Override public Object getResult(ResultSet rs, String columnName) throws SQLException { return null; } + @Override public Object getResult(CallableStatement cs, int columnIndex) throws SQLException { return null; } + @Override public Object getResult(ResultSet rs, int columnIndex) throws SQLException { return null; } From 2c616a4d4c6c25a1cb54b440a714fa352512c384 Mon Sep 17 00:00:00 2001 From: Eduardo Macarron Date: Wed, 3 Feb 2016 18:35:52 +0100 Subject: [PATCH 2/6] workaround for travis-ci bug, back to old infra --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 9e1054ad90..8cbad5da4a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,5 @@ language: java +sudo: false jdk: - oraclejdk8 - oraclejdk7 From ab36734fd475c2207457351fe30ee008470ab9a2 Mon Sep 17 00:00:00 2001 From: Eduardo Macarron Date: Fri, 12 Feb 2016 23:48:03 +0100 Subject: [PATCH 3/6] Mybatis dependency updated to 3.3.1 and removed Cursor --- pom.xml | 2 +- .../java/org/mybatis/spring/SqlSessionTemplate.java | 13 ------------- 2 files changed, 1 insertion(+), 14 deletions(-) diff --git a/pom.xml b/pom.xml index 4c9c7c77c5..5d8d770598 100644 --- a/pom.xml +++ b/pom.xml @@ -111,7 +111,7 @@ org.mybatis mybatis - 3.4.0-SNAPSHOT + 3.3.1-SNAPSHOT provided diff --git a/src/main/java/org/mybatis/spring/SqlSessionTemplate.java b/src/main/java/org/mybatis/spring/SqlSessionTemplate.java index 17784672ee..e7b75d1cfe 100644 --- a/src/main/java/org/mybatis/spring/SqlSessionTemplate.java +++ b/src/main/java/org/mybatis/spring/SqlSessionTemplate.java @@ -28,7 +28,6 @@ import java.util.List; import java.util.Map; -import org.apache.ibatis.cursor.Cursor; import org.apache.ibatis.exceptions.PersistenceException; import org.apache.ibatis.executor.BatchResult; import org.apache.ibatis.session.Configuration; @@ -433,16 +432,4 @@ public Object invoke(Object proxy, Method method, Object[] args) throws Throwabl } } - public Cursor selectCursor(String statement) { - return null; - } - - public Cursor selectCursor(String statement, Object parameter) { - return null; - } - - public Cursor selectCursor(String statement, Object parameter, RowBounds rowBounds) { - return null; - } - } From 7f24ce79cb283239e5814017226cf9111fbafd45 Mon Sep 17 00:00:00 2001 From: Eduardo Macarron Date: Sat, 13 Feb 2016 19:46:29 +0100 Subject: [PATCH 4/6] Removing snapshots for the release --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 5d8d770598..e98b495664 100644 --- a/pom.xml +++ b/pom.xml @@ -111,7 +111,7 @@ org.mybatis mybatis - 3.3.1-SNAPSHOT + 3.3.1 provided From c8bc80ef23518a7e874aa188ffff2dfeda717d6e Mon Sep 17 00:00:00 2001 From: Eduardo Macarron Date: Sat, 13 Feb 2016 19:48:07 +0100 Subject: [PATCH 5/6] [maven-release-plugin] prepare release mybatis-spring-1.2.4 --- pom.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index e98b495664..98cd2a80b3 100644 --- a/pom.xml +++ b/pom.xml @@ -25,7 +25,7 @@ mybatis-spring - 1.2.4-SNAPSHOT + 1.2.4 jar mybatis-spring @@ -70,7 +70,7 @@ - Tomáš Piňos + Tomáš Piňos tomas.pinos@gmail.com @@ -79,7 +79,7 @@ http://github.com/mybatis/spring scm:git:ssh://github.com/mybatis/spring.git scm:git:ssh://git@github.com/mybatis/spring.git - HEAD + mybatis-spring-1.2.4 GitHub Issue Management From 66b9a6fb63c554e865cc7f282af32b7756608912 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E9=9D=96=E9=9D=96?= Date: Wed, 23 Mar 2016 10:54:04 +0800 Subject: [PATCH 6/6] Handle customer vfsImpl before typeAliasesPackage. When I use typeAliasesPackage in spring boot executable war, the vfs added in SqlSessionFactoryBean does not task effort, because the type alias scanning happend before setting custom vfs impl --- .../java/org/mybatis/spring/SqlSessionFactoryBean.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/mybatis/spring/SqlSessionFactoryBean.java b/src/main/java/org/mybatis/spring/SqlSessionFactoryBean.java index f3ef64f240..492eccc737 100644 --- a/src/main/java/org/mybatis/spring/SqlSessionFactoryBean.java +++ b/src/main/java/org/mybatis/spring/SqlSessionFactoryBean.java @@ -388,6 +388,10 @@ protected SqlSessionFactory buildSqlSessionFactory() throws IOException { configuration.setObjectWrapperFactory(this.objectWrapperFactory); } + if (this.vfs != null) { + configuration.setVfsImpl(this.vfs); + } + if (hasLength(this.typeAliasesPackage)) { String[] typeAliasPackageArray = tokenizeToStringArray(this.typeAliasesPackage, ConfigurableApplicationContext.CONFIG_LOCATION_DELIMITERS); @@ -445,10 +449,7 @@ protected SqlSessionFactory buildSqlSessionFactory() throws IOException { throw new NestedIOException("Failed getting a databaseId", e); } } - - if (this.vfs != null) { - configuration.setVfsImpl(this.vfs); - } + if (xmlConfigBuilder != null) { try {