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

org.zodiac.autoconfigure.loadbalancer.ribbon.condition.ConditionalOnRibbonEnabled Maven / Gradle / Ivy

package org.zodiac.autoconfigure.loadbalancer.ribbon.condition;

import org.springframework.boot.autoconfigure.condition.AllNestedConditions;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.context.annotation.Conditional;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.TYPE, ElementType.METHOD })
@Conditional(ConditionalOnRibbonEnabled.RibbonClassesConditions.class)
public @interface ConditionalOnRibbonEnabled {

    class RibbonClassesConditions extends AllNestedConditions {

        RibbonClassesConditions() {
            super(ConfigurationPhase.PARSE_CONFIGURATION);
        }

        @ConditionalOnClass({com.netflix.ribbon.Ribbon.class})
        static class RibbonPresent {
            RibbonPresent() {
            }
        }

        @ConditionalOnClass({org.springframework.web.client.AsyncRestTemplate.class})
        static class AsyncRestTemplatePresent {
            AsyncRestTemplatePresent() {
            }
        }

        @ConditionalOnClass({org.springframework.web.client.RestTemplate.class})
        static class RestTemplatePresent {
            RestTemplatePresent() {
            }
        }

        @ConditionalOnClass({com.netflix.client.IClient.class})
        static class IClientPresent {
            IClientPresent() {
            }
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy