001 package org.kuali.common.jdbc.reset;
002
003 import java.util.ArrayList;
004 import java.util.List;
005
006 import org.kuali.common.jdbc.model.context.JdbcContext;
007 import org.kuali.common.jdbc.service.JdbcExecutable;
008 import org.kuali.common.jdbc.service.JdbcService;
009 import org.kuali.common.jdbc.service.spring.JdbcServiceConfig;
010 import org.kuali.common.jdbc.show.spring.JdbcShowConfig;
011 import org.kuali.common.jdbc.sql.spring.JdbcContextsConfig;
012 import org.kuali.common.util.execute.Executable;
013 import org.kuali.common.util.execute.impl.ExecutablesExecutable;
014 import org.kuali.common.util.spring.env.EnvironmentService;
015 import org.springframework.beans.factory.annotation.Autowired;
016 import org.springframework.context.annotation.Bean;
017 import org.springframework.context.annotation.Configuration;
018 import org.springframework.context.annotation.Import;
019
020 @Configuration
021 @Import({ JdbcServiceConfig.class, JdbcShowConfig.class })
022 public class DefaultJdbcResetConfig implements JdbcResetConfig {
023
024 private static final String TIMED_KEY = "jdbc.reset.timed";
025 private static final String SKIP_KEY = "jdbc.reset.skip";
026
027 @Autowired
028 JdbcService service;
029
030 @Autowired
031 JdbcShowConfig show;
032
033 @Autowired
034 EnvironmentService env;
035
036 @Autowired
037 JdbcContextsConfig contextsConfig;
038
039 @Override
040 @Bean
041 public Executable jdbcResetExecutable() {
042 List<JdbcContext> contexts = contextsConfig.jdbcContexts();
043 boolean skip = env.getBoolean(SKIP_KEY, false);
044 boolean timed = env.getBoolean(TIMED_KEY, true);
045 List<Executable> execs = new ArrayList<Executable>();
046 execs.add(show.showDbaConfigExecutable());
047 for (JdbcContext context : contexts) {
048 execs.add(new JdbcExecutable(service, context));
049 }
050 return new ExecutablesExecutable(execs, skip, timed);
051 }
052
053 }