diff --git a/spring-session-jdbc/src/main/java/org/springframework/session/jdbc/JdbcOperationsSessionRepository.java b/spring-session-jdbc/src/main/java/org/springframework/session/jdbc/JdbcOperationsSessionRepository.java index f17927d2..af46c58a 100644 --- a/spring-session-jdbc/src/main/java/org/springframework/session/jdbc/JdbcOperationsSessionRepository.java +++ b/spring-session-jdbc/src/main/java/org/springframework/session/jdbc/JdbcOperationsSessionRepository.java @@ -29,8 +29,6 @@ import java.util.Map; import java.util.Set; import java.util.UUID; -import javax.sql.DataSource; - import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -225,17 +223,6 @@ public class JdbcOperationsSessionRepository implements private LobHandler lobHandler = new DefaultLobHandler(); - /** - * Create a new {@link JdbcOperationsSessionRepository} instance which uses the - * default {@link JdbcOperations} to manage sessions. - * @param dataSource the {@link DataSource} to use - * @param transactionManager the {@link PlatformTransactionManager} to use - */ - public JdbcOperationsSessionRepository(DataSource dataSource, - PlatformTransactionManager transactionManager) { - this(createDefaultJdbcTemplate(dataSource), transactionManager); - } - /** * Create a new {@link JdbcOperationsSessionRepository} instance which uses the * provided {@link JdbcOperations} to manage sessions. @@ -545,12 +532,6 @@ public class JdbcOperationsSessionRepository implements } } - private static JdbcTemplate createDefaultJdbcTemplate(DataSource dataSource) { - JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); - jdbcTemplate.afterPropertiesSet(); - return jdbcTemplate; - } - private static TransactionTemplate createTransactionTemplate( PlatformTransactionManager transactionManager) { TransactionTemplate transactionTemplate = new TransactionTemplate( diff --git a/spring-session-jdbc/src/main/java/org/springframework/session/jdbc/config/annotation/web/http/JdbcHttpSessionConfiguration.java b/spring-session-jdbc/src/main/java/org/springframework/session/jdbc/config/annotation/web/http/JdbcHttpSessionConfiguration.java index 8a986161..45f35ee7 100644 --- a/spring-session-jdbc/src/main/java/org/springframework/session/jdbc/config/annotation/web/http/JdbcHttpSessionConfiguration.java +++ b/spring-session-jdbc/src/main/java/org/springframework/session/jdbc/config/annotation/web/http/JdbcHttpSessionConfiguration.java @@ -34,6 +34,7 @@ import org.springframework.core.convert.support.GenericConversionService; import org.springframework.core.serializer.support.DeserializingConverter; import org.springframework.core.serializer.support.SerializingConverter; import org.springframework.core.type.AnnotationMetadata; +import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.support.lob.LobHandler; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.SchedulingConfigurer; @@ -90,8 +91,9 @@ public class JdbcHttpSessionConfiguration extends SpringHttpSessionConfiguration @Bean public JdbcOperationsSessionRepository sessionRepository() { + JdbcTemplate jdbcTemplate = createJdbcTemplate(this.dataSource); JdbcOperationsSessionRepository sessionRepository = new JdbcOperationsSessionRepository( - this.dataSource, this.transactionManager); + jdbcTemplate, this.transactionManager); if (StringUtils.hasText(this.tableName)) { sessionRepository.setTableName(this.tableName); } @@ -193,6 +195,12 @@ public class JdbcHttpSessionConfiguration extends SpringHttpSessionConfiguration this.cleanupCron); } + private static JdbcTemplate createJdbcTemplate(DataSource dataSource) { + JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); + jdbcTemplate.afterPropertiesSet(); + return jdbcTemplate; + } + private GenericConversionService createConversionServiceWithBeanClassLoader() { GenericConversionService conversionService = new GenericConversionService(); conversionService.addConverter(Object.class, byte[].class, diff --git a/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/JdbcOperationsSessionRepositoryTests.java b/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/JdbcOperationsSessionRepositoryTests.java index 6d5c9978..b8790766 100644 --- a/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/JdbcOperationsSessionRepositoryTests.java +++ b/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/JdbcOperationsSessionRepositoryTests.java @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.springframework.session.jdbc; import java.time.Duration; @@ -22,8 +23,6 @@ import java.util.Collections; import java.util.List; import java.util.Map; -import javax.sql.DataSource; - import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -43,7 +42,6 @@ import org.springframework.security.core.authority.AuthorityUtils; import org.springframework.session.FindByIndexNameSessionRepository; import org.springframework.session.MapSession; import org.springframework.session.Session; -import org.springframework.test.util.ReflectionTestUtils; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.TransactionDefinition; @@ -75,9 +73,6 @@ public class JdbcOperationsSessionRepositoryTests { @Rule public ExpectedException thrown = ExpectedException.none(); - @Mock - private DataSource dataSource; - @Mock private JdbcOperations jdbcOperations; @@ -92,23 +87,6 @@ public class JdbcOperationsSessionRepositoryTests { this.jdbcOperations, this.transactionManager); } - @Test - public void constructorDataSource() { - JdbcOperationsSessionRepository repository = new JdbcOperationsSessionRepository( - this.dataSource, this.transactionManager); - - assertThat(ReflectionTestUtils.getField(repository, "jdbcOperations")) - .isNotNull(); - } - - @Test - public void constructorNullDataSource() { - this.thrown.expect(IllegalArgumentException.class); - this.thrown.expectMessage("Property 'dataSource' is required"); - - new JdbcOperationsSessionRepository((DataSource) null, this.transactionManager); - } - @Test public void constructorNullJdbcOperations() { this.thrown.expect(IllegalArgumentException.class);