package com.sequenceiq.cloudbreak.init; import javax.inject.Inject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.ApplicationListener; import org.springframework.context.event.ContextRefreshedEvent; import org.springframework.stereotype.Component; import com.google.common.base.Strings; import com.sequenceiq.cloudbreak.domain.Subscription; import com.sequenceiq.cloudbreak.service.subscription.SubscriptionService; @Component public class DefaultSubscriptionService implements ApplicationListener<ContextRefreshedEvent> { private static final Logger LOGGER = LoggerFactory.getLogger(DefaultSubscriptionService.class); private static final String DEFAULT_CLIENT_ID = "default"; @Value("${cb.default.subscription.address:}") private String defaultSubscriptionAddress; @Inject private SubscriptionService subscriptionService; public void onApplicationEvent(ContextRefreshedEvent event) { if (!Strings.isNullOrEmpty(defaultSubscriptionAddress)) { LOGGER.info("Configuring default subscription {}", defaultSubscriptionAddress); Subscription subscription = new Subscription(); subscription.setClientId(DEFAULT_CLIENT_ID); subscription.setEndpoint(defaultSubscriptionAddress); subscriptionService.subscribe(subscription); } } }