package io.trygvis.spring; import io.trygvis.async.AsyncService; import io.trygvis.queue.SqlEffectExecutor; import io.trygvis.queue.QueueService; import io.trygvis.queue.QueueSystem; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.jdbc.core.JdbcTemplate; import javax.sql.DataSource; import java.sql.SQLException; @Configuration public class DefaultConfig { @Bean public QueueSystem queueSystem(DataSource ds) throws SQLException { return QueueSystem.initialize(new SqlEffectExecutor(ds)); } @Bean public AsyncService asyncService(QueueSystem queueSystem, JdbcTemplate jdbcTemplate) { return new SpringJdbcAsyncService(queueSystem, jdbcTemplate); } @Bean public QueueService queueService(QueueSystem queueSystem, JdbcTemplate jdbcTemplate) { return new SpringQueueService(queueSystem, jdbcTemplate); } }