diff --git a/spring-context/src/main/java/org/springframework/format/support/DefaultFormattingConversionService.java b/spring-context/src/main/java/org/springframework/format/support/DefaultFormattingConversionService.java index d18c9ba1e871..77316eaf4b14 100644 --- a/spring-context/src/main/java/org/springframework/format/support/DefaultFormattingConversionService.java +++ b/spring-context/src/main/java/org/springframework/format/support/DefaultFormattingConversionService.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2017 the original author or authors. + * Copyright 2002-2020 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. @@ -39,7 +39,7 @@ * {@link DefaultConversionService#addDefaultConverters addDefaultConverters} method. * *

Automatically registers formatters for JSR-354 Money & Currency, JSR-310 Date-Time - * and/or Joda-Time, depending on the presence of the corresponding API on the classpath. + * and/or Joda-Time 2.x, depending on the presence of the corresponding API on the classpath. * * @author Chris Beams * @author Juergen Hoeller @@ -47,11 +47,15 @@ */ public class DefaultFormattingConversionService extends FormattingConversionService { - private static final boolean jsr354Present = ClassUtils.isPresent( - "javax.money.MonetaryAmount", DefaultFormattingConversionService.class.getClassLoader()); + private static final boolean jsr354Present; - private static final boolean jodaTimePresent = ClassUtils.isPresent( - "org.joda.time.LocalDate", DefaultFormattingConversionService.class.getClassLoader()); + private static final boolean jodaTimePresent; + + static { + ClassLoader classLoader = DefaultFormattingConversionService.class.getClassLoader(); + jsr354Present = ClassUtils.isPresent("javax.money.MonetaryAmount", classLoader); + jodaTimePresent = ClassUtils.isPresent("org.joda.time.YearMonth", classLoader); + } /** @@ -78,7 +82,7 @@ public DefaultFormattingConversionService(boolean registerDefaultFormatters) { * Create a new {@code DefaultFormattingConversionService} with the set of * {@linkplain DefaultConversionService#addDefaultConverters default converters} and, * based on the value of {@code registerDefaultFormatters}, the set of - * {@linkplain #addDefaultFormatters default formatters} + * {@linkplain #addDefaultFormatters default formatters}. * @param embeddedValueResolver delegated to {@link #setEmbeddedValueResolver(StringValueResolver)} * prior to calling {@link #addDefaultFormatters}. * @param registerDefaultFormatters whether to register default formatters