Updates to add new ConfigData optional parameter.
This commit is contained in:
@@ -125,10 +125,16 @@ public abstract class AbstractConfigDataLoader<L extends AbstractConfigDataLocat
|
||||
catch (Exception e) {
|
||||
error = e;
|
||||
}
|
||||
if (properties.isFailFast()) {
|
||||
throw new IllegalStateException(
|
||||
"Could not locate PropertySource and the fail fast property is set, failing"
|
||||
+ (errorBody == null ? "" : ": " + errorBody),
|
||||
if (properties.isFailFast() || !location.isOptional()) {
|
||||
String reason;
|
||||
if (properties.isFailFast()) {
|
||||
reason = "the fail fast property is set";
|
||||
}
|
||||
else {
|
||||
reason = "the location is not optional";
|
||||
}
|
||||
throw new IllegalStateException("Could not locate PropertySource and "
|
||||
+ reason + ", failing" + (errorBody == null ? "" : ": " + errorBody),
|
||||
error);
|
||||
}
|
||||
logger.warn("Could not locate PropertySource: "
|
||||
|
||||
@@ -29,12 +29,15 @@ public abstract class AbstractConfigDataLocation extends ConfigDataLocation {
|
||||
|
||||
private final ConfigClientProperties properties;
|
||||
|
||||
private final boolean optional;
|
||||
|
||||
private final Profiles profiles;
|
||||
|
||||
public AbstractConfigDataLocation(RestTemplate restTemplate,
|
||||
ConfigClientProperties properties, Profiles profiles) {
|
||||
ConfigClientProperties properties, boolean optional, Profiles profiles) {
|
||||
this.restTemplate = restTemplate;
|
||||
this.properties = properties;
|
||||
this.optional = optional;
|
||||
this.profiles = profiles;
|
||||
}
|
||||
|
||||
@@ -46,6 +49,10 @@ public abstract class AbstractConfigDataLocation extends ConfigDataLocation {
|
||||
return this.properties;
|
||||
}
|
||||
|
||||
public boolean isOptional() {
|
||||
return this.optional;
|
||||
}
|
||||
|
||||
public Profiles getProfiles() {
|
||||
return this.profiles;
|
||||
}
|
||||
@@ -61,18 +68,21 @@ public abstract class AbstractConfigDataLocation extends ConfigDataLocation {
|
||||
AbstractConfigDataLocation that = (AbstractConfigDataLocation) o;
|
||||
return Objects.equals(this.restTemplate, that.restTemplate)
|
||||
&& Objects.equals(this.properties, that.properties)
|
||||
&& Objects.equals(this.optional, that.optional)
|
||||
&& Objects.equals(this.profiles, that.profiles);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(this.restTemplate, this.properties, this.profiles);
|
||||
return Objects.hash(this.restTemplate, this.properties, this.optional,
|
||||
this.profiles);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return new ToStringCreator(this).append("uris", properties.getUri())
|
||||
.append("profiles", profiles.getAccepted()).toString();
|
||||
.append("optional", optional).append("profiles", profiles.getAccepted())
|
||||
.toString();
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -103,12 +103,13 @@ public abstract class AbstractConfigDataLocationResolver<L extends AbstractConfi
|
||||
return PREFIX;
|
||||
}
|
||||
|
||||
public List<L> resolve(ConfigDataLocationResolverContext context, String location) {
|
||||
public List<L> resolve(ConfigDataLocationResolverContext context, String location,
|
||||
boolean optional) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
public List<L> resolveProfileSpecific(ConfigDataLocationResolverContext context,
|
||||
String location, Profiles profiles) {
|
||||
String location, boolean optional, Profiles profiles) {
|
||||
|
||||
ConfigClientProperties properties = loadProperties(context.getBinder());
|
||||
|
||||
@@ -123,12 +124,13 @@ public abstract class AbstractConfigDataLocationResolver<L extends AbstractConfi
|
||||
RestTemplate restTemplate = createRestTemplate(properties);
|
||||
|
||||
List<L> locations = new ArrayList<>();
|
||||
locations.add(createConfigDataLocation(profiles, properties, restTemplate));
|
||||
locations.add(
|
||||
createConfigDataLocation(optional, profiles, properties, restTemplate));
|
||||
|
||||
return locations;
|
||||
}
|
||||
|
||||
protected abstract L createConfigDataLocation(Profiles profiles,
|
||||
protected abstract L createConfigDataLocation(boolean optional, Profiles profiles,
|
||||
ConfigClientProperties properties, RestTemplate restTemplate);
|
||||
|
||||
}
|
||||
|
||||
@@ -22,8 +22,8 @@ import org.springframework.web.client.RestTemplate;
|
||||
public class ConfigServerConfigDataLocation extends AbstractConfigDataLocation {
|
||||
|
||||
public ConfigServerConfigDataLocation(RestTemplate restTemplate,
|
||||
ConfigClientProperties properties, Profiles profiles) {
|
||||
super(restTemplate, properties, profiles);
|
||||
ConfigClientProperties properties, boolean optional, Profiles profiles) {
|
||||
super(restTemplate, properties, optional, profiles);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -31,9 +31,11 @@ public class ConfigServerConfigDataLocationResolver
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ConfigServerConfigDataLocation createConfigDataLocation(Profiles profiles,
|
||||
ConfigClientProperties properties, RestTemplate restTemplate) {
|
||||
return new ConfigServerConfigDataLocation(restTemplate, properties, profiles);
|
||||
protected ConfigServerConfigDataLocation createConfigDataLocation(boolean optional,
|
||||
Profiles profiles, ConfigClientProperties properties,
|
||||
RestTemplate restTemplate) {
|
||||
return new ConfigServerConfigDataLocation(restTemplate, properties, optional,
|
||||
profiles);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -22,8 +22,8 @@ import org.springframework.web.client.RestTemplate;
|
||||
public class TestConfigServerConfigDataLocation extends AbstractConfigDataLocation {
|
||||
|
||||
public TestConfigServerConfigDataLocation(RestTemplate restTemplate,
|
||||
ConfigClientProperties properties, Profiles profiles) {
|
||||
super(restTemplate, properties, profiles);
|
||||
ConfigClientProperties properties, boolean optional, Profiles profiles) {
|
||||
super(restTemplate, properties, optional, profiles);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -53,9 +53,10 @@ public class TestConfigServerConfigDataLocationResolver
|
||||
|
||||
@Override
|
||||
protected TestConfigServerConfigDataLocation createConfigDataLocation(
|
||||
Profiles profiles, ConfigClientProperties properties,
|
||||
boolean optional, Profiles profiles, ConfigClientProperties properties,
|
||||
RestTemplate restTemplate) {
|
||||
return new TestConfigServerConfigDataLocation(restTemplate, properties, profiles);
|
||||
return new TestConfigServerConfigDataLocation(restTemplate, properties, optional,
|
||||
profiles);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user