From 09181d6b16eac4e06c1abff120818ddf93cb11d1 Mon Sep 17 00:00:00 2001 From: Jon Schneider Date: Tue, 30 Jan 2018 21:21:41 -0600 Subject: [PATCH] Fix CompositeMeterRegistryPostProcessor autowire Update `CompositeMeterRegistryPostProcessor` to use constructor autowiring for `Clock` detection. Fixes gh-11856 --- .../metrics/export/CompositeMeterRegistryPostProcessor.java | 6 ++---- .../export/CompositeMeterRegistryPostProcessorTests.java | 1 + 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/CompositeMeterRegistryPostProcessor.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/CompositeMeterRegistryPostProcessor.java index bab5c1f3619..87838424d9b 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/CompositeMeterRegistryPostProcessor.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/CompositeMeterRegistryPostProcessor.java @@ -18,7 +18,6 @@ package org.springframework.boot.actuate.autoconfigure.metrics.export; import java.util.Arrays; -import io.micrometer.core.instrument.Clock; import io.micrometer.core.instrument.MeterRegistry; import io.micrometer.core.instrument.composite.CompositeMeterRegistry; @@ -29,8 +28,8 @@ import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.beans.factory.config.BeanFactoryPostProcessor; import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; import org.springframework.beans.factory.config.ConstructorArgumentValues; -import org.springframework.beans.factory.config.ConstructorArgumentValues.ValueHolder; import org.springframework.beans.factory.config.RuntimeBeanReference; +import org.springframework.beans.factory.support.AbstractBeanDefinition; import org.springframework.beans.factory.support.BeanDefinitionRegistry; import org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor; import org.springframework.beans.factory.support.GenericBeanDefinition; @@ -105,9 +104,8 @@ class CompositeMeterRegistryPostProcessor GenericBeanDefinition definition = new GenericBeanDefinition(); definition.setBeanClass(CompositeMeterRegistry.class); definition.setPrimary(true); + definition.setAutowireMode(AbstractBeanDefinition.AUTOWIRE_CONSTRUCTOR); ConstructorArgumentValues arguments = new ConstructorArgumentValues(); - arguments.addIndexedArgumentValue(0, - new ValueHolder(null, Clock.class.getName())); arguments.addIndexedArgumentValue(1, getBeanReferences(registryBeans)); definition.setConstructorArgumentValues(arguments); registry.registerBeanDefinition(COMPOSITE_BEAN_NAME, definition); diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/export/CompositeMeterRegistryPostProcessorTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/export/CompositeMeterRegistryPostProcessorTests.java index 622f8b45fc4..9e26fad7f6f 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/export/CompositeMeterRegistryPostProcessorTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/export/CompositeMeterRegistryPostProcessorTests.java @@ -73,6 +73,7 @@ public class CompositeMeterRegistryPostProcessorTests { assertThat(primary).isInstanceOf(CompositeMeterRegistry.class); assertThat(((CompositeMeterRegistry) primary).getRegistries()) .hasSize(2); + assertThat(primary.config().clock()).isNotNull(); }); }