Optimize class detection by sharing the ClassLoader
Issue: SPR-17083
This commit is contained in:
parent
32faf09a80
commit
d3b244a81b
|
@ -50,11 +50,15 @@ public class CachingConfigurationSelector extends AdviceModeImportSelector<Enabl
|
|||
"org.springframework.cache.aspectj.AspectJJCacheConfiguration";
|
||||
|
||||
|
||||
private static final boolean jsr107Present = ClassUtils.isPresent(
|
||||
"javax.cache.Cache", CachingConfigurationSelector.class.getClassLoader());
|
||||
private static final boolean jsr107Present;
|
||||
|
||||
private static final boolean jcacheImplPresent = ClassUtils.isPresent(
|
||||
PROXY_JCACHE_CONFIGURATION_CLASS, CachingConfigurationSelector.class.getClassLoader());
|
||||
private static final boolean jcacheImplPresent;
|
||||
|
||||
static {
|
||||
ClassLoader classLoader = CachingConfigurationSelector.class.getClassLoader();
|
||||
jsr107Present = ClassUtils.isPresent("javax.cache.Cache", classLoader);
|
||||
jcacheImplPresent = ClassUtils.isPresent(PROXY_JCACHE_CONFIGURATION_CLASS, classLoader);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
|
|
|
@ -61,12 +61,16 @@ class AnnotationDrivenCacheBeanDefinitionParser implements BeanDefinitionParser
|
|||
private static final String JCACHE_ASPECT_CLASS_NAME =
|
||||
"org.springframework.cache.aspectj.JCacheCacheAspect";
|
||||
|
||||
private static final boolean jsr107Present = ClassUtils.isPresent(
|
||||
"javax.cache.Cache", AnnotationDrivenCacheBeanDefinitionParser.class.getClassLoader());
|
||||
private static final boolean jsr107Present;
|
||||
|
||||
private static final boolean jcacheImplPresent = ClassUtils.isPresent(
|
||||
"org.springframework.cache.jcache.interceptor.DefaultJCacheOperationSource",
|
||||
AnnotationDrivenCacheBeanDefinitionParser.class.getClassLoader());
|
||||
private static final boolean jcacheImplPresent;
|
||||
|
||||
static {
|
||||
ClassLoader classLoader = AnnotationDrivenCacheBeanDefinitionParser.class.getClassLoader();
|
||||
jsr107Present = ClassUtils.isPresent("javax.cache.Cache", classLoader);
|
||||
jcacheImplPresent = ClassUtils.isPresent(
|
||||
"org.springframework.cache.jcache.interceptor.DefaultJCacheOperationSource", classLoader);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
|
|
|
@ -118,12 +118,16 @@ public abstract class AnnotationConfigUtils {
|
|||
public static final String EVENT_LISTENER_FACTORY_BEAN_NAME =
|
||||
"org.springframework.context.event.internalEventListenerFactory";
|
||||
|
||||
private static final boolean jsr250Present =
|
||||
ClassUtils.isPresent("javax.annotation.Resource", AnnotationConfigUtils.class.getClassLoader());
|
||||
private static final boolean jsr250Present;
|
||||
|
||||
private static final boolean jpaPresent =
|
||||
ClassUtils.isPresent("javax.persistence.EntityManagerFactory", AnnotationConfigUtils.class.getClassLoader()) &&
|
||||
ClassUtils.isPresent(PERSISTENCE_ANNOTATION_PROCESSOR_CLASS_NAME, AnnotationConfigUtils.class.getClassLoader());
|
||||
private static final boolean jpaPresent;
|
||||
|
||||
static {
|
||||
ClassLoader classLoader = AnnotationConfigUtils.class.getClassLoader();
|
||||
jsr250Present = ClassUtils.isPresent("javax.annotation.Resource", classLoader);
|
||||
jpaPresent = ClassUtils.isPresent("javax.persistence.EntityManagerFactory", classLoader) &&
|
||||
ClassUtils.isPresent(PERSISTENCE_ANNOTATION_PROCESSOR_CLASS_NAME, classLoader);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2017 the original author or authors.
|
||||
* Copyright 2002-2018 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.
|
||||
|
@ -49,11 +49,15 @@ class MBeanServerBeanDefinitionParser extends AbstractBeanDefinitionParser {
|
|||
private static final String AGENT_ID_ATTRIBUTE = "agent-id";
|
||||
|
||||
|
||||
private static final boolean weblogicPresent = ClassUtils.isPresent(
|
||||
"weblogic.management.Helper", MBeanServerBeanDefinitionParser.class.getClassLoader());
|
||||
private static final boolean weblogicPresent;
|
||||
|
||||
private static final boolean webspherePresent = ClassUtils.isPresent(
|
||||
"com.ibm.websphere.management.AdminServiceFactory", MBeanServerBeanDefinitionParser.class.getClassLoader());
|
||||
private static final boolean webspherePresent;
|
||||
|
||||
static {
|
||||
ClassLoader classLoader = MBeanServerBeanDefinitionParser.class.getClassLoader();
|
||||
weblogicPresent = ClassUtils.isPresent("weblogic.management.Helper", classLoader);
|
||||
webspherePresent = ClassUtils.isPresent("com.ibm.websphere.management.AdminServiceFactory", classLoader);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
|
|
|
@ -47,11 +47,15 @@ import org.springframework.util.StringValueResolver;
|
|||
*/
|
||||
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.LocalDate", classLoader);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
|
|
|
@ -55,11 +55,15 @@ import org.springframework.util.ClassUtils;
|
|||
public class AnnotationTransactionAttributeSource extends AbstractFallbackTransactionAttributeSource
|
||||
implements Serializable {
|
||||
|
||||
private static final boolean jta12Present = ClassUtils.isPresent(
|
||||
"javax.transaction.Transactional", AnnotationTransactionAttributeSource.class.getClassLoader());
|
||||
private static final boolean jta12Present;
|
||||
|
||||
private static final boolean ejb3Present = ClassUtils.isPresent(
|
||||
"javax.ejb.TransactionAttribute", AnnotationTransactionAttributeSource.class.getClassLoader());
|
||||
private static final boolean ejb3Present;
|
||||
|
||||
static {
|
||||
ClassLoader classLoader = AnnotationTransactionAttributeSource.class.getClassLoader();
|
||||
jta12Present = ClassUtils.isPresent("javax.transaction.Transactional", classLoader);
|
||||
ejb3Present = ClassUtils.isPresent("javax.ejb.TransactionAttribute", classLoader);
|
||||
}
|
||||
|
||||
private final boolean publicMethodsOnly;
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2017 the original author or authors.
|
||||
* Copyright 2002-2018 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.
|
||||
|
@ -44,11 +44,15 @@ public class JtaTransactionManagerFactoryBean implements FactoryBean<JtaTransact
|
|||
"org.springframework.transaction.jta.JtaTransactionManager";
|
||||
|
||||
|
||||
private static final boolean weblogicPresent = ClassUtils.isPresent(
|
||||
"weblogic.transaction.UserTransaction", JtaTransactionManagerFactoryBean.class.getClassLoader());
|
||||
private static final boolean weblogicPresent;
|
||||
|
||||
private static final boolean webspherePresent = ClassUtils.isPresent(
|
||||
"com.ibm.wsspi.uow.UOWManager", JtaTransactionManagerFactoryBean.class.getClassLoader());
|
||||
private static final boolean webspherePresent;
|
||||
|
||||
static {
|
||||
ClassLoader classLoader = JtaTransactionManagerFactoryBean.class.getClassLoader();
|
||||
weblogicPresent = ClassUtils.isPresent("weblogic.transaction.UserTransaction", classLoader);
|
||||
webspherePresent = ClassUtils.isPresent("com.ibm.wsspi.uow.UOWManager", classLoader);
|
||||
}
|
||||
|
||||
|
||||
@Nullable
|
||||
|
|
|
@ -56,23 +56,22 @@ import org.springframework.util.ClassUtils;
|
|||
*/
|
||||
class BaseDefaultCodecs implements CodecConfigurer.DefaultCodecs {
|
||||
|
||||
private static final ClassLoader classLoader = BaseCodecConfigurer.class.getClassLoader();
|
||||
static final boolean jackson2Present;
|
||||
|
||||
static final boolean jackson2Present =
|
||||
ClassUtils.isPresent("com.fasterxml.jackson.databind.ObjectMapper",
|
||||
BaseCodecConfigurer.class.getClassLoader()) &&
|
||||
ClassUtils.isPresent("com.fasterxml.jackson.core.JsonGenerator",
|
||||
classLoader);
|
||||
private static final boolean jackson2SmilePresent;
|
||||
|
||||
private static final boolean jackson2SmilePresent =
|
||||
ClassUtils.isPresent("com.fasterxml.jackson.dataformat.smile.SmileFactory",
|
||||
classLoader);
|
||||
private static final boolean jaxb2Present;
|
||||
|
||||
private static final boolean jaxb2Present =
|
||||
ClassUtils.isPresent("javax.xml.bind.Binder", classLoader);
|
||||
private static final boolean protobufPresent;
|
||||
|
||||
private static final boolean protobufPresent =
|
||||
ClassUtils.isPresent("com.google.protobuf.Message", classLoader);
|
||||
static {
|
||||
ClassLoader classLoader = BaseCodecConfigurer.class.getClassLoader();
|
||||
jackson2Present = ClassUtils.isPresent("com.fasterxml.jackson.databind.ObjectMapper", classLoader) &&
|
||||
ClassUtils.isPresent("com.fasterxml.jackson.core.JsonGenerator", classLoader);
|
||||
jackson2SmilePresent = ClassUtils.isPresent("com.fasterxml.jackson.dataformat.smile.SmileFactory", classLoader);
|
||||
jaxb2Present = ClassUtils.isPresent("javax.xml.bind.Binder", classLoader);
|
||||
protobufPresent = ClassUtils.isPresent("com.google.protobuf.Message", classLoader);
|
||||
}
|
||||
|
||||
|
||||
@Nullable
|
||||
|
|
|
@ -36,31 +36,28 @@ import org.springframework.util.ClassUtils;
|
|||
*/
|
||||
public class AllEncompassingFormHttpMessageConverter extends FormHttpMessageConverter {
|
||||
|
||||
private static final boolean jaxb2Present =
|
||||
ClassUtils.isPresent("javax.xml.bind.Binder",
|
||||
AllEncompassingFormHttpMessageConverter.class.getClassLoader());
|
||||
private static final boolean jaxb2Present;
|
||||
|
||||
private static final boolean jackson2Present =
|
||||
ClassUtils.isPresent("com.fasterxml.jackson.databind.ObjectMapper",
|
||||
AllEncompassingFormHttpMessageConverter.class.getClassLoader()) &&
|
||||
ClassUtils.isPresent("com.fasterxml.jackson.core.JsonGenerator",
|
||||
AllEncompassingFormHttpMessageConverter.class.getClassLoader());
|
||||
private static final boolean jackson2Present;
|
||||
|
||||
private static final boolean jackson2XmlPresent =
|
||||
ClassUtils.isPresent("com.fasterxml.jackson.dataformat.xml.XmlMapper",
|
||||
AllEncompassingFormHttpMessageConverter.class.getClassLoader());
|
||||
private static final boolean jackson2XmlPresent;
|
||||
|
||||
private static final boolean jackson2SmilePresent =
|
||||
ClassUtils.isPresent("com.fasterxml.jackson.dataformat.smile.SmileFactory",
|
||||
AllEncompassingFormHttpMessageConverter.class.getClassLoader());
|
||||
private static final boolean jackson2SmilePresent;
|
||||
|
||||
private static final boolean gsonPresent =
|
||||
ClassUtils.isPresent("com.google.gson.Gson",
|
||||
AllEncompassingFormHttpMessageConverter.class.getClassLoader());
|
||||
private static final boolean gsonPresent;
|
||||
|
||||
private static final boolean jsonbPresent =
|
||||
ClassUtils.isPresent("javax.json.bind.Jsonb",
|
||||
AllEncompassingFormHttpMessageConverter.class.getClassLoader());
|
||||
private static final boolean jsonbPresent;
|
||||
|
||||
static {
|
||||
ClassLoader classLoader = AllEncompassingFormHttpMessageConverter.class.getClassLoader();
|
||||
jaxb2Present = ClassUtils.isPresent("javax.xml.bind.Binder", classLoader);
|
||||
jackson2Present = ClassUtils.isPresent("com.fasterxml.jackson.databind.ObjectMapper", classLoader) &&
|
||||
ClassUtils.isPresent("com.fasterxml.jackson.core.JsonGenerator", classLoader);
|
||||
jackson2XmlPresent = ClassUtils.isPresent("com.fasterxml.jackson.dataformat.xml.XmlMapper", classLoader);
|
||||
jackson2SmilePresent = ClassUtils.isPresent("com.fasterxml.jackson.dataformat.smile.SmileFactory", classLoader);
|
||||
gsonPresent = ClassUtils.isPresent("com.google.gson.Gson", classLoader);
|
||||
jsonbPresent = ClassUtils.isPresent("javax.json.bind.Jsonb", classLoader);
|
||||
}
|
||||
|
||||
|
||||
public AllEncompassingFormHttpMessageConverter() {
|
||||
|
|
|
@ -127,39 +127,35 @@ import org.springframework.web.util.UriTemplateHandler;
|
|||
*/
|
||||
public class RestTemplate extends InterceptingHttpAccessor implements RestOperations {
|
||||
|
||||
private static boolean romePresent =
|
||||
ClassUtils.isPresent("com.rometools.rome.feed.WireFeed",
|
||||
RestTemplate.class.getClassLoader());
|
||||
private static boolean romePresent;
|
||||
|
||||
private static final boolean jaxb2Present =
|
||||
ClassUtils.isPresent("javax.xml.bind.Binder",
|
||||
RestTemplate.class.getClassLoader());
|
||||
private static final boolean jaxb2Present;
|
||||
|
||||
private static final boolean jackson2Present =
|
||||
ClassUtils.isPresent("com.fasterxml.jackson.databind.ObjectMapper",
|
||||
RestTemplate.class.getClassLoader()) &&
|
||||
ClassUtils.isPresent("com.fasterxml.jackson.core.JsonGenerator",
|
||||
RestTemplate.class.getClassLoader());
|
||||
private static final boolean jackson2Present;
|
||||
|
||||
private static final boolean jackson2XmlPresent =
|
||||
ClassUtils.isPresent("com.fasterxml.jackson.dataformat.xml.XmlMapper",
|
||||
RestTemplate.class.getClassLoader());
|
||||
private static final boolean jackson2XmlPresent;
|
||||
|
||||
private static final boolean jackson2SmilePresent =
|
||||
ClassUtils.isPresent("com.fasterxml.jackson.dataformat.smile.SmileFactory",
|
||||
RestTemplate.class.getClassLoader());
|
||||
private static final boolean jackson2SmilePresent;
|
||||
|
||||
private static final boolean jackson2CborPresent =
|
||||
ClassUtils.isPresent("com.fasterxml.jackson.dataformat.cbor.CBORFactory",
|
||||
RestTemplate.class.getClassLoader());
|
||||
private static final boolean jackson2CborPresent;
|
||||
|
||||
private static final boolean gsonPresent =
|
||||
ClassUtils.isPresent("com.google.gson.Gson",
|
||||
RestTemplate.class.getClassLoader());
|
||||
private static final boolean gsonPresent;
|
||||
|
||||
private static final boolean jsonbPresent =
|
||||
ClassUtils.isPresent("javax.json.bind.Jsonb",
|
||||
RestTemplate.class.getClassLoader());
|
||||
private static final boolean jsonbPresent;
|
||||
|
||||
static {
|
||||
ClassLoader classLoader = RestTemplate.class.getClassLoader();
|
||||
romePresent = ClassUtils.isPresent("com.rometools.rome.feed.WireFeed", classLoader);
|
||||
jaxb2Present = ClassUtils.isPresent("javax.xml.bind.Binder", classLoader);
|
||||
jackson2Present =
|
||||
ClassUtils.isPresent("com.fasterxml.jackson.databind.ObjectMapper", classLoader) &&
|
||||
ClassUtils.isPresent("com.fasterxml.jackson.core.JsonGenerator", classLoader);
|
||||
jackson2XmlPresent = ClassUtils.isPresent("com.fasterxml.jackson.dataformat.xml.XmlMapper", classLoader);
|
||||
jackson2SmilePresent = ClassUtils.isPresent("com.fasterxml.jackson.dataformat.smile.SmileFactory", classLoader);
|
||||
jackson2CborPresent = ClassUtils.isPresent("com.fasterxml.jackson.dataformat.cbor.CBORFactory", classLoader);
|
||||
gsonPresent = ClassUtils.isPresent("com.google.gson.Gson", classLoader);
|
||||
jsonbPresent = ClassUtils.isPresent("javax.json.bind.Jsonb", classLoader);
|
||||
}
|
||||
|
||||
|
||||
private final List<HttpMessageConverter<?>> messageConverters = new ArrayList<>();
|
||||
|
|
|
@ -63,21 +63,21 @@ public class HandshakeWebSocketService implements WebSocketService, Lifecycle {
|
|||
private static final Mono<Map<String, Object>> EMPTY_ATTRIBUTES = Mono.just(Collections.emptyMap());
|
||||
|
||||
|
||||
private static final boolean tomcatPresent = ClassUtils.isPresent(
|
||||
"org.apache.tomcat.websocket.server.WsHttpUpgradeHandler",
|
||||
HandshakeWebSocketService.class.getClassLoader());
|
||||
private static final boolean tomcatPresent;
|
||||
|
||||
private static final boolean jettyPresent = ClassUtils.isPresent(
|
||||
"org.eclipse.jetty.websocket.server.WebSocketServerFactory",
|
||||
HandshakeWebSocketService.class.getClassLoader());
|
||||
private static final boolean jettyPresent;
|
||||
|
||||
private static final boolean undertowPresent = ClassUtils.isPresent(
|
||||
"io.undertow.websockets.WebSocketProtocolHandshakeHandler",
|
||||
HandshakeWebSocketService.class.getClassLoader());
|
||||
private static final boolean undertowPresent;
|
||||
|
||||
private static final boolean reactorNettyPresent = ClassUtils.isPresent(
|
||||
"reactor.netty.http.server.HttpServerResponse",
|
||||
HandshakeWebSocketService.class.getClassLoader());
|
||||
private static final boolean reactorNettyPresent;
|
||||
|
||||
static {
|
||||
ClassLoader classLoader = HandshakeWebSocketService.class.getClassLoader();
|
||||
tomcatPresent = ClassUtils.isPresent("org.apache.tomcat.websocket.server.WsHttpUpgradeHandler", classLoader);
|
||||
jettyPresent = ClassUtils.isPresent("org.eclipse.jetty.websocket.server.WebSocketServerFactory", classLoader);
|
||||
undertowPresent = ClassUtils.isPresent("io.undertow.websockets.WebSocketProtocolHandshakeHandler", classLoader);
|
||||
reactorNettyPresent = ClassUtils.isPresent("reactor.netty.http.server.HttpServerResponse", classLoader);
|
||||
}
|
||||
|
||||
|
||||
protected static final Log logger = LogFactory.getLog(HandshakeWebSocketService.class);
|
||||
|
|
|
@ -160,39 +160,34 @@ class AnnotationDrivenBeanDefinitionParser implements BeanDefinitionParser {
|
|||
public static final String CONTENT_NEGOTIATION_MANAGER_BEAN_NAME = "mvcContentNegotiationManager";
|
||||
|
||||
|
||||
private static final boolean javaxValidationPresent =
|
||||
ClassUtils.isPresent("javax.validation.Validator",
|
||||
AnnotationDrivenBeanDefinitionParser.class.getClassLoader());
|
||||
private static final boolean javaxValidationPresent;
|
||||
|
||||
private static boolean romePresent =
|
||||
ClassUtils.isPresent("com.rometools.rome.feed.WireFeed",
|
||||
AnnotationDrivenBeanDefinitionParser.class.getClassLoader());
|
||||
private static boolean romePresent;
|
||||
|
||||
private static final boolean jaxb2Present =
|
||||
ClassUtils.isPresent("javax.xml.bind.Binder",
|
||||
AnnotationDrivenBeanDefinitionParser.class.getClassLoader());
|
||||
private static final boolean jaxb2Present;
|
||||
|
||||
private static final boolean jackson2Present =
|
||||
ClassUtils.isPresent("com.fasterxml.jackson.databind.ObjectMapper",
|
||||
AnnotationDrivenBeanDefinitionParser.class.getClassLoader()) &&
|
||||
ClassUtils.isPresent("com.fasterxml.jackson.core.JsonGenerator",
|
||||
AnnotationDrivenBeanDefinitionParser.class.getClassLoader());
|
||||
private static final boolean jackson2Present;
|
||||
|
||||
private static final boolean jackson2XmlPresent =
|
||||
ClassUtils.isPresent("com.fasterxml.jackson.dataformat.xml.XmlMapper",
|
||||
AnnotationDrivenBeanDefinitionParser.class.getClassLoader());
|
||||
private static final boolean jackson2XmlPresent;
|
||||
|
||||
private static final boolean jackson2SmilePresent =
|
||||
ClassUtils.isPresent("com.fasterxml.jackson.dataformat.smile.SmileFactory",
|
||||
AnnotationDrivenBeanDefinitionParser.class.getClassLoader());
|
||||
private static final boolean jackson2SmilePresent;
|
||||
|
||||
private static final boolean jackson2CborPresent =
|
||||
ClassUtils.isPresent("com.fasterxml.jackson.dataformat.cbor.CBORFactory",
|
||||
AnnotationDrivenBeanDefinitionParser.class.getClassLoader());
|
||||
private static final boolean jackson2CborPresent;
|
||||
|
||||
private static final boolean gsonPresent =
|
||||
ClassUtils.isPresent("com.google.gson.Gson",
|
||||
AnnotationDrivenBeanDefinitionParser.class.getClassLoader());
|
||||
private static final boolean gsonPresent;
|
||||
|
||||
static {
|
||||
ClassLoader classLoader = AnnotationDrivenBeanDefinitionParser.class.getClassLoader();
|
||||
javaxValidationPresent = ClassUtils.isPresent("javax.validation.Validator", classLoader);
|
||||
romePresent = ClassUtils.isPresent("com.rometools.rome.feed.WireFeed", classLoader);
|
||||
jaxb2Present = ClassUtils.isPresent("javax.xml.bind.Binder", classLoader);
|
||||
jackson2Present = ClassUtils.isPresent("com.fasterxml.jackson.databind.ObjectMapper", classLoader) &&
|
||||
ClassUtils.isPresent("com.fasterxml.jackson.core.JsonGenerator", classLoader);
|
||||
jackson2XmlPresent = ClassUtils.isPresent("com.fasterxml.jackson.dataformat.xml.XmlMapper", classLoader);
|
||||
jackson2SmilePresent = ClassUtils.isPresent("com.fasterxml.jackson.dataformat.smile.SmileFactory", classLoader);
|
||||
jackson2CborPresent = ClassUtils.isPresent("com.fasterxml.jackson.dataformat.cbor.CBORFactory", classLoader);
|
||||
gsonPresent = ClassUtils.isPresent("com.google.gson.Gson", classLoader);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
|
|
|
@ -172,39 +172,34 @@ import org.springframework.web.util.UrlPathHelper;
|
|||
*/
|
||||
public class WebMvcConfigurationSupport implements ApplicationContextAware, ServletContextAware {
|
||||
|
||||
private static boolean romePresent =
|
||||
ClassUtils.isPresent("com.rometools.rome.feed.WireFeed",
|
||||
WebMvcConfigurationSupport.class.getClassLoader());
|
||||
private static boolean romePresent;
|
||||
|
||||
private static final boolean jaxb2Present =
|
||||
ClassUtils.isPresent("javax.xml.bind.Binder",
|
||||
WebMvcConfigurationSupport.class.getClassLoader());
|
||||
private static final boolean jaxb2Present;
|
||||
|
||||
private static final boolean jackson2Present =
|
||||
ClassUtils.isPresent("com.fasterxml.jackson.databind.ObjectMapper",
|
||||
WebMvcConfigurationSupport.class.getClassLoader()) &&
|
||||
ClassUtils.isPresent("com.fasterxml.jackson.core.JsonGenerator",
|
||||
WebMvcConfigurationSupport.class.getClassLoader());
|
||||
private static final boolean jackson2Present;
|
||||
|
||||
private static final boolean jackson2XmlPresent =
|
||||
ClassUtils.isPresent("com.fasterxml.jackson.dataformat.xml.XmlMapper",
|
||||
WebMvcConfigurationSupport.class.getClassLoader());
|
||||
private static final boolean jackson2XmlPresent;
|
||||
|
||||
private static final boolean jackson2SmilePresent =
|
||||
ClassUtils.isPresent("com.fasterxml.jackson.dataformat.smile.SmileFactory",
|
||||
WebMvcConfigurationSupport.class.getClassLoader());
|
||||
private static final boolean jackson2SmilePresent;
|
||||
|
||||
private static final boolean jackson2CborPresent =
|
||||
ClassUtils.isPresent("com.fasterxml.jackson.dataformat.cbor.CBORFactory",
|
||||
WebMvcConfigurationSupport.class.getClassLoader());
|
||||
private static final boolean jackson2CborPresent;
|
||||
|
||||
private static final boolean gsonPresent =
|
||||
ClassUtils.isPresent("com.google.gson.Gson",
|
||||
WebMvcConfigurationSupport.class.getClassLoader());
|
||||
private static final boolean gsonPresent;
|
||||
|
||||
private static final boolean jsonbPresent =
|
||||
ClassUtils.isPresent("javax.json.bind.Jsonb",
|
||||
WebMvcConfigurationSupport.class.getClassLoader());
|
||||
private static final boolean jsonbPresent;
|
||||
|
||||
static {
|
||||
ClassLoader classLoader = WebMvcConfigurationSupport.class.getClassLoader();
|
||||
romePresent = ClassUtils.isPresent("com.rometools.rome.feed.WireFeed", classLoader);
|
||||
jaxb2Present = ClassUtils.isPresent("javax.xml.bind.Binder", classLoader);
|
||||
jackson2Present = ClassUtils.isPresent("com.fasterxml.jackson.databind.ObjectMapper", classLoader) &&
|
||||
ClassUtils.isPresent("com.fasterxml.jackson.core.JsonGenerator", classLoader);
|
||||
jackson2XmlPresent = ClassUtils.isPresent("com.fasterxml.jackson.dataformat.xml.XmlMapper", classLoader);
|
||||
jackson2SmilePresent = ClassUtils.isPresent("com.fasterxml.jackson.dataformat.smile.SmileFactory", classLoader);
|
||||
jackson2CborPresent = ClassUtils.isPresent("com.fasterxml.jackson.dataformat.cbor.CBORFactory", classLoader);
|
||||
gsonPresent = ClassUtils.isPresent("com.google.gson.Gson", classLoader);
|
||||
jsonbPresent = ClassUtils.isPresent("javax.json.bind.Jsonb", classLoader);
|
||||
}
|
||||
|
||||
|
||||
@Nullable
|
||||
|
|
|
@ -111,11 +111,15 @@ class MessageBrokerBeanDefinitionParser implements BeanDefinitionParser {
|
|||
|
||||
private static final int DEFAULT_MAPPING_ORDER = 1;
|
||||
|
||||
private static final boolean jackson2Present = ClassUtils.isPresent(
|
||||
"com.fasterxml.jackson.databind.ObjectMapper", MessageBrokerBeanDefinitionParser.class.getClassLoader());
|
||||
private static final boolean jackson2Present;
|
||||
|
||||
private static final boolean javaxValidationPresent =
|
||||
ClassUtils.isPresent("javax.validation.Validator", MessageBrokerBeanDefinitionParser.class.getClassLoader());
|
||||
private static final boolean javaxValidationPresent;
|
||||
|
||||
static {
|
||||
ClassLoader classLoader = MessageBrokerBeanDefinitionParser.class.getClassLoader();
|
||||
jackson2Present = ClassUtils.isPresent("com.fasterxml.jackson.databind.ObjectMapper", classLoader);
|
||||
javaxValidationPresent = ClassUtils.isPresent("javax.validation.Validator", classLoader);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
|
|
|
@ -71,23 +71,34 @@ import org.springframework.web.socket.server.RequestUpgradeStrategy;
|
|||
*/
|
||||
public abstract class AbstractHandshakeHandler implements HandshakeHandler, Lifecycle {
|
||||
|
||||
private static final boolean jettyWsPresent = ClassUtils.isPresent(
|
||||
"org.eclipse.jetty.websocket.server.WebSocketServerFactory", AbstractHandshakeHandler.class.getClassLoader());
|
||||
private static final boolean jettyWsPresent;
|
||||
|
||||
private static final boolean tomcatWsPresent = ClassUtils.isPresent(
|
||||
"org.apache.tomcat.websocket.server.WsHttpUpgradeHandler", AbstractHandshakeHandler.class.getClassLoader());
|
||||
private static final boolean tomcatWsPresent;
|
||||
|
||||
private static final boolean undertowWsPresent = ClassUtils.isPresent(
|
||||
"io.undertow.websockets.jsr.ServerWebSocketContainer", AbstractHandshakeHandler.class.getClassLoader());
|
||||
private static final boolean undertowWsPresent;
|
||||
|
||||
private static final boolean glassfishWsPresent = ClassUtils.isPresent(
|
||||
"org.glassfish.tyrus.servlet.TyrusHttpUpgradeHandler", AbstractHandshakeHandler.class.getClassLoader());
|
||||
private static final boolean glassfishWsPresent;
|
||||
|
||||
private static final boolean weblogicWsPresent = ClassUtils.isPresent(
|
||||
"weblogic.websocket.tyrus.TyrusServletWriter", AbstractHandshakeHandler.class.getClassLoader());
|
||||
private static final boolean weblogicWsPresent;
|
||||
|
||||
private static final boolean websphereWsPresent = ClassUtils.isPresent(
|
||||
"com.ibm.websphere.wsoc.WsWsocServerContainer", AbstractHandshakeHandler.class.getClassLoader());
|
||||
private static final boolean websphereWsPresent;
|
||||
|
||||
static {
|
||||
ClassLoader classLoader = AbstractHandshakeHandler.class.getClassLoader();
|
||||
jettyWsPresent = ClassUtils.isPresent(
|
||||
"org.eclipse.jetty.websocket.server.WebSocketServerFactory", classLoader);
|
||||
tomcatWsPresent = ClassUtils.isPresent(
|
||||
"org.apache.tomcat.websocket.server.WsHttpUpgradeHandler", classLoader);
|
||||
undertowWsPresent = ClassUtils.isPresent(
|
||||
"io.undertow.websockets.jsr.ServerWebSocketContainer", classLoader);
|
||||
glassfishWsPresent = ClassUtils.isPresent(
|
||||
"org.glassfish.tyrus.servlet.TyrusHttpUpgradeHandler", classLoader);
|
||||
weblogicWsPresent = ClassUtils.isPresent(
|
||||
"weblogic.websocket.tyrus.TyrusServletWriter", classLoader);
|
||||
websphereWsPresent = ClassUtils.isPresent(
|
||||
"com.ibm.websphere.wsoc.WsWsocServerContainer", classLoader);
|
||||
|
||||
}
|
||||
|
||||
|
||||
protected final Log logger = LogFactory.getLog(getClass());
|
||||
|
|
Loading…
Reference in New Issue