@ -22,6 +22,7 @@ import java.util.Map;
@@ -22,6 +22,7 @@ import java.util.Map;
import javax.jms.ConnectionFactory ;
import javax.sql.DataSource ;
import com.datastax.driver.core.Cluster ;
import org.apache.solr.client.solrj.SolrServer ;
import org.elasticsearch.client.Client ;
@ -29,6 +30,7 @@ import org.springframework.amqp.rabbit.core.RabbitTemplate;
@@ -29,6 +30,7 @@ import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.InitializingBean ;
import org.springframework.beans.factory.annotation.Autowired ;
import org.springframework.boot.actuate.health.ApplicationHealthIndicator ;
import org.springframework.boot.actuate.health.CassandraHealthIndicator ;
import org.springframework.boot.actuate.health.CompositeHealthIndicator ;
import org.springframework.boot.actuate.health.DataSourceHealthIndicator ;
import org.springframework.boot.actuate.health.DiskSpaceHealthIndicator ;
@ -48,9 +50,11 @@ import org.springframework.boot.autoconfigure.AutoConfigureAfter;
@@ -48,9 +50,11 @@ import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.AutoConfigureBefore ;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration ;
import org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration ;
import org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration ;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean ;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass ;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean ;
import org.springframework.boot.autoconfigure.data.cassandra.CassandraDataAutoConfiguration ;
import org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchAutoConfiguration ;
import org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration ;
import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration ;
@ -66,6 +70,7 @@ import org.springframework.boot.context.properties.EnableConfigurationProperties
@@ -66,6 +70,7 @@ import org.springframework.boot.context.properties.EnableConfigurationProperties
import org.springframework.context.annotation.Bean ;
import org.springframework.context.annotation.Configuration ;
import org.springframework.core.ResolvableType ;
import org.springframework.data.cassandra.core.CassandraOperations ;
import org.springframework.data.mongodb.core.MongoTemplate ;
import org.springframework.data.redis.connection.RedisConnectionFactory ;
import org.springframework.jdbc.core.JdbcTemplate ;
@ -78,15 +83,17 @@ import org.springframework.mail.javamail.JavaMailSenderImpl;
@@ -78,15 +83,17 @@ import org.springframework.mail.javamail.JavaMailSenderImpl;
* @author Andy Wilkinson
* @author Stephane Nicoll
* @author Phillip Webb
* @author Tommy Ludwig
* @since 1 . 1 . 0
* /
@Configuration
@AutoConfigureBefore ( { EndpointAutoConfiguration . class } )
@AutoConfigureAfter ( { DataSourceAutoConfiguration . class , MongoAutoConfiguration . class ,
MongoDataAutoConfiguration . class , RedisAutoConfiguration . class ,
RabbitAutoConfiguration . class , SolrAutoConfiguration . class ,
MailSenderAutoConfiguration . class , JmsAutoConfiguration . class ,
ElasticsearchAutoConfiguration . class } )
@AutoConfigureAfter ( { CassandraAutoConfiguration . class ,
CassandraDataAutoConfiguration . class , DataSourceAutoConfiguration . class ,
MongoAutoConfiguration . class , MongoDataAutoConfiguration . class ,
RedisAutoConfiguration . class , RabbitAutoConfiguration . class ,
SolrAutoConfiguration . class , MailSenderAutoConfiguration . class ,
JmsAutoConfiguration . class , ElasticsearchAutoConfiguration . class } )
@EnableConfigurationProperties ( { HealthIndicatorAutoConfigurationProperties . class } )
public class HealthIndicatorAutoConfiguration {
@ -151,6 +158,24 @@ public class HealthIndicatorAutoConfiguration {
@@ -151,6 +158,24 @@ public class HealthIndicatorAutoConfiguration {
}
@Configuration
@ConditionalOnClass ( { CassandraOperations . class , Cluster . class } )
@ConditionalOnBean ( CassandraOperations . class )
@ConditionalOnEnabledHealthIndicator ( "cassandra" )
public static class CassandraHealthIndicatorConfiguration extends
CompositeHealthIndicatorConfiguration < CassandraHealthIndicator , CassandraOperations > {
@Autowired
private Map < String , CassandraOperations > cassandraOperations ;
@Bean
@ConditionalOnMissingBean ( name = "cassandraHealthIndicator" )
public HealthIndicator cassandraHealthIndicator ( ) {
return createHealthIndicator ( this . cassandraOperations ) ;
}
}
@Configuration
@ConditionalOnClass ( JdbcTemplate . class )
@ConditionalOnBean ( DataSource . class )