Commit e92d248f authored by Stephane Nicoll's avatar Stephane Nicoll

Merge pull request #11135 from GreyTeardrop:micrometer-config-adapters-delegation

* pr/11135:
  Polish "Fix PropertiesConfigAdapter delegation logic"
  Fix PropertiesConfigAdapter delegation logic
parents b3c5a050 a12bab45
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
package org.springframework.boot.actuate.autoconfigure.metrics.export; package org.springframework.boot.actuate.autoconfigure.metrics.export;
import java.util.function.Function; import java.util.function.Function;
import java.util.function.Supplier;
import org.springframework.util.Assert; import org.springframework.util.Assert;
...@@ -24,38 +25,33 @@ import org.springframework.util.Assert; ...@@ -24,38 +25,33 @@ import org.springframework.util.Assert;
* Base class for properties to config adapters. * Base class for properties to config adapters.
* *
* @param <T> The properties type * @param <T> The properties type
* @param <C> The config type
* @author Phillip Webb * @author Phillip Webb
* @author Nikolay Rybak
* @since 2.0.0 * @since 2.0.0
*/ */
public class PropertiesConfigAdapter<T, C> { public class PropertiesConfigAdapter<T> {
private T properties; private T properties;
private C defaults;
/** /**
* Create a new {@link PropertiesConfigAdapter} instance. * Create a new {@link PropertiesConfigAdapter} instance.
* @param properties the source properties * @param properties the source properties
* @param defaults a config implementation providing default values
*/ */
public PropertiesConfigAdapter(T properties, C defaults) { public PropertiesConfigAdapter(T properties) {
Assert.notNull(properties, "Properties must not be null"); Assert.notNull(properties, "Properties must not be null");
Assert.notNull(defaults, "Defaults must not be null");
this.properties = properties; this.properties = properties;
this.defaults = defaults;
} }
/** /**
* Get the value from the properties or use a fallback from the {@code defaults}. * Get the value from the properties or use a fallback from the {@code defaults}.
* @param getter the getter for the properties * @param getter the getter for the properties
* @param fallback the fallback method from the {@code defaults} * @param fallback the fallback method, usually super interface method reference
* @param <V> the value type * @param <V> the value type
* @return the property or fallback value * @return the property or fallback value
*/ */
protected final <V> V get(Function<T, V> getter, Function<C, V> fallback) { protected final <V> V get(Function<T, V> getter, Supplier<V> fallback) {
V value = getter.apply(this.properties); V value = getter.apply(this.properties);
return (value != null ? value : fallback.apply(this.defaults)); return (value != null ? value : fallback.get());
} }
} }
...@@ -24,16 +24,15 @@ import io.micrometer.core.instrument.step.StepRegistryConfig; ...@@ -24,16 +24,15 @@ import io.micrometer.core.instrument.step.StepRegistryConfig;
* Base class for {@link StepRegistryProperties} to {@link StepRegistryConfig} adapters. * Base class for {@link StepRegistryProperties} to {@link StepRegistryConfig} adapters.
* *
* @param <T> The properties type * @param <T> The properties type
* @param <C> The config type
* @author Jon Schneider * @author Jon Schneider
* @author Phillip Webb * @author Phillip Webb
* @since 2.0.0 * @since 2.0.0
*/ */
public abstract class StepRegistryPropertiesConfigAdapter<T extends StepRegistryProperties, C extends StepRegistryConfig> public abstract class StepRegistryPropertiesConfigAdapter<T extends StepRegistryProperties>
extends PropertiesConfigAdapter<T, C> implements StepRegistryConfig { extends PropertiesConfigAdapter<T> implements StepRegistryConfig {
public StepRegistryPropertiesConfigAdapter(T properties, C defaults) { public StepRegistryPropertiesConfigAdapter(T properties) {
super(properties, defaults); super(properties);
} }
@Override @Override
...@@ -48,32 +47,32 @@ public abstract class StepRegistryPropertiesConfigAdapter<T extends StepRegistry ...@@ -48,32 +47,32 @@ public abstract class StepRegistryPropertiesConfigAdapter<T extends StepRegistry
@Override @Override
public Duration step() { public Duration step() {
return get(T::getStep, C::step); return get(T::getStep, StepRegistryConfig.super::step);
} }
@Override @Override
public boolean enabled() { public boolean enabled() {
return get(T::getEnabled, C::enabled); return get(T::getEnabled, StepRegistryConfig.super::enabled);
} }
@Override @Override
public Duration connectTimeout() { public Duration connectTimeout() {
return get(T::getConnectTimeout, C::connectTimeout); return get(T::getConnectTimeout, StepRegistryConfig.super::connectTimeout);
} }
@Override @Override
public Duration readTimeout() { public Duration readTimeout() {
return get(T::getReadTimeout, C::readTimeout); return get(T::getReadTimeout, StepRegistryConfig.super::readTimeout);
} }
@Override @Override
public int numThreads() { public int numThreads() {
return get(T::getNumThreads, C::numThreads); return get(T::getNumThreads, StepRegistryConfig.super::numThreads);
} }
@Override @Override
public int batchSize() { public int batchSize() {
return get(T::getBatchSize, C::batchSize); return get(T::getBatchSize, StepRegistryConfig.super::batchSize);
} }
} }
...@@ -29,12 +29,10 @@ import org.springframework.boot.actuate.autoconfigure.metrics.export.PropertiesC ...@@ -29,12 +29,10 @@ import org.springframework.boot.actuate.autoconfigure.metrics.export.PropertiesC
* @author Phillip Webb * @author Phillip Webb
*/ */
class AtlasPropertiesConfigAdapter extends class AtlasPropertiesConfigAdapter extends
PropertiesConfigAdapter<AtlasProperties, AtlasConfig> implements AtlasConfig { PropertiesConfigAdapter<AtlasProperties> implements AtlasConfig {
private static final AtlasConfig DEFAULTS = (k) -> null;
AtlasPropertiesConfigAdapter(AtlasProperties properties) { AtlasPropertiesConfigAdapter(AtlasProperties properties) {
super(properties, DEFAULTS); super(properties);
} }
@Override @Override
...@@ -44,68 +42,68 @@ class AtlasPropertiesConfigAdapter extends ...@@ -44,68 +42,68 @@ class AtlasPropertiesConfigAdapter extends
@Override @Override
public Duration step() { public Duration step() {
return get(AtlasProperties::getStep, AtlasConfig::step); return get(AtlasProperties::getStep, AtlasConfig.super::step);
} }
@Override @Override
public boolean enabled() { public boolean enabled() {
return get(AtlasProperties::getEnabled, AtlasConfig::enabled); return get(AtlasProperties::getEnabled, AtlasConfig.super::enabled);
} }
@Override @Override
public Duration connectTimeout() { public Duration connectTimeout() {
return get(AtlasProperties::getConnectTimeout, AtlasConfig::connectTimeout); return get(AtlasProperties::getConnectTimeout, AtlasConfig.super::connectTimeout);
} }
@Override @Override
public Duration readTimeout() { public Duration readTimeout() {
return get(AtlasProperties::getReadTimeout, AtlasConfig::readTimeout); return get(AtlasProperties::getReadTimeout, AtlasConfig.super::readTimeout);
} }
@Override @Override
public int numThreads() { public int numThreads() {
return get(AtlasProperties::getNumThreads, AtlasConfig::numThreads); return get(AtlasProperties::getNumThreads, AtlasConfig.super::numThreads);
} }
@Override @Override
public int batchSize() { public int batchSize() {
return get(AtlasProperties::getBatchSize, AtlasConfig::batchSize); return get(AtlasProperties::getBatchSize, AtlasConfig.super::batchSize);
} }
@Override @Override
public String uri() { public String uri() {
return get(AtlasProperties::getUri, AtlasConfig::uri); return get(AtlasProperties::getUri, AtlasConfig.super::uri);
} }
@Override @Override
public Duration meterTTL() { public Duration meterTTL() {
return get(AtlasProperties::getMeterTimeToLive, AtlasConfig::meterTTL); return get(AtlasProperties::getMeterTimeToLive, AtlasConfig.super::meterTTL);
} }
@Override @Override
public boolean lwcEnabled() { public boolean lwcEnabled() {
return get(AtlasProperties::getLwcEnabled, AtlasConfig::lwcEnabled); return get(AtlasProperties::getLwcEnabled, AtlasConfig.super::lwcEnabled);
} }
@Override @Override
public Duration configRefreshFrequency() { public Duration configRefreshFrequency() {
return get(AtlasProperties::getConfigRefreshFrequency, return get(AtlasProperties::getConfigRefreshFrequency,
AtlasConfig::configRefreshFrequency); AtlasConfig.super::configRefreshFrequency);
} }
@Override @Override
public Duration configTTL() { public Duration configTTL() {
return get(AtlasProperties::getConfigTimeToLive, AtlasConfig::configTTL); return get(AtlasProperties::getConfigTimeToLive, AtlasConfig.super::configTTL);
} }
@Override @Override
public String configUri() { public String configUri() {
return get(AtlasProperties::getConfigUri, AtlasConfig::configUri); return get(AtlasProperties::getConfigUri, AtlasConfig.super::configUri);
} }
@Override @Override
public String evalUri() { public String evalUri() {
return get(AtlasProperties::getEvalUri, AtlasConfig::evalUri); return get(AtlasProperties::getEvalUri, AtlasConfig.super::evalUri);
} }
} }
...@@ -27,28 +27,26 @@ import org.springframework.boot.actuate.autoconfigure.metrics.export.StepRegistr ...@@ -27,28 +27,26 @@ import org.springframework.boot.actuate.autoconfigure.metrics.export.StepRegistr
* @author Phillip Webb * @author Phillip Webb
*/ */
class DatadogPropertiesConfigAdapter class DatadogPropertiesConfigAdapter
extends StepRegistryPropertiesConfigAdapter<DatadogProperties, DatadogConfig> extends StepRegistryPropertiesConfigAdapter<DatadogProperties>
implements DatadogConfig { implements DatadogConfig {
private static final DatadogConfig DEFAULTS = (k) -> null;
DatadogPropertiesConfigAdapter(DatadogProperties properties) { DatadogPropertiesConfigAdapter(DatadogProperties properties) {
super(properties, DEFAULTS); super(properties);
} }
@Override @Override
public String apiKey() { public String apiKey() {
return get(DatadogProperties::getApiKey, DatadogConfig::apiKey); return get(DatadogProperties::getApiKey, DatadogConfig.super::apiKey);
} }
@Override @Override
public String hostTag() { public String hostTag() {
return get(DatadogProperties::getHostTag, DatadogConfig::hostTag); return get(DatadogProperties::getHostTag, DatadogConfig.super::hostTag);
} }
@Override @Override
public String uri() { public String uri() {
return get(DatadogProperties::getUri, DatadogConfig::uri); return get(DatadogProperties::getUri, DatadogConfig.super::uri);
} }
} }
...@@ -31,13 +31,11 @@ import org.springframework.boot.actuate.autoconfigure.metrics.export.PropertiesC ...@@ -31,13 +31,11 @@ import org.springframework.boot.actuate.autoconfigure.metrics.export.PropertiesC
* @author Phillip Webb * @author Phillip Webb
*/ */
class GangliaPropertiesConfigAdapter class GangliaPropertiesConfigAdapter
extends PropertiesConfigAdapter<GangliaProperties, GangliaConfig> extends PropertiesConfigAdapter<GangliaProperties>
implements GangliaConfig { implements GangliaConfig {
private static final GangliaConfig DEFAULTS = (k) -> null;
GangliaPropertiesConfigAdapter(GangliaProperties properties) { GangliaPropertiesConfigAdapter(GangliaProperties properties) {
super(properties, DEFAULTS); super(properties);
} }
@Override @Override
...@@ -47,47 +45,50 @@ class GangliaPropertiesConfigAdapter ...@@ -47,47 +45,50 @@ class GangliaPropertiesConfigAdapter
@Override @Override
public boolean enabled() { public boolean enabled() {
return get(GangliaProperties::getEnabled, GangliaConfig::enabled); return get(GangliaProperties::getEnabled, GangliaConfig.super::enabled);
} }
@Override @Override
public Duration step() { public Duration step() {
return get(GangliaProperties::getStep, GangliaConfig::step); return get(GangliaProperties::getStep, GangliaConfig.super::step);
} }
@Override @Override
public TimeUnit rateUnits() { public TimeUnit rateUnits() {
return get(GangliaProperties::getRateUnits, GangliaConfig::rateUnits); return get(GangliaProperties::getRateUnits, GangliaConfig.super::rateUnits);
} }
@Override @Override
public TimeUnit durationUnits() { public TimeUnit durationUnits() {
return get(GangliaProperties::getDurationUnits, GangliaConfig::durationUnits); return get(GangliaProperties::getDurationUnits,
GangliaConfig.super::durationUnits);
} }
@Override @Override
public String protocolVersion() { public String protocolVersion() {
return get(GangliaProperties::getProtocolVersion, GangliaConfig::protocolVersion); return get(GangliaProperties::getProtocolVersion,
GangliaConfig.super::protocolVersion);
} }
@Override @Override
public GMetric.UDPAddressingMode addressingMode() { public GMetric.UDPAddressingMode addressingMode() {
return get(GangliaProperties::getAddressingMode, GangliaConfig::addressingMode); return get(GangliaProperties::getAddressingMode,
GangliaConfig.super::addressingMode);
} }
@Override @Override
public int ttl() { public int ttl() {
return get(GangliaProperties::getTimeToLive, GangliaConfig::ttl); return get(GangliaProperties::getTimeToLive, GangliaConfig.super::ttl);
} }
@Override @Override
public String host() { public String host() {
return get(GangliaProperties::getHost, GangliaConfig::host); return get(GangliaProperties::getHost, GangliaConfig.super::host);
} }
@Override @Override
public int port() { public int port() {
return get(GangliaProperties::getPort, GangliaConfig::port); return get(GangliaProperties::getPort, GangliaConfig.super::port);
} }
} }
...@@ -31,13 +31,11 @@ import org.springframework.boot.actuate.autoconfigure.metrics.export.PropertiesC ...@@ -31,13 +31,11 @@ import org.springframework.boot.actuate.autoconfigure.metrics.export.PropertiesC
* @author Phillip Webb * @author Phillip Webb
*/ */
class GraphitePropertiesConfigAdapter class GraphitePropertiesConfigAdapter
extends PropertiesConfigAdapter<GraphiteProperties, GraphiteConfig> extends PropertiesConfigAdapter<GraphiteProperties>
implements GraphiteConfig { implements GraphiteConfig {
private static final GraphiteConfig DEFAULTS = (k) -> null;
GraphitePropertiesConfigAdapter(GraphiteProperties properties) { GraphitePropertiesConfigAdapter(GraphiteProperties properties) {
super(properties, DEFAULTS); super(properties);
} }
@Override @Override
...@@ -47,37 +45,38 @@ class GraphitePropertiesConfigAdapter ...@@ -47,37 +45,38 @@ class GraphitePropertiesConfigAdapter
@Override @Override
public boolean enabled() { public boolean enabled() {
return get(GraphiteProperties::getEnabled, GraphiteConfig::enabled); return get(GraphiteProperties::getEnabled, GraphiteConfig.super::enabled);
} }
@Override @Override
public Duration step() { public Duration step() {
return get(GraphiteProperties::getStep, GraphiteConfig::step); return get(GraphiteProperties::getStep, GraphiteConfig.super::step);
} }
@Override @Override
public TimeUnit rateUnits() { public TimeUnit rateUnits() {
return get(GraphiteProperties::getRateUnits, GraphiteConfig::rateUnits); return get(GraphiteProperties::getRateUnits, GraphiteConfig.super::rateUnits);
} }
@Override @Override
public TimeUnit durationUnits() { public TimeUnit durationUnits() {
return get(GraphiteProperties::getDurationUnits, GraphiteConfig::durationUnits); return get(GraphiteProperties::getDurationUnits,
GraphiteConfig.super::durationUnits);
} }
@Override @Override
public String host() { public String host() {
return get(GraphiteProperties::getHost, GraphiteConfig::host); return get(GraphiteProperties::getHost, GraphiteConfig.super::host);
} }
@Override @Override
public int port() { public int port() {
return get(GraphiteProperties::getPort, GraphiteConfig::port); return get(GraphiteProperties::getPort, GraphiteConfig.super::port);
} }
@Override @Override
public GraphiteProtocol protocol() { public GraphiteProtocol protocol() {
return get(GraphiteProperties::getProtocol, GraphiteConfig::protocol); return get(GraphiteProperties::getProtocol, GraphiteConfig.super::protocol);
} }
} }
...@@ -28,48 +28,47 @@ import org.springframework.boot.actuate.autoconfigure.metrics.export.StepRegistr ...@@ -28,48 +28,47 @@ import org.springframework.boot.actuate.autoconfigure.metrics.export.StepRegistr
* @author Phillip Webb * @author Phillip Webb
*/ */
class InfluxPropertiesConfigAdapter class InfluxPropertiesConfigAdapter
extends StepRegistryPropertiesConfigAdapter<InfluxProperties, InfluxConfig> extends StepRegistryPropertiesConfigAdapter<InfluxProperties>
implements InfluxConfig { implements InfluxConfig {
private static final InfluxConfig DEFAULTS = (k) -> null;
InfluxPropertiesConfigAdapter(InfluxProperties properties) { InfluxPropertiesConfigAdapter(InfluxProperties properties) {
super(properties, DEFAULTS); super(properties);
} }
@Override @Override
public String db() { public String db() {
return get(InfluxProperties::getDb, InfluxConfig::db); return get(InfluxProperties::getDb, InfluxConfig.super::db);
} }
@Override @Override
public InfluxConsistency consistency() { public InfluxConsistency consistency() {
return get(InfluxProperties::getConsistency, InfluxConfig::consistency); return get(InfluxProperties::getConsistency, InfluxConfig.super::consistency);
} }
@Override @Override
public String userName() { public String userName() {
return get(InfluxProperties::getUserName, InfluxConfig::userName); return get(InfluxProperties::getUserName, InfluxConfig.super::userName);
} }
@Override @Override
public String password() { public String password() {
return get(InfluxProperties::getPassword, InfluxConfig::password); return get(InfluxProperties::getPassword, InfluxConfig.super::password);
} }
@Override @Override
public String retentionPolicy() { public String retentionPolicy() {
return get(InfluxProperties::getRetentionPolicy, InfluxConfig::retentionPolicy); return get(InfluxProperties::getRetentionPolicy,
InfluxConfig.super::retentionPolicy);
} }
@Override @Override
public String uri() { public String uri() {
return get(InfluxProperties::getUri, InfluxConfig::uri); return get(InfluxProperties::getUri, InfluxConfig.super::uri);
} }
@Override @Override
public boolean compressed() { public boolean compressed() {
return get(InfluxProperties::getCompressed, InfluxConfig::compressed); return get(InfluxProperties::getCompressed, InfluxConfig.super::compressed);
} }
} }
...@@ -29,13 +29,11 @@ import org.springframework.boot.actuate.autoconfigure.metrics.export.PropertiesC ...@@ -29,13 +29,11 @@ import org.springframework.boot.actuate.autoconfigure.metrics.export.PropertiesC
* @author Phillip Webb * @author Phillip Webb
*/ */
class PrometheusPropertiesConfigAdapter class PrometheusPropertiesConfigAdapter
extends PropertiesConfigAdapter<PrometheusProperties, PrometheusConfig> extends PropertiesConfigAdapter<PrometheusProperties>
implements PrometheusConfig { implements PrometheusConfig {
private static final PrometheusConfig DEFAULTS = (key) -> null;
PrometheusPropertiesConfigAdapter(PrometheusProperties properties) { PrometheusPropertiesConfigAdapter(PrometheusProperties properties) {
super(properties, DEFAULTS); super(properties);
} }
@Override @Override
...@@ -45,12 +43,13 @@ class PrometheusPropertiesConfigAdapter ...@@ -45,12 +43,13 @@ class PrometheusPropertiesConfigAdapter
@Override @Override
public boolean descriptions() { public boolean descriptions() {
return get(PrometheusProperties::getDescriptions, PrometheusConfig::descriptions); return get(PrometheusProperties::getDescriptions,
PrometheusConfig.super::descriptions);
} }
@Override @Override
public Duration step() { public Duration step() {
return get(PrometheusProperties::getStep, PrometheusConfig::step); return get(PrometheusProperties::getStep, PrometheusConfig.super::step);
} }
} }
...@@ -29,11 +29,10 @@ import org.springframework.boot.actuate.autoconfigure.metrics.export.PropertiesC ...@@ -29,11 +29,10 @@ import org.springframework.boot.actuate.autoconfigure.metrics.export.PropertiesC
* @since 2.0.0 * @since 2.0.0
*/ */
public class SimplePropertiesConfigAdapter extends public class SimplePropertiesConfigAdapter extends
PropertiesConfigAdapter<SimpleProperties, SimpleConfig> implements SimpleConfig { PropertiesConfigAdapter<SimpleProperties> implements SimpleConfig {
private static final SimpleConfig DEFAULTS = (key) -> null;
public SimplePropertiesConfigAdapter(SimpleProperties properties) { public SimplePropertiesConfigAdapter(SimpleProperties properties) {
super(properties, DEFAULTS); super(properties);
} }
@Override @Override
...@@ -43,11 +42,11 @@ public class SimplePropertiesConfigAdapter extends ...@@ -43,11 +42,11 @@ public class SimplePropertiesConfigAdapter extends
@Override @Override
public boolean enabled() { public boolean enabled() {
return get(SimpleProperties::getEnabled, SimpleConfig::enabled); return get(SimpleProperties::getEnabled, SimpleConfig.super::enabled);
} }
@Override @Override
public Duration step() { public Duration step() {
return get(SimpleProperties::getStep, SimpleConfig::step); return get(SimpleProperties::getStep, SimpleConfig.super::step);
} }
} }
...@@ -30,12 +30,10 @@ import org.springframework.boot.actuate.autoconfigure.metrics.export.PropertiesC ...@@ -30,12 +30,10 @@ import org.springframework.boot.actuate.autoconfigure.metrics.export.PropertiesC
* @since 2.0.0 * @since 2.0.0
*/ */
public class StatsdPropertiesConfigAdapter extends public class StatsdPropertiesConfigAdapter extends
PropertiesConfigAdapter<StatsdProperties, StatsdConfig> implements StatsdConfig { PropertiesConfigAdapter<StatsdProperties> implements StatsdConfig {
private static final StatsdConfig DEFAULTS = (key) -> null;
public StatsdPropertiesConfigAdapter(StatsdProperties properties) { public StatsdPropertiesConfigAdapter(StatsdProperties properties) {
super(properties, DEFAULTS); super(properties);
} }
@Override @Override
...@@ -45,37 +43,39 @@ public class StatsdPropertiesConfigAdapter extends ...@@ -45,37 +43,39 @@ public class StatsdPropertiesConfigAdapter extends
@Override @Override
public StatsdFlavor flavor() { public StatsdFlavor flavor() {
return get(StatsdProperties::getFlavor, StatsdConfig::flavor); return get(StatsdProperties::getFlavor, StatsdConfig.super::flavor);
} }
@Override @Override
public boolean enabled() { public boolean enabled() {
return get(StatsdProperties::getEnabled, StatsdConfig::enabled); return get(StatsdProperties::getEnabled, StatsdConfig.super::enabled);
} }
@Override @Override
public String host() { public String host() {
return get(StatsdProperties::getHost, StatsdConfig::host); return get(StatsdProperties::getHost, StatsdConfig.super::host);
} }
@Override @Override
public int port() { public int port() {
return get(StatsdProperties::getPort, StatsdConfig::port); return get(StatsdProperties::getPort, StatsdConfig.super::port);
} }
@Override @Override
public int maxPacketLength() { public int maxPacketLength() {
return get(StatsdProperties::getMaxPacketLength, StatsdConfig::maxPacketLength); return get(StatsdProperties::getMaxPacketLength,
StatsdConfig.super::maxPacketLength);
} }
@Override @Override
public Duration pollingFrequency() { public Duration pollingFrequency() {
return get(StatsdProperties::getPollingFrequency, StatsdConfig::pollingFrequency); return get(StatsdProperties::getPollingFrequency,
StatsdConfig.super::pollingFrequency);
} }
@Override @Override
public int queueSize() { public int queueSize() {
return get(StatsdProperties::getQueueSize, StatsdConfig::queueSize); return get(StatsdProperties::getQueueSize, StatsdConfig.super::queueSize);
} }
} }
/*
* Copyright 2012-2017 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.boot.actuate.autoconfigure.metrics.export.datadog;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;
/**
* Tests for {@link DatadogPropertiesConfigAdapter}.
*
* @author Stephane Nicoll
*/
public class DatadogPropertiesConfigAdapterTests {
@Test
public void apiKeyInferUri() {
DatadogProperties properties = new DatadogProperties();
properties.setApiKey("my-key");
assertThat(new DatadogPropertiesConfigAdapter(properties).uri())
.contains("?api_key=my-key");
}
@Test
public void uriCanBeSet() {
DatadogProperties properties = new DatadogProperties();
properties.setUri("https://app.example.com/api/v1/series");
properties.setApiKey("my-key");
assertThat(new DatadogPropertiesConfigAdapter(properties).uri())
.isEqualTo("https://app.example.com/api/v1/series");
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment