All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.zodiac.autoconfigure.bootstrap.discovery.simple.reactive.SimpleReactiveAppDiscoveryClientAutoConfiguration Maven / Gradle / Ivy

package org.zodiac.autoconfigure.bootstrap.discovery.simple.reactive;

import org.springframework.boot.SpringBootConfiguration;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.boot.web.context.WebServerInitializedEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.context.annotation.Bean;
import org.springframework.core.annotation.Order;
import org.zodiac.autoconfigure.bootstrap.condition.ConditionalOnAppDiscoveryEnabled;
import org.zodiac.autoconfigure.bootstrap.condition.ConditionalOnReactiveAppDiscoveryEnabled;
import org.zodiac.autoconfigure.bootstrap.condition.ConditionalOnSpringCloudBootstrapDisabled;
import org.zodiac.autoconfigure.bootstrap.discovery.composite.reactive.ReactiveCompositeAppDiscoveryClientAutoConfiguration;
import org.zodiac.autoconfigure.bootstrap.discovery.health.AppDiscoveryClientHealthIndicatorProperties;
import org.zodiac.autoconfigure.bootstrap.discovery.reactive.AbstractReactiveAppDiscoveryClientConfiguration;
import org.zodiac.commons.util.Networks;
import org.zodiac.core.bootstrap.discovery.ReactiveAppDiscoveryClient;

@SpringBootConfiguration
@ConditionalOnAppDiscoveryEnabled
@ConditionalOnReactiveAppDiscoveryEnabled
@ConditionalOnSpringCloudBootstrapDisabled
@EnableConfigurationProperties(value = {AppDiscoveryClientHealthIndicatorProperties.class})
@AutoConfigureAfter(value = {ReactiveCompositeAppDiscoveryClientAutoConfiguration.class})
public class SimpleReactiveAppDiscoveryClientAutoConfiguration extends AbstractReactiveAppDiscoveryClientConfiguration
    implements ApplicationListener {

    @Bean
    protected SimpleReactiveAppDiscoveryProperties simpleReactiveDiscoveryProperties() {
        return super.simpleReactiveDiscoveryProperties();
    }

    @Bean
    @Order
    protected ReactiveAppDiscoveryClient simpleReactiveAppDiscoveryClient() {
        ReactiveAppDiscoveryClient client = super.simpleReactiveDiscoveryClient();
        return client;
    }

    @Override
    public void onApplicationEvent(WebServerInitializedEvent webServerInitializedEvent) {
        setPort(webServerInitializedEvent.getWebServer().getPort());
        if (getPort() > 0) {
            getSimple().getLocal().setAppHost(Networks.LOCAL_HOSTNAME);
            getSimple().getLocal().setAppPort(getPort());
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy