Adds spring-cloud-starter-bootstrap.
This allows users to opt-in to bootstrap via classpath rather than properties.
This commit is contained in:
@@ -22,6 +22,7 @@ import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.boot.autoconfigure.condition.NoneNestedConditions;
|
||||
import org.springframework.context.annotation.Conditional;
|
||||
@@ -41,6 +42,11 @@ public @interface ConditionalOnBootstrapDisabled {
|
||||
super(ConfigurationPhase.REGISTER_BEAN);
|
||||
}
|
||||
|
||||
@ConditionalOnClass(name = "org.springframework.cloud.bootstrap.marker.Marker")
|
||||
static class OnBootstrapMarkerClassPresent {
|
||||
|
||||
}
|
||||
|
||||
@ConditionalOnProperty(name = USE_LEGACY_PROCESSING_PROPERTY)
|
||||
static class OnUseLegacyProcessingEnabled {
|
||||
|
||||
|
||||
@@ -23,6 +23,7 @@ import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
import org.springframework.boot.autoconfigure.condition.AnyNestedCondition;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.context.annotation.Conditional;
|
||||
|
||||
@@ -41,6 +42,11 @@ public @interface ConditionalOnBootstrapEnabled {
|
||||
super(ConfigurationPhase.REGISTER_BEAN);
|
||||
}
|
||||
|
||||
@ConditionalOnClass(name = PropertyUtils.MARKER_CLASS)
|
||||
static class OnBootstrapMarkerClassPresent {
|
||||
|
||||
}
|
||||
|
||||
@ConditionalOnProperty(name = USE_LEGACY_PROCESSING_PROPERTY)
|
||||
static class OnUseLegacyProcessingEnabled {
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
package org.springframework.cloud.util;
|
||||
|
||||
import org.springframework.core.env.Environment;
|
||||
import org.springframework.util.ClassUtils;
|
||||
|
||||
public abstract class PropertyUtils {
|
||||
|
||||
@@ -30,12 +31,33 @@ public abstract class PropertyUtils {
|
||||
*/
|
||||
public static final String USE_LEGACY_PROCESSING_PROPERTY = "spring.config.use-legacy-processing";
|
||||
|
||||
/**
|
||||
* Property name for bootstrap marker class name.
|
||||
*/
|
||||
public static final String MARKER_CLASS = "org.springframework.cloud.bootstrap.marker.Marker";
|
||||
|
||||
/**
|
||||
* Boolean if bootstrap marker class exists.
|
||||
*/
|
||||
public static final boolean MARKER_CLASS_EXISTS = markerClassExists();
|
||||
|
||||
private static boolean markerClassExists() {
|
||||
try {
|
||||
ClassUtils.forName(MARKER_CLASS, null);
|
||||
return true;
|
||||
}
|
||||
catch (ClassNotFoundException e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private PropertyUtils() {
|
||||
|
||||
}
|
||||
|
||||
public static boolean bootstrapEnabled(Environment environment) {
|
||||
return environment.getProperty(BOOTSTRAP_ENABLED_PROPERTY, Boolean.class, false);
|
||||
return environment.getProperty(BOOTSTRAP_ENABLED_PROPERTY, Boolean.class, false)
|
||||
|| MARKER_CLASS_EXISTS;
|
||||
}
|
||||
|
||||
public static boolean useLegacyProcessing(Environment environment) {
|
||||
|
||||
Reference in New Issue
Block a user