From 5452a2d4189bb86680b443defc5a78919188c605 Mon Sep 17 00:00:00 2001 From: Rohan Sircar Date: Fri, 13 Dec 2019 13:19:57 +0530 Subject: [PATCH] moved db initializer config properties to seperate class --- .../org/ros/chatto/BeanConfigurations.java | 12 ------- .../chatto/config/DBInitializerConfig.java | 29 +++++++++++++++++ .../ros/chatto/service/ChatServiceImpl.java | 1 - .../chatto/service/DBInitializerService.java | 32 ++++++------------- 4 files changed, 39 insertions(+), 35 deletions(-) create mode 100644 chatto/src/main/java/org/ros/chatto/config/DBInitializerConfig.java diff --git a/chatto/src/main/java/org/ros/chatto/BeanConfigurations.java b/chatto/src/main/java/org/ros/chatto/BeanConfigurations.java index deed945..9ee546b 100644 --- a/chatto/src/main/java/org/ros/chatto/BeanConfigurations.java +++ b/chatto/src/main/java/org/ros/chatto/BeanConfigurations.java @@ -4,28 +4,16 @@ import java.security.SecureRandom; import org.modelmapper.ModelMapper; import org.ros.chatto.security.AuthenticationSuccessHandlerImpl; -import org.springframework.beans.factory.annotation.Value; import org.springframework.context.MessageSource; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.PropertySource; import org.springframework.context.support.ReloadableResourceBundleMessageSource; import org.springframework.security.core.token.KeyBasedPersistenceTokenService; import org.springframework.security.core.token.TokenService; import org.springframework.security.web.authentication.AuthenticationSuccessHandler; -@PropertySource(value = "classpath:queries.properties") @Configuration public class BeanConfigurations { - @Value("${spring.datasource.url}") - private String url; - - @Value("${spring.datasource.username}") - private String userName; - - @Value("${spring.datasource.password}") - private String password; - @Bean public AuthenticationSuccessHandler authenticationSuccessHandler() { return new AuthenticationSuccessHandlerImpl(); diff --git a/chatto/src/main/java/org/ros/chatto/config/DBInitializerConfig.java b/chatto/src/main/java/org/ros/chatto/config/DBInitializerConfig.java new file mode 100644 index 0000000..e456c96 --- /dev/null +++ b/chatto/src/main/java/org/ros/chatto/config/DBInitializerConfig.java @@ -0,0 +1,29 @@ +package org.ros.chatto.config; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.PropertySource; +import org.springframework.stereotype.Component; + +import lombok.Getter; + +@Component +@EnableConfigurationProperties +@PropertySource(value = "classpath:queries.properties") +@Getter +public class DBInitializerConfig { + + private final String dbName; + + private final String numTablesQuery; + + private final String resetSessionsQuery; + + public DBInitializerConfig(@Value("${database-name}") String dbName, @Value("${num-tables}") String numTablesQuery, + @Value("${reset-sessions}") String resetSessionsQuery) { + this.dbName = dbName; + this.numTablesQuery = numTablesQuery; + this.resetSessionsQuery = resetSessionsQuery; + } + +} \ No newline at end of file diff --git a/chatto/src/main/java/org/ros/chatto/service/ChatServiceImpl.java b/chatto/src/main/java/org/ros/chatto/service/ChatServiceImpl.java index 079bc16..78dfe29 100644 --- a/chatto/src/main/java/org/ros/chatto/service/ChatServiceImpl.java +++ b/chatto/src/main/java/org/ros/chatto/service/ChatServiceImpl.java @@ -14,7 +14,6 @@ import org.ros.chatto.repository.ChatMessageRepository; import org.ros.chatto.repository.MessageCipherRepository; import org.ros.chatto.repository.UserRepository; import org.springframework.data.domain.PageRequest; -import org.springframework.data.domain.Sort; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/chatto/src/main/java/org/ros/chatto/service/DBInitializerService.java b/chatto/src/main/java/org/ros/chatto/service/DBInitializerService.java index 0c4e9b2..d4b5011 100644 --- a/chatto/src/main/java/org/ros/chatto/service/DBInitializerService.java +++ b/chatto/src/main/java/org/ros/chatto/service/DBInitializerService.java @@ -12,43 +12,31 @@ import javax.persistence.PersistenceContext; import javax.transaction.Transactional; import org.hibernate.Session; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Value; +import org.ros.chatto.config.DBInitializerConfig; import org.springframework.boot.context.event.ApplicationReadyEvent; -import org.springframework.context.annotation.PropertySource; import org.springframework.context.event.EventListener; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.support.EncodedResource; import org.springframework.jdbc.datasource.init.ScriptUtils; import org.springframework.stereotype.Service; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @Service @Slf4j -@PropertySource(value = "classpath:queries.properties") - +@RequiredArgsConstructor public class DBInitializerService { - @Value("${database-name}") - private String dbName; - - @Value("${num-tables}") - private String numTablesQuery; - - @Value("${reset-sessions}") - private String resetSessionsQuery; - - private final Logger logger = LoggerFactory.getLogger(DBInitializerService.class); + private final DBInitializerConfig dbInitializerConfig; @PersistenceContext private EntityManager entityManager; public int getNumTables(final Connection connection) throws SQLException { - final PreparedStatement preparedStatement = connection.prepareStatement(numTablesQuery); - preparedStatement.setString(1, dbName); + final PreparedStatement preparedStatement = connection.prepareStatement(dbInitializerConfig.getNumTablesQuery()); + preparedStatement.setString(1, dbInitializerConfig.getDbName()); final ResultSet resultSet = preparedStatement.executeQuery(); resultSet.next(); final int numTables = resultSet.getInt("num_tables"); @@ -58,13 +46,13 @@ public class DBInitializerService { @EventListener(ApplicationReadyEvent.class) @Transactional public void doSomethingAfterStartup() throws SQLException, IOException { - logger.info("Application Started - running initializer service"); + log.info("Application Started - running initializer service"); final Session session = entityManager.unwrap(Session.class); session.doWork(connection -> { if (getNumTables(connection) == 0) { - logger.info("Database is empty. Populating tables and roles"); + log.info("Database is empty. Populating tables and roles"); try { populateDB(connection); } catch (final IOException e) { @@ -74,7 +62,7 @@ public class DBInitializerService { }); session.doWork(connection -> { - logger.info("Resetting all user sessions"); + log.info("Resetting all user sessions"); resetAllUserSessions(connection); }); } @@ -88,7 +76,7 @@ public class DBInitializerService { } private void resetAllUserSessions(final Connection connection) throws SQLException { - final PreparedStatement preparedStatement = connection.prepareStatement(resetSessionsQuery); + final PreparedStatement preparedStatement = connection.prepareStatement(dbInitializerConfig.getResetSessionsQuery()); preparedStatement.executeUpdate(); }