From ce42e56d7ec59da98bb8d3ed969b4d6dffa8456b Mon Sep 17 00:00:00 2001 From: Artem Bilan Date: Thu, 8 Nov 2018 13:33:23 -0500 Subject: [PATCH] INT-4551: Fail if old Java DSL jar is present JIRA: https://jira.spring.io/browse/INT-4551 **Cherry-pick to 5.0.x** --- .../integration/config/IntegrationRegistrar.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/spring-integration-core/src/main/java/org/springframework/integration/config/IntegrationRegistrar.java b/spring-integration-core/src/main/java/org/springframework/integration/config/IntegrationRegistrar.java index 9165c89e46..62828a936c 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/config/IntegrationRegistrar.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/config/IntegrationRegistrar.java @@ -38,6 +38,7 @@ import org.springframework.beans.factory.support.BeanDefinitionRegistry; import org.springframework.beans.factory.support.ManagedList; import org.springframework.beans.factory.support.ManagedSet; import org.springframework.beans.factory.support.RootBeanDefinition; +import org.springframework.context.ApplicationContextException; import org.springframework.context.annotation.ImportBeanDefinitionRegistrar; import org.springframework.core.io.Resource; import org.springframework.core.io.support.PathMatchingResourcePatternResolver; @@ -85,6 +86,17 @@ public class IntegrationRegistrar implements ImportBeanDefinitionRegistrar, Bean this.classLoader = classLoader; } + static { + if (ClassUtils.isPresent("org.springframework.integration.dsl.support.Function", + IntegrationRegistrar.class.getClassLoader())) { + + throw new ApplicationContextException("Starting with Spring Integration 5.0, " + + "the 'spring-integration-java-dsl' dependency is no longer needed; " + + "the Java DSL has been merged into the core project. " + + "Having it present it on the classpath causes class loading conflicts."); + } + } + /** * Invoked by the framework when an @EnableIntegration annotation is encountered. * Also called with {@code null} {@code importingClassMetadata} from {@code AbstractIntegrationNamespaceHandler}