diff --git a/src/main/java/org/ros/chatto/config/CustomCacheEventLogger.java b/src/main/java/org/ros/chatto/config/CustomCacheEventLogger.java new file mode 100644 index 0000000..2062c7d --- /dev/null +++ b/src/main/java/org/ros/chatto/config/CustomCacheEventLogger.java @@ -0,0 +1,16 @@ +package org.ros.chatto.config; + +import org.ehcache.event.CacheEvent; +import org.ehcache.event.CacheEventListener; + +import lombok.extern.slf4j.Slf4j; + +@Slf4j +public class CustomCacheEventLogger implements CacheEventListener { + + @Override + public void onEvent(CacheEvent cacheEvent) { + log.debug("custom Caching event {} key = {} old {} new {} ", cacheEvent.getType(), cacheEvent.getKey(), + cacheEvent.getOldValue(), cacheEvent.getNewValue()); + } +} diff --git a/src/main/java/org/ros/chatto/config/DBInitializerConfig.java b/src/main/java/org/ros/chatto/config/DBInitializerConfig.java new file mode 100644 index 0000000..594684f --- /dev/null +++ b/src/main/java/org/ros/chatto/config/DBInitializerConfig.java @@ -0,0 +1,33 @@ +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; + + private final String clearTokensQuery; + + public DBInitializerConfig(@Value("${chatto.datasource.database-name}") String dbName, + @Value("${num-tables}") String numTablesQuery, @Value("${reset-sessions}") String resetSessionsQuery, + @Value("${clear-tokens}") String clearTokensQuery) { + this.dbName = dbName; + this.numTablesQuery = numTablesQuery; + this.resetSessionsQuery = resetSessionsQuery; + this.clearTokensQuery = clearTokensQuery; + } + +} \ No newline at end of file diff --git a/src/main/java/org/ros/chatto/config/DataSourceConfig.java b/src/main/java/org/ros/chatto/config/DataSourceConfig.java new file mode 100644 index 0000000..b0c86b9 --- /dev/null +++ b/src/main/java/org/ros/chatto/config/DataSourceConfig.java @@ -0,0 +1,54 @@ +package org.ros.chatto.config; + +import javax.sql.DataSource; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.jdbc.DataSourceBuilder; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.stereotype.Component; + +import lombok.Getter; +import lombok.extern.slf4j.Slf4j; + +@Configuration +@Component + +// @ConfigurationProperties(prefix = "chatto.datasource") +@Getter +// @Setter +@Slf4j +public class DataSourceConfig { + + // jdbc:mysql://localhost:3306/chatto_db?useSSL=false + private final String DATASOURCE_URL = "jdbc:mysql://%s:%d/%s?%s"; + + private final String username; + private final String password; + private final String databaseName; + private final String url; + private final int port; + private final String params; + + public DataSourceConfig(@Value("${chatto.datasource.username}") String username, + @Value("${chatto.datasource.password}") String password, + @Value("${chatto.datasource.database-name}") String databaseName, + @Value("${chatto.datasource.url}") String url, @Value("${chatto.datasource.port}") int port, + @Value("${chatto.datasource.params}") String params) { + this.username = username; + this.password = password; + this.databaseName = databaseName; + this.url = url; + this.port = port; + this.params = params; + } + + @Bean + public DataSource getDataSource() { + final DataSourceBuilder dataSourceBuilder = DataSourceBuilder.create(); + dataSourceBuilder.url(String.format(DATASOURCE_URL, url, port, databaseName, params)); + dataSourceBuilder.username(username); + dataSourceBuilder.password(password); + return dataSourceBuilder.build(); + } +} \ No newline at end of file diff --git a/src/main/java/org/ros/chatto/config/EhCacheConfig.java b/src/main/java/org/ros/chatto/config/EhCacheConfig.java new file mode 100644 index 0000000..6e53976 --- /dev/null +++ b/src/main/java/org/ros/chatto/config/EhCacheConfig.java @@ -0,0 +1,10 @@ +package org.ros.chatto.config; + + +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.context.annotation.Configuration; + +@EnableCaching +@Configuration +public class EhCacheConfig { +} \ No newline at end of file