From 4bd7959ae54ff43e3cb57fa75fb4cd2a30baa441 Mon Sep 17 00:00:00 2001 From: Bryan Keller Date: Tue, 17 Sep 2024 08:42:35 -0700 Subject: [PATCH] cleanup --- .../metadata/mysql/MySqlServiceUtil.java | 14 ++++++++++++ .../metadata/mysql/MySqlTagService.java | 15 ++++++------- .../mysql/MySqlUserMetadataConfig.java | 22 ++----------------- 3 files changed, 23 insertions(+), 28 deletions(-) diff --git a/metacat-metadata-mysql/src/main/java/com/netflix/metacat/metadata/mysql/MySqlServiceUtil.java b/metacat-metadata-mysql/src/main/java/com/netflix/metacat/metadata/mysql/MySqlServiceUtil.java index d4c460f7b..83408b78c 100644 --- a/metacat-metadata-mysql/src/main/java/com/netflix/metacat/metadata/mysql/MySqlServiceUtil.java +++ b/metacat-metadata-mysql/src/main/java/com/netflix/metacat/metadata/mysql/MySqlServiceUtil.java @@ -19,6 +19,7 @@ import org.springframework.dao.EmptyResultDataAccessException; import org.springframework.jdbc.core.JdbcTemplate; +import javax.sql.DataSource; import java.io.InputStream; import java.net.URL; import java.nio.file.FileSystems; @@ -81,6 +82,19 @@ public static void loadMySqlDataSource(final DataSourceManager dataSourceManager } dataSourceManager.load(UserMetadataService.NAME_DATASOURCE, connectionProperties); } + + /** + * Create a JDBC template with a query timeout. + * + * @param dataSource data source + * @param timeoutSec query timeout, in sec + * @return the JDBC template + */ + public static JdbcTemplate createJdbcTemplate(DataSource dataSource, int timeoutSec) { + final JdbcTemplate result = new JdbcTemplate(dataSource); + result.setQueryTimeout(timeoutSec); + return result; + } } diff --git a/metacat-metadata-mysql/src/main/java/com/netflix/metacat/metadata/mysql/MySqlTagService.java b/metacat-metadata-mysql/src/main/java/com/netflix/metacat/metadata/mysql/MySqlTagService.java index cce40fac2..3b6acd445 100644 --- a/metacat-metadata-mysql/src/main/java/com/netflix/metacat/metadata/mysql/MySqlTagService.java +++ b/metacat-metadata-mysql/src/main/java/com/netflix/metacat/metadata/mysql/MySqlTagService.java @@ -105,24 +105,23 @@ public class MySqlTagService implements TagService { /** * Constructor. * - * @param config config - * @param jdbcTemplate JDBC template - * @param jdbcTemplateLongTimeout JDBC template for longer running queries - * @param lookupService lookup service - * @param metacatJson json util - * @param userMetadataService user metadata service + * @param config config + * @param jdbcTemplate JDBC template + * @param lookupService lookup service + * @param metacatJson json util + * @param userMetadataService user metadata service */ public MySqlTagService( final Config config, final JdbcTemplate jdbcTemplate, - final JdbcTemplate jdbcTemplateLongTimeout, final LookupService lookupService, final MetacatJson metacatJson, final UserMetadataService userMetadataService ) { this.config = Preconditions.checkNotNull(config, "config is required"); this.jdbcTemplate = jdbcTemplate; - this.jdbcTemplateLongTimeout = jdbcTemplateLongTimeout; + this.jdbcTemplateLongTimeout = MySqlServiceUtil.createJdbcTemplate( + jdbcTemplate.getDataSource(), config.getLongMetadataQueryTimeout()); this.lookupService = Preconditions.checkNotNull(lookupService, "lookupService is required"); this.metacatJson = Preconditions.checkNotNull(metacatJson, "metacatJson is required"); this.userMetadataService = Preconditions.checkNotNull(userMetadataService, "userMetadataService is required"); diff --git a/metacat-metadata-mysql/src/main/java/com/netflix/metacat/metadata/mysql/MySqlUserMetadataConfig.java b/metacat-metadata-mysql/src/main/java/com/netflix/metacat/metadata/mysql/MySqlUserMetadataConfig.java index d8c3ecb3d..c1d1c3459 100644 --- a/metacat-metadata-mysql/src/main/java/com/netflix/metacat/metadata/mysql/MySqlUserMetadataConfig.java +++ b/metacat-metadata-mysql/src/main/java/com/netflix/metacat/metadata/mysql/MySqlUserMetadataConfig.java @@ -163,28 +163,10 @@ public DataSourceTransactionManager metadataTxManager( * @return metadata JDBC template */ @Bean - @Primary public JdbcTemplate metadataJdbcTemplate( @Qualifier("metadataDataSource") final DataSource mySqlDataSource, final Config config) { - final JdbcTemplate result = new JdbcTemplate(mySqlDataSource); - result.setQueryTimeout(config.getMetadataQueryTimeout()); - return result; - } - - /** - * mySql metadata JDBC template for longer running queries. - * - * @param mySqlDataSource metadata data source - * @param config System config to use - * @return metadata JDBC template - */ - @Bean - public JdbcTemplate metadataJdbcTemplateLongTimeout( - @Qualifier("metadataDataSource") final DataSource mySqlDataSource, - final Config config) { - final JdbcTemplate result = new JdbcTemplate(mySqlDataSource); - result.setQueryTimeout(config.getLongMetadataQueryTimeout()); - return result; + return MySqlServiceUtil.createJdbcTemplate( + mySqlDataSource, config.getMetadataQueryTimeout()); } }