title: Error processing condition in Micrometer (micrometerClock)
body: <p>I'm trying to configure Micrometer with Atlas. I'm following the guides provided by Micrometer and Spring (I'm using Spring Boot 2.0.1) and I don't understand what's failing.</p>
  
  <p>I have the following configuration:</p>
  
  <pre><code>public class AtlasMeterConfiguration {
  
  @Bean
  MeterRegistry meterRegistry() {
      AtlasConfig atlasConfig = new AtlasConfig() {
          @Override
          public Duration step() {
              return Duration.ofSeconds(10);
          }
  
          @Override
          public String get(String k) {
              return null; // accept the rest of the defaults
          }
      };
  
      try(CompositeMeterRegistry compositeRegistry = new CompositeMeterRegistry();
          SimpleMeterRegistry oneSimpleMeter = new SimpleMeterRegistry()) {
  
          AtlasMeterRegistry atlasMeterRegistry = new AtlasMeterRegistry(atlasConfig, Clock.SYSTEM);
          compositeRegistry.add(oneSimpleMeter);
          compositeRegistry.add(atlasMeterRegistry);
  
          return atlasMeterRegistry;
      }
  }
  </code></pre>
  
  <p>}</p>
  
  <p>and I added this to one of my REST Controllers:</p>
  
  <pre><code>registry.timer("my.latency", "input").record(() -&gt; {
          registry.get("my.latency").counter().increment();
          return registry.get("my.latency").counter();
      });
  </code></pre>
  
  <p>And the @Timed annotation, but all I get is the following error:</p>
  
  <pre><code>      .   ____          _            __ _ _
   /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
  ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
   \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
    '  |____| .__|_| |_|_| |_\__, | / / / /
   =========|_|==============|___/=/_/_/_/
   :: Spring Boot ::        (v2.0.1.RELEASE)
  
  [WARNING] 
  java.lang.reflect.InvocationTargetException
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:498)
      at org.springframework.boot.maven.AbstractRunMojo$LaunchRunner.run(AbstractRunMojo.java:496)
      at java.lang.Thread.run(Thread.java:748)
  Caused by: java.lang.IllegalStateException: Error processing condition on io.micrometer.spring.autoconfigure.MetricsAutoConfiguration.micrometerClock
      at org.springframework.boot.autoconfigure.condition.SpringBootCondition.matches(SpringBootCondition.java:64)
      at org.springframework.context.annotation.ConditionEvaluator.shouldSkip(ConditionEvaluator.java:108)
      at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForBeanMethod(ConfigurationClassBeanDefinitionReader.java:179)
      at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass(ConfigurationClassBeanDefinitionReader.java:141)
      at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions(ConfigurationClassBeanDefinitionReader.java:117)
      at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:328)
      at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:233)
      at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:273)
      at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:93)
      at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:694)
      at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:532)
      at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140)
      at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:759)
      at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:395)
      at org.springframework.boot.SpringApplication.run(SpringApplication.java:327)
      at org.springframework.boot.SpringApplication.run(SpringApplication.java:1255)
      at org.springframework.boot.SpringApplication.run(SpringApplication.java:1243)
      at com.myapp.app.Application.main(Application.java:23)
      ... 6 more
  Caused by: java.lang.IllegalStateException: Failed to introspect Class [io.micrometer.spring.autoconfigure.web.tomcat.TomcatMetricsConfiguration] from ClassLoader [java.net.URLClassLoader@66e94e22]
      at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:659)
      at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:556)
      at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:541)
      at org.springframework.util.ReflectionUtils.getUniqueDeclaredMethods(ReflectionUtils.java:599)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryMethod(AbstractAutowireCapableBeanFactory.java:724)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.determineTargetType(AbstractAutowireCapableBeanFactory.java:665)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:633)
      at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1489)
      at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1012)
      at org.springframework.boot.autoconfigure.condition.BeanTypeRegistry.addBeanTypeForNonAliasDefinition(BeanTypeRegistry.java:164)
      at org.springframework.boot.autoconfigure.condition.BeanTypeRegistry.addBeanType(BeanTypeRegistry.java:153)
      at org.springframework.boot.autoconfigure.condition.BeanTypeRegistry.updateTypesIfNecessary(BeanTypeRegistry.java:203)
      at org.springframework.boot.autoconfigure.condition.BeanTypeRegistry.getNamesForType(BeanTypeRegistry.java:115)
      at org.springframework.boot.autoconfigure.condition.OnBeanCondition.collectBeanNamesForType(OnBeanCondition.java:265)
      at org.springframework.boot.autoconfigure.condition.OnBeanCondition.getBeanNamesForType(OnBeanCondition.java:254)
      at org.springframework.boot.autoconfigure.condition.OnBeanCondition.getMatchingBeans(OnBeanCondition.java:196)
      at org.springframework.boot.autoconfigure.condition.OnBeanCondition.getMatchOutcome(OnBeanCondition.java:116)
      at org.springframework.boot.autoconfigure.condition.SpringBootCondition.matches(SpringBootCondition.java:47)
      ... 23 more
  Caused by: java.lang.NoClassDefFoundError: org/springframework/boot/context/embedded/EmbeddedWebApplicationContext
      at java.lang.Class.getDeclaredMethods0(Native Method)
      at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
      at java.lang.Class.getDeclaredMethods(Class.java:1975)
      at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:641)
      ... 40 more
  Caused by: java.lang.ClassNotFoundException: org.springframework.boot.context.embedded.EmbeddedWebApplicationContext
      at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
      ... 44 more
  [INFO] ------------------------------------------------------------------------
  [INFO] BUILD FAILURE
  [INFO] ------------------------------------------------------------------------
  [INFO] Total time: 6.248 s
  [INFO] Finished at: 2018-05-07T10:06:34+02:00
  [INFO] Final Memory: 50M/564M
  [INFO] ------------------------------------------------------------------------
  [ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:2.0.1.RELEASE:run (default-cli) on project apirest: An exception occurred while running. null: InvocationTargetException: Error processing condition on io.micrometer.spring.autoconfigure.MetricsAutoConfiguration.micrometerClock: Failed to introspect Class [io.micrometer.spring.autoconfigure.web.tomcat.TomcatMetricsConfiguration] from ClassLoader [java.net.URLClassLoader@66e94e22]: org/springframework/boot/context/embedded/EmbeddedWebApplicationContext: org.springframework.boot.context.embedded.EmbeddedWebApplicationContext -&gt; [Help 1]
  [ERROR] 
  [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
  [ERROR] Re-run Maven using the -X switch to enable full debug logging.
  [ERROR] 
  [ERROR] For more information about the errors and possible solutions, please read the following articles:
  [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
  Disconnected from the target VM, address: '127.0.0.1:57528', transport: 'socket'
  
  Process finished with exit code 1
  </code></pre>
  
  <p>Anyone knows how to solve this?</p>
  
  <p>Thank you!</p>