summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjonmv <venstad@gmail.com>2022-11-01 22:11:07 +0100
committerjonmv <venstad@gmail.com>2022-11-01 22:11:07 +0100
commit116afffc4920705f8d0ce2b016700216a2a0cbb3 (patch)
tree59219dc968c7c6addbed5375e062d835a34a6f0d
parent4984373de8e6b5b4b6d62d13e7efbaf0f025b2c5 (diff)
No real changes
-rw-r--r--config/src/main/java/com/yahoo/config/subscription/ConfigSet.java2
-rwxr-xr-xconfig/src/main/java/com/yahoo/config/subscription/ConfigSourceSet.java2
-rw-r--r--config/src/main/java/com/yahoo/config/subscription/ConfigSubscriber.java11
-rw-r--r--config/src/main/java/com/yahoo/config/subscription/ConfigURI.java4
-rw-r--r--config/src/main/java/com/yahoo/config/subscription/DirSource.java2
-rw-r--r--config/src/main/java/com/yahoo/config/subscription/impl/ConfigSetSubscription.java7
-rw-r--r--config/src/main/java/com/yahoo/config/subscription/impl/ConfigSubscription.java32
-rw-r--r--config/src/main/java/com/yahoo/config/subscription/impl/FileConfigSubscription.java8
-rw-r--r--config/src/main/java/com/yahoo/config/subscription/package-info.java5
-rw-r--r--container-core/src/test/java/com/yahoo/container/di/ConfigRetrieverTest.java9
-rw-r--r--container-core/src/test/java/com/yahoo/container/di/ContainerTest.java26
-rw-r--r--container-core/src/test/java/com/yahoo/container/di/ContainerTestBase.java6
-rw-r--r--container-core/src/test/java/com/yahoo/container/di/DirConfigSource.java12
-rw-r--r--container-disc/src/main/java/com/yahoo/container/jdisc/ContainerThreadFactory.java10
-rw-r--r--container-disc/src/main/java/com/yahoo/container/jdisc/metric/MetricProvider.java9
-rw-r--r--jdisc_core/src/main/java/com/yahoo/jdisc/application/MetricImpl.java6
16 files changed, 57 insertions, 94 deletions
diff --git a/config/src/main/java/com/yahoo/config/subscription/ConfigSet.java b/config/src/main/java/com/yahoo/config/subscription/ConfigSet.java
index 1b86db6b299..0fb0462e84e 100644
--- a/config/src/main/java/com/yahoo/config/subscription/ConfigSet.java
+++ b/config/src/main/java/com/yahoo/config/subscription/ConfigSet.java
@@ -23,7 +23,6 @@ public class ConfigSet implements ConfigSource {
@SuppressWarnings({"unchecked", "rawtypes"})
public void addBuilder(String configId, ConfigInstance.Builder builder) {
Class<?> configClass = builder.getClass().getDeclaringClass();
- //System.out.println("Declaring class for builder " + builder + " is " + configClass);
ConfigKey<?> key = new ConfigKey(configClass, configId);
configs.put(key, builder);
}
@@ -56,4 +55,5 @@ public class ConfigSet implements ConfigSource {
}
return sb.toString();
}
+
}
diff --git a/config/src/main/java/com/yahoo/config/subscription/ConfigSourceSet.java b/config/src/main/java/com/yahoo/config/subscription/ConfigSourceSet.java
index 81aeda52b54..597f83a605c 100755
--- a/config/src/main/java/com/yahoo/config/subscription/ConfigSourceSet.java
+++ b/config/src/main/java/com/yahoo/config/subscription/ConfigSourceSet.java
@@ -58,7 +58,7 @@ public class ConfigSourceSet implements ConfigSource {
* @param address Connection endpoint on the format "tcp/host:port".
*/
public ConfigSourceSet(String address) {
- this(new String[] {address});
+ this(new String[] { address });
}
/**
diff --git a/config/src/main/java/com/yahoo/config/subscription/ConfigSubscriber.java b/config/src/main/java/com/yahoo/config/subscription/ConfigSubscriber.java
index 5d5ad1f1edc..e2b53879d92 100644
--- a/config/src/main/java/com/yahoo/config/subscription/ConfigSubscriber.java
+++ b/config/src/main/java/com/yahoo/config/subscription/ConfigSubscriber.java
@@ -275,7 +275,7 @@ public class ConfigSubscriber implements AutoCloseable {
ConfigSubscription<? extends ConfigInstance> subscription = h.subscription();
log.log(Level.FINEST, () -> "Calling nextConfig for " + subscription.getKey());
if ( ! subscription.nextConfig(timeLeftMillis)) {
- // This subscriber has no new state and we know it has exhausted all time
+ // This subscriber has no new state, and we know it has exhausted the timeout
log.log(Level.FINEST, () -> "No new config for " + subscription.getKey());
return false;
}
@@ -407,15 +407,6 @@ public class ConfigSubscriber implements AutoCloseable {
}
}
- /**
- * The source used by this subscriber.
- *
- * @return the {@link ConfigSource} used by this subscriber
- */
- public ConfigSource getSource() {
- return source;
- }
-
public boolean isClosed() {
synchronized (monitor) {
return state == State.CLOSED;
diff --git a/config/src/main/java/com/yahoo/config/subscription/ConfigURI.java b/config/src/main/java/com/yahoo/config/subscription/ConfigURI.java
index f0257457902..aa8a8c4a4c2 100644
--- a/config/src/main/java/com/yahoo/config/subscription/ConfigURI.java
+++ b/config/src/main/java/com/yahoo/config/subscription/ConfigURI.java
@@ -12,8 +12,8 @@ import java.io.File;
*/
public class ConfigURI {
- private String configId;
- private ConfigSource source;
+ private final String configId;
+ private final ConfigSource source;
private ConfigURI(String configId, ConfigSource source) {
this.configId = configId;
diff --git a/config/src/main/java/com/yahoo/config/subscription/DirSource.java b/config/src/main/java/com/yahoo/config/subscription/DirSource.java
index fbd65ccf597..9172048fe7b 100644
--- a/config/src/main/java/com/yahoo/config/subscription/DirSource.java
+++ b/config/src/main/java/com/yahoo/config/subscription/DirSource.java
@@ -11,7 +11,7 @@ public class DirSource implements ConfigSource {
private final File dir;
public DirSource(File dir) {
- if (!dir.isDirectory()) throw new IllegalArgumentException("Not a directory: "+dir);
+ if (!dir.isDirectory()) throw new IllegalArgumentException("Not a directory: " + dir);
this.dir = dir;
}
diff --git a/config/src/main/java/com/yahoo/config/subscription/impl/ConfigSetSubscription.java b/config/src/main/java/com/yahoo/config/subscription/impl/ConfigSetSubscription.java
index 68f1dc2df17..15c6ce2441e 100644
--- a/config/src/main/java/com/yahoo/config/subscription/impl/ConfigSetSubscription.java
+++ b/config/src/main/java/com/yahoo/config/subscription/impl/ConfigSetSubscription.java
@@ -18,11 +18,10 @@ public class ConfigSetSubscription<T extends ConfigInstance> extends ConfigSubsc
private final ConfigSet set;
private final ConfigKey<T> subKey;
- ConfigSetSubscription(ConfigKey<T> key, ConfigSource cset) {
+ ConfigSetSubscription(ConfigKey<T> key, ConfigSet cset) {
super(key);
- if (!(cset instanceof ConfigSet)) throw new IllegalArgumentException("Source is not a ConfigSet: " + cset);
- this.set = (ConfigSet) cset;
- subKey = new ConfigKey<>(configClass, key.getConfigId());
+ this.set = cset;
+ this.subKey = new ConfigKey<>(configClass, key.getConfigId());
if (!set.contains(subKey)) {
throw new IllegalArgumentException("The given ConfigSet " + set + " does not contain a config for " + subKey);
}
diff --git a/config/src/main/java/com/yahoo/config/subscription/impl/ConfigSubscription.java b/config/src/main/java/com/yahoo/config/subscription/impl/ConfigSubscription.java
index 5d720a74b15..2c5899df461 100644
--- a/config/src/main/java/com/yahoo/config/subscription/impl/ConfigSubscription.java
+++ b/config/src/main/java/com/yahoo/config/subscription/impl/ConfigSubscription.java
@@ -121,10 +121,9 @@ public abstract class ConfigSubscription<T extends ConfigInstance> {
if (source instanceof FileSource || configId.startsWith("file:")) return getFileSub(key, source);
if (source instanceof DirSource || configId.startsWith("dir:")) return getDirFileSub(key, source);
if (source instanceof JarSource || configId.startsWith("jar:")) return getJarSub(key, source);
- if (source instanceof ConfigSet) return new ConfigSetSubscription<>(key, source);
- if (source instanceof ConfigSourceSet) {
- JRTConfigRequester requester = requesters.getRequester((ConfigSourceSet) source, timingValues);
- return new JRTConfigSubscription<>(key, requester, timingValues);
+ if (source instanceof ConfigSet cset) return new ConfigSetSubscription<>(key, cset);
+ if (source instanceof ConfigSourceSet csset) {
+ return new JRTConfigSubscription<>(key, requesters.getRequester(csset, timingValues), timingValues);
}
throw new IllegalArgumentException("Unknown source type: " + source);
}
@@ -132,21 +131,19 @@ public abstract class ConfigSubscription<T extends ConfigInstance> {
private static <T extends ConfigInstance> JarConfigSubscription<T> getJarSub(ConfigKey<T> key, ConfigSource source) {
String jarName;
String path = "config/";
- if (source instanceof JarSource) {
- JarSource js = (JarSource) source;
+ if (source instanceof JarSource js) {
jarName = js.getJarFile().getName();
if (js.getPath() != null) path = js.getPath();
} else {
- jarName = key.getConfigId().replace("jar:", "").replaceFirst("\\!/.*", "");
- if (key.getConfigId().contains("!/")) path = key.getConfigId().replaceFirst(".*\\!/", "");
+ jarName = key.getConfigId().replace("jar:", "").replaceFirst("!/.*", "");
+ if (key.getConfigId().contains("!/")) path = key.getConfigId().replaceFirst(".*!/", "");
}
return new JarConfigSubscription<>(key, jarName, path);
}
private static <T extends ConfigInstance> ConfigSubscription<T> getFileSub(ConfigKey<T> key, ConfigSource source) {
- File file = ((source instanceof FileSource))
- ? ((FileSource) source).getFile()
- : new File(key.getConfigId().replace("file:", ""));
+ File file = source instanceof FileSource fileSource ? fileSource.getFile()
+ : new File(key.getConfigId().replace("file:", ""));
return new FileConfigSubscription<>(key, file);
}
@@ -158,17 +155,8 @@ public abstract class ConfigSubscription<T extends ConfigInstance> {
}
private static <T extends ConfigInstance> ConfigSubscription<T> getDirFileSub(ConfigKey<T> key, ConfigSource source) {
- String dir = key.getConfigId().replace("dir:", "");
- if (source instanceof DirSource) {
- dir = ((DirSource) source).getDir().toString();
- }
- if (!dir.endsWith(File.separator)) dir = dir + File.separator;
- String name = getConfigFilename(key);
- File file = new File(dir + name);
- if (!file.exists()) {
- throw new IllegalArgumentException("Could not find a config file for '" + key.getName() + "' in '" + dir + "'");
- }
- return new FileConfigSubscription<>(key, file);
+ File dir = source instanceof DirSource dirSource ? dirSource.getDir() : new File(key.getConfigId().replace("dir:", ""));
+ return new FileConfigSubscription<>(key, new File(dir, getConfigFilename(key)));
}
@SuppressWarnings("unchecked")
diff --git a/config/src/main/java/com/yahoo/config/subscription/impl/FileConfigSubscription.java b/config/src/main/java/com/yahoo/config/subscription/impl/FileConfigSubscription.java
index 5311b91c31f..47ac0dfbf85 100644
--- a/config/src/main/java/com/yahoo/config/subscription/impl/FileConfigSubscription.java
+++ b/config/src/main/java/com/yahoo/config/subscription/impl/FileConfigSubscription.java
@@ -11,6 +11,7 @@ import com.yahoo.vespa.config.ConfigPayload;
import java.io.File;
import java.io.IOException;
+import java.nio.file.Files;
import java.util.Arrays;
import static java.util.logging.Level.FINE;
@@ -29,13 +30,12 @@ public class FileConfigSubscription<T extends ConfigInstance> extends ConfigSubs
super(key);
setGeneration(0L);
file = f;
- if (!file.exists() && !file.isFile())
- throw new IllegalArgumentException("Not a file: " + file);
+ if ( ! file.isFile()) throw new IllegalArgumentException("Not a file: " + file);
}
@Override
public boolean nextConfig(long timeout) {
- if (!file.exists() && !file.isFile()) throw new IllegalArgumentException("Not a file: " + file);
+ if ( ! file.isFile()) throw new IllegalArgumentException("Not a file: " + file);
if (checkReloaded()) {
log.log(FINE, () -> "User forced config reload at " + System.currentTimeMillis());
// User forced reload
@@ -61,7 +61,7 @@ public class FileConfigSubscription<T extends ConfigInstance> extends ConfigSubs
private T updateConfig() {
ts = file.lastModified();
try {
- ConfigPayload payload = new CfgConfigPayloadBuilder().deserialize(Arrays.asList(IOUtils.readFile(file).split("\n")));
+ ConfigPayload payload = new CfgConfigPayloadBuilder().deserialize(Files.readAllLines(file.toPath()));
return payload.toInstance(configClass, key.getConfigId());
} catch (IOException e) {
throw new ConfigurationRuntimeException(e);
diff --git a/config/src/main/java/com/yahoo/config/subscription/package-info.java b/config/src/main/java/com/yahoo/config/subscription/package-info.java
index bda7649d184..58a47fa4249 100644
--- a/config/src/main/java/com/yahoo/config/subscription/package-info.java
+++ b/config/src/main/java/com/yahoo/config/subscription/package-info.java
@@ -1,8 +1,7 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+
+/** Classes for subscribing to Vespa config. */
@ExportPackage
-/**
- * Classes for subscribing to Vespa config.
- */
package com.yahoo.config.subscription;
import com.yahoo.osgi.annotation.ExportPackage;
diff --git a/container-core/src/test/java/com/yahoo/container/di/ConfigRetrieverTest.java b/container-core/src/test/java/com/yahoo/container/di/ConfigRetrieverTest.java
index 942555e391d..2bf33888569 100644
--- a/container-core/src/test/java/com/yahoo/container/di/ConfigRetrieverTest.java
+++ b/container-core/src/test/java/com/yahoo/container/di/ConfigRetrieverTest.java
@@ -42,11 +42,6 @@ public class ConfigRetrieverTest {
dirConfigSource = new DirConfigSource(tmpDir, "ConfigRetrieverTest-");
}
- @AfterEach
- public void cleanup() {
- dirConfigSource.cleanup();
- }
-
@Test
void require_that_bootstrap_configs_come_first() {
writeConfigs();
@@ -54,6 +49,7 @@ public class ConfigRetrieverTest {
ConfigSnapshot bootstrapConfigs = retriever.getConfigs(Collections.emptySet(), 0, true);
assertTrue(bootstrapConfigs instanceof BootstrapConfigs);
+ retriever.shutdown();
}
@Test
@@ -71,12 +67,12 @@ public class ConfigRetrieverTest {
} else {
fail("ComponentsConfigs has unexpected type: " + componentsConfigs);
}
+ retriever.shutdown();
}
@Disabled
@SuppressWarnings("unused")
public void require_exception_upon_modified_components_keys_without_bootstrap() {
-
writeConfigs();
ConfigRetriever retriever = createConfigRetriever();
ConfigKey<? extends ConfigInstance> testConfigKey = new ConfigKey<>(TestConfig.class, dirConfigSource.configId());
@@ -99,6 +95,7 @@ public class ConfigRetrieverTest {
ConfigRetriever retriever = createConfigRetriever();
assertTrue(retriever.getConfigs(Collections.emptySet(), 0, true) instanceof BootstrapConfigs);
assertTrue(retriever.getConfigs(Collections.emptySet(), 0, true) instanceof ComponentsConfigs);
+ retriever.shutdown();
}
public void writeConfigs() {
diff --git a/container-core/src/test/java/com/yahoo/container/di/ContainerTest.java b/container-core/src/test/java/com/yahoo/container/di/ContainerTest.java
index c0d691c8a5a..6d95ba9c344 100644
--- a/container-core/src/test/java/com/yahoo/container/di/ContainerTest.java
+++ b/container-core/src/test/java/com/yahoo/container/di/ContainerTest.java
@@ -112,10 +112,8 @@ public class ContainerTest extends ContainerTestBase {
// bundle-2 is installed, bundle-1 has been uninstalled
assertEquals(1, osgi.getBundles().length);
assertEquals("bundle-2", osgi.getBundles()[0].getSymbolicName());
- }
- //@Test TODO
- public void deconstructor_is_given_guice_components() {
+ container.shutdownConfigRetriever();
}
@Test
@@ -131,9 +129,11 @@ public class ContainerTest extends ContainerTestBase {
container.reloadConfig(2);
getNewComponentGraph(container, oldGraph);
assertTrue(componentToDestruct.deconstructed);
+
+ container.shutdownConfigRetriever();
}
- @Disabled // because logAndDie is impossible(?) to verify programmatically
+ @Disabled("because logAndDie is impossible(?) to verify programmatically")
@Test
void manually_verify_what_happens_when_first_graph_contains_component_that_throws_exception_in_ctor() {
writeBootstrapConfigs("thrower", ComponentThrowingExceptionInConstructor.class);
@@ -144,6 +144,8 @@ public class ContainerTest extends ContainerTestBase {
} catch (Throwable t) {
fail("Expected to log and die");
}
+
+ container.shutdownConfigRetriever();
}
// Failure in component construction phase
@@ -172,6 +174,8 @@ public class ContainerTest extends ContainerTestBase {
assertEquals(3, currentGraph.generation());
assertSame(simpleComponent, currentGraph.getInstance(SimpleComponent.class));
assertNotNull(currentGraph.getInstance(ComponentTakingConfig.class));
+
+ container.shutdownConfigRetriever();
}
@Test
@@ -195,6 +199,8 @@ public class ContainerTest extends ContainerTestBase {
// bundle-1 is kept, bundle-2 has been uninstalled
assertEquals(1, osgi.getBundles().length);
assertEquals("bundle-1", osgi.getBundles()[0].getSymbolicName());
+
+ container.shutdownConfigRetriever();
}
// Failure in graph creation phase
@@ -213,6 +219,8 @@ public class ContainerTest extends ContainerTestBase {
container.reloadConfig(2);
assertNewComponentGraphFails(container, currentGraph, IllegalArgumentException.class);
assertEquals(1, currentGraph.generation());
+
+ container.shutdownConfigRetriever();
}
@Test
@@ -238,6 +246,8 @@ public class ContainerTest extends ContainerTestBase {
// bundle-1 is kept, bundle-2 has been uninstalled
assertEquals(1, osgi.getBundles().length);
assertEquals("bundle-1", osgi.getBundles()[0].getSymbolicName());
+
+ container.shutdownConfigRetriever();
}
private void assertNewComponentGraphFails(Container container, ComponentGraph currentGraph, Class<? extends RuntimeException> exception) {
@@ -261,7 +271,7 @@ public class ContainerTest extends ContainerTestBase {
container.reloadConfig(2);
assertThrows(IllegalArgumentException.class,
- () -> getNewComponentGraph(container, currentGraph));
+ () -> getNewComponentGraph(container, currentGraph));
ExecutorService exec = Executors.newFixedThreadPool(1);
Future<ComponentGraph> newGraph = exec.submit(() -> getNewComponentGraph(container, currentGraph));
@@ -277,10 +287,12 @@ public class ContainerTest extends ContainerTestBase {
container.reloadConfig(3);
assertNotNull(newGraph.get(5, TimeUnit.MINUTES));
+
+ container.shutdownConfigRetriever();
}
@Test
- void providers_are_destructed() {
+ void providers_are_destroyed() {
writeBootstrapConfigs("id1", DestructableProvider.class);
ComponentDeconstructor deconstructor = (generation, components, bundles) -> {
@@ -304,6 +316,8 @@ public class ContainerTest extends ContainerTestBase {
getNewComponentGraph(container, oldGraph);
assertTrue(destructableEntity.deconstructed);
+
+ container.shutdownConfigRetriever();
}
@Test
diff --git a/container-core/src/test/java/com/yahoo/container/di/ContainerTestBase.java b/container-core/src/test/java/com/yahoo/container/di/ContainerTestBase.java
index 7442eb2068d..54e5c54438b 100644
--- a/container-core/src/test/java/com/yahoo/container/di/ContainerTestBase.java
+++ b/container-core/src/test/java/com/yahoo/container/di/ContainerTestBase.java
@@ -36,12 +36,6 @@ public class ContainerTestBase {
osgi = new TestOsgi(BundleTestUtil.testBundles());
}
- @AfterEach
- public void cleanup() {
- dirConfigSource.cleanup();
- }
-
-
protected Container newContainer(DirConfigSource dirConfigSource,
ComponentDeconstructor deconstructor) {
return new Container(new CloudSubscriberFactory(dirConfigSource.configSource),
diff --git a/container-core/src/test/java/com/yahoo/container/di/DirConfigSource.java b/container-core/src/test/java/com/yahoo/container/di/DirConfigSource.java
index db7e93f7c6e..39b50c66244 100644
--- a/container-core/src/test/java/com/yahoo/container/di/DirConfigSource.java
+++ b/container-core/src/test/java/com/yahoo/container/di/DirConfigSource.java
@@ -3,13 +3,17 @@ package com.yahoo.container.di;
import com.yahoo.config.subscription.ConfigSource;
import com.yahoo.config.subscription.ConfigSourceSet;
+import org.junit.jupiter.api.Assertions;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
+import java.nio.charset.StandardCharsets;
import java.util.Random;
+import static java.nio.charset.StandardCharsets.UTF_8;
+
/**
* @author Tony Vaagenes
* @author gjoranv
@@ -18,7 +22,7 @@ import java.util.Random;
public class DirConfigSource {
private final File tempFolder;
- public final ConfigSource configSource;
+ public final ConfigSource configSource; // TODO jonmv: remove, unused
public DirConfigSource(File tmpDir, String testSourcePrefix) {
this.tempFolder = tmpDir;
@@ -46,13 +50,9 @@ public class DirConfigSource {
return configSource;
}
- public void cleanup() {
- tempFolder.delete();
- }
-
private static void printFile(File f, String content) {
try (OutputStream out = new FileOutputStream(f)) {
- out.write(content.getBytes("UTF-8"));
+ out.write(content.getBytes(UTF_8));
} catch (IOException e) {
throw new RuntimeException(e);
}
diff --git a/container-disc/src/main/java/com/yahoo/container/jdisc/ContainerThreadFactory.java b/container-disc/src/main/java/com/yahoo/container/jdisc/ContainerThreadFactory.java
index 92969ef9e97..b087c4e80b3 100644
--- a/container-disc/src/main/java/com/yahoo/container/jdisc/ContainerThreadFactory.java
+++ b/container-disc/src/main/java/com/yahoo/container/jdisc/ContainerThreadFactory.java
@@ -3,7 +3,6 @@ package com.yahoo.container.jdisc;
import com.yahoo.container.jdisc.metric.MetricConsumerProvider;
import com.yahoo.jdisc.application.ContainerThread;
-import com.yahoo.jdisc.application.MetricConsumer;
import java.util.concurrent.ThreadFactory;
@@ -15,14 +14,7 @@ public class ContainerThreadFactory implements ThreadFactory {
private final ThreadFactory delegate;
public ContainerThreadFactory(MetricConsumerProvider metricConsumerProvider) {
- metricConsumerProvider.getClass(); // throws NullPointerException
- delegate = new ContainerThread.Factory(new com.google.inject.Provider<MetricConsumer>() {
-
- @Override
- public MetricConsumer get() {
- return metricConsumerProvider.newInstance();
- }
- });
+ delegate = new ContainerThread.Factory(metricConsumerProvider::newInstance);
}
@Override
diff --git a/container-disc/src/main/java/com/yahoo/container/jdisc/metric/MetricProvider.java b/container-disc/src/main/java/com/yahoo/container/jdisc/metric/MetricProvider.java
index b547b3dd897..1afe152a420 100644
--- a/container-disc/src/main/java/com/yahoo/container/jdisc/metric/MetricProvider.java
+++ b/container-disc/src/main/java/com/yahoo/container/jdisc/metric/MetricProvider.java
@@ -3,7 +3,6 @@ package com.yahoo.container.jdisc.metric;
import com.yahoo.container.di.componentgraph.Provider;
import com.yahoo.jdisc.Metric;
-import com.yahoo.jdisc.application.MetricConsumer;
/**
* An implementation of {@link Provider} component of <code>Metric</code>. Because this class depends on {@link
@@ -17,13 +16,7 @@ public final class MetricProvider implements Provider<Metric> {
private final Metric metric;
public MetricProvider(MetricConsumerProvider provider) {
- metric = new com.yahoo.jdisc.application.MetricProvider(new com.google.inject.Provider<MetricConsumer>() {
-
- @Override
- public MetricConsumer get() {
- return provider.newInstance();
- }
- }).get();
+ metric = new com.yahoo.jdisc.application.MetricProvider(provider::newInstance).get();
}
@Override
diff --git a/jdisc_core/src/main/java/com/yahoo/jdisc/application/MetricImpl.java b/jdisc_core/src/main/java/com/yahoo/jdisc/application/MetricImpl.java
index 5a6a1f96bad..994bfc0fc3f 100644
--- a/jdisc_core/src/main/java/com/yahoo/jdisc/application/MetricImpl.java
+++ b/jdisc_core/src/main/java/com/yahoo/jdisc/application/MetricImpl.java
@@ -45,11 +45,7 @@ class MetricImpl implements Metric {
}
private MetricConsumer currentConsumer() {
- Thread thread = Thread.currentThread();
- if (thread instanceof ContainerThread) {
- return ((ContainerThread)thread).consumer();
- }
- return consumer.get();
+ return Thread.currentThread() instanceof ContainerThread thread ? thread.consumer() : consumer.get();
}
private static class LocalConsumer extends ThreadLocal<MetricConsumer> {