001    package org.kuali.common.deploy.spring;
002    
003    import org.kuali.common.deploy.DefaultDeployService;
004    import org.kuali.common.deploy.DeployContext;
005    import org.kuali.common.deploy.DeployExecutable;
006    import org.kuali.common.deploy.DeployService;
007    import org.kuali.common.deploy.appserver.ApplicationServer;
008    import org.kuali.common.deploy.appserver.spring.TomcatConfig;
009    import org.kuali.common.deploy.monitoring.Monitoring;
010    import org.kuali.common.deploy.monitoring.spring.AppDynamicsConfig;
011    import org.kuali.common.jdbc.reset.JdbcResetConfig;
012    import org.kuali.common.util.execute.Executable;
013    import org.kuali.common.util.spring.env.EnvironmentService;
014    import org.kuali.common.util.spring.service.SpringServiceConfig;
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({ SpringServiceConfig.class, AppDynamicsConfig.class, TomcatConfig.class, DefaultDeployContextConfig.class, DefaultSysAdminConfig.class })
022    public class DefaultDeployConfig implements DeploymentConfig {
023    
024            private static final String SKIP_KEY = "deploy.skip";
025    
026            @Autowired
027            JdbcResetConfig jdbcResetConfig;
028    
029            @Autowired
030            EnvironmentService env;
031    
032            @Autowired
033            SysAdminConfig sysAdminConfig;
034    
035            @Autowired
036            Monitoring monitoring;
037    
038            @Autowired
039            ApplicationServer appServer;
040    
041            @Autowired
042            DeployContext context;
043    
044            @Override
045            @Bean
046            public DeployExecutable deployExecutable() {
047                    boolean skip = env.getBoolean(SKIP_KEY, false);
048                    Executable databaseResetExec = jdbcResetConfig.jdbcResetExecutable();
049                    Executable sysAdmin = sysAdminConfig.sysAdminExecutable();
050                    DeployService service = new DefaultDeployService(context, sysAdmin, monitoring, appServer, databaseResetExec);
051                    return new DeployExecutable(service, skip);
052            }
053    
054    }