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 add0e542bb..9aaaf253f2 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 @@ -22,6 +22,7 @@ import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.support.BeanDefinitionReaderUtils; import org.springframework.beans.factory.support.BeanDefinitionRegistry; import org.springframework.beans.factory.support.ManagedSet; +import org.springframework.context.ApplicationContextException; import org.springframework.context.annotation.ImportBeanDefinitionRegistrar; import org.springframework.core.type.AnnotationMetadata; import org.springframework.integration.aop.PublisherAnnotationBeanPostProcessor; @@ -29,6 +30,7 @@ import org.springframework.integration.config.annotation.MessagingAnnotationPost import org.springframework.integration.context.IntegrationContextUtils; import org.springframework.integration.context.IntegrationProperties; import org.springframework.lang.Nullable; +import org.springframework.util.ClassUtils; /** * {@link ImportBeanDefinitionRegistrar} implementation that configures integration infrastructure. @@ -40,6 +42,17 @@ import org.springframework.lang.Nullable; */ public class IntegrationRegistrar implements ImportBeanDefinitionRegistrar { + 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}