Fixes according latest upgrades
* Add `--add-opens` to `asciidoctor` Gradle task to avoid compilation warning * Upgrade to Kotlin `1.6.10` and modify its Gradle task respective * Add empty impl for new `AnnotationMetadataAdapter.getDeclaredMethods()` * Parse HTTP methods to new `String methodNames` property of the `RequestMapping` since `HttpMethod` is not an `enum` anymore. * Ignore JDBC tests which rely on a map property resolution: the `[]` placeholder is not handled in the latest SF anymore. * Fix `WebFluxInboundEndpoint` for deprecations
This commit is contained in:
227
build.gradle
227
build.gradle
@@ -1,26 +1,26 @@
|
||||
buildscript {
|
||||
ext.kotlinVersion = '1.5.32'
|
||||
repositories {
|
||||
mavenCentral()
|
||||
gradlePluginPortal()
|
||||
maven { url 'https://repo.spring.io/plugins-release-local' }
|
||||
}
|
||||
dependencies {
|
||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
|
||||
classpath "org.jetbrains.kotlin:kotlin-allopen:$kotlinVersion"
|
||||
}
|
||||
ext.kotlinVersion = '1.6.10'
|
||||
repositories {
|
||||
mavenCentral()
|
||||
gradlePluginPortal()
|
||||
maven { url 'https://repo.spring.io/plugins-release-local' }
|
||||
}
|
||||
dependencies {
|
||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
|
||||
classpath "org.jetbrains.kotlin:kotlin-allopen:$kotlinVersion"
|
||||
}
|
||||
}
|
||||
|
||||
plugins {
|
||||
id 'org.sonarqube' version '2.8'
|
||||
id 'io.spring.nohttp' version '0.0.10' apply false
|
||||
id 'org.ajoberstar.grgit' version '4.1.0'
|
||||
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
|
||||
id 'com.jfrog.artifactory' version '4.24.20' apply false
|
||||
id 'org.jetbrains.dokka' version '1.5.30'
|
||||
id 'org.asciidoctor.jvm.pdf' version '3.3.2'
|
||||
id 'org.asciidoctor.jvm.gems' version '3.3.2'
|
||||
id 'org.asciidoctor.jvm.convert' version '3.3.2'
|
||||
id 'org.sonarqube' version '2.8'
|
||||
id 'io.spring.nohttp' version '0.0.10' apply false
|
||||
id 'org.ajoberstar.grgit' version '4.1.0'
|
||||
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
|
||||
id 'com.jfrog.artifactory' version '4.24.20' apply false
|
||||
id 'org.jetbrains.dokka' version '1.5.30'
|
||||
id 'org.asciidoctor.jvm.pdf' version '3.3.2'
|
||||
id 'org.asciidoctor.jvm.gems' version '3.3.2'
|
||||
id 'org.asciidoctor.jvm.convert' version '3.3.2'
|
||||
}
|
||||
|
||||
if (System.getenv('GITHUB_ACTION') || System.getenv('bamboo_buildKey')) {
|
||||
@@ -46,66 +46,67 @@ ext {
|
||||
modifiedFiles =
|
||||
files(grgit.status().unstaged.modified).filter { f -> f.name.endsWith('.java') || f.name.endsWith('.kt') }
|
||||
|
||||
apacheSshdVersion = '2.7.0'
|
||||
artemisVersion = '2.19.0'
|
||||
aspectjVersion = '1.9.7'
|
||||
assertjVersion = '3.21.0'
|
||||
assertkVersion = '0.25'
|
||||
avroVersion = '1.10.2'
|
||||
awaitilityVersion = '4.1.1'
|
||||
commonsDbcp2Version = '2.9.0'
|
||||
commonsIoVersion = '2.11.0'
|
||||
commonsNetVersion = '3.8.0'
|
||||
curatorVersion = '4.3.0'
|
||||
derbyVersion = '10.14.2.0'
|
||||
ftpServerVersion = '1.1.1'
|
||||
googleJsr305Version = '3.0.2'
|
||||
greenmailVersion = '2.0.0-alpha-2'
|
||||
groovyVersion = '3.0.9'
|
||||
hamcrestVersion = '2.2'
|
||||
hazelcastVersion = '4.2.3'
|
||||
hibernateVersion = '5.6.1.Final'
|
||||
hsqldbVersion = '2.6.0'
|
||||
h2Version = '1.4.200'
|
||||
jacksonVersion = '2.13.0'
|
||||
jaxbVersion = '3.0.2'
|
||||
jeroMqVersion = '0.5.2'
|
||||
jmsApiVersion = '3.0.0'
|
||||
jpaApiVersion = '3.0.2'
|
||||
jrubyVersion = '9.2.19.0'
|
||||
jschVersion = '0.1.55'
|
||||
jsonpathVersion = '2.6.0'
|
||||
junit4Version = '4.13.2'
|
||||
junitJupiterVersion = '5.8.1'
|
||||
jythonVersion = '2.7.2'
|
||||
kryoShadedVersion = '4.0.2'
|
||||
lettuceVersion = '6.1.6.RELEASE'
|
||||
log4jVersion = '2.17.1'
|
||||
mailVersion = '2.0.1'
|
||||
micrometerVersion = '1.7.8'
|
||||
mockitoVersion = '4.0.0'
|
||||
mongoDriverVersion = '4.4.0-beta2'
|
||||
mysqlVersion = '8.0.27'
|
||||
pahoMqttClientVersion = '1.2.5'
|
||||
postgresVersion = '42.2.23'
|
||||
r2dbch2Version='0.8.4.RELEASE'
|
||||
reactorVersion = '2020.0.14'
|
||||
resilience4jVersion = '1.7.1'
|
||||
romeToolsVersion = '1.16.0'
|
||||
rsocketVersion = '1.1.1'
|
||||
saajVersion = '2.0.1'
|
||||
servletApiVersion = '5.0.0'
|
||||
smackVersion = '4.3.5'
|
||||
springAmqpVersion = project.hasProperty('springAmqpVersion') ? project.springAmqpVersion : '3.0.0-SNAPSHOT'
|
||||
springDataVersion = project.hasProperty('springDataVersion') ? project.springDataVersion : '2022.1.0-SNAPSHOT'
|
||||
springKafkaVersion = '3.0.0-SNAPSHOT'
|
||||
springRetryVersion = '1.3.1'
|
||||
springSecurityVersion = project.hasProperty('springSecurityVersion') ? project.springSecurityVersion : '6.0.0-SNAPSHOT'
|
||||
springVersion = project.hasProperty('springVersion') ? project.springVersion : '6.0.0-SNAPSHOT'
|
||||
springWsVersion = '4.0.0-SNAPSHOT'
|
||||
tomcatVersion = '10.0.11'
|
||||
xmlUnitVersion = '2.8.3'
|
||||
xstreamVersion = '1.4.18'
|
||||
apacheSshdVersion = '2.7.0'
|
||||
artemisVersion = '2.19.0'
|
||||
aspectjVersion = '1.9.7'
|
||||
assertjVersion = '3.21.0'
|
||||
assertkVersion = '0.25'
|
||||
avroVersion = '1.10.2'
|
||||
awaitilityVersion = '4.1.1'
|
||||
commonsDbcp2Version = '2.9.0'
|
||||
commonsIoVersion = '2.11.0'
|
||||
commonsNetVersion = '3.8.0'
|
||||
curatorVersion = '4.3.0'
|
||||
derbyVersion = '10.14.2.0'
|
||||
ftpServerVersion = '1.1.1'
|
||||
googleJsr305Version = '3.0.2'
|
||||
greenmailVersion = '2.0.0-alpha-2'
|
||||
groovyVersion = '3.0.9'
|
||||
hamcrestVersion = '2.2'
|
||||
hazelcastVersion = '5.0.2'
|
||||
hibernateVersion = '5.6.1.Final'
|
||||
hsqldbVersion = '2.6.0'
|
||||
h2Version = '1.4.200'
|
||||
jacksonVersion = '2.13.0'
|
||||
jaxbVersion = '3.0.2'
|
||||
jeroMqVersion = '0.5.2'
|
||||
jmsApiVersion = '3.0.0'
|
||||
jpaApiVersion = '3.0.2'
|
||||
jrubyVersion = '9.2.19.0'
|
||||
jschVersion = '0.1.55'
|
||||
jsonpathVersion = '2.6.0'
|
||||
junit4Version = '4.13.2'
|
||||
junitJupiterVersion = '5.8.1'
|
||||
jythonVersion = '2.7.2'
|
||||
kryoShadedVersion = '4.0.2'
|
||||
lettuceVersion = '6.1.5.RELEASE'
|
||||
log4jVersion = '2.17.0'
|
||||
mailVersion = '2.0.1'
|
||||
micrometerVersion = '1.7.7'
|
||||
mockitoVersion = '4.0.0'
|
||||
mongoDriverVersion = '4.4.0'
|
||||
mysqlVersion = '8.0.27'
|
||||
pahoMqttClientVersion = '1.2.5'
|
||||
postgresVersion = '42.2.23'
|
||||
r2dbch2Version = '0.9.0.M1'
|
||||
reactorVersion = '2020.0.14'
|
||||
resilience4jVersion = '1.7.1'
|
||||
romeToolsVersion = '1.16.0'
|
||||
rsocketVersion = '1.1.1'
|
||||
saajVersion = '2.0.1'
|
||||
servletApiVersion = '5.0.0'
|
||||
smackVersion = '4.3.5'
|
||||
springAmqpVersion = project.hasProperty('springAmqpVersion') ? project.springAmqpVersion : '3.0.0-SNAPSHOT'
|
||||
springDataVersion = project.hasProperty('springDataVersion') ? project.springDataVersion : '2022.1.0-SNAPSHOT'
|
||||
springKafkaVersion = '3.0.0-SNAPSHOT'
|
||||
springRetryVersion = '1.3.1'
|
||||
springSecurityVersion = project.hasProperty('springSecurityVersion') ? project.springSecurityVersion : '6.0.0-SNAPSHOT'
|
||||
springVersion = project.hasProperty('springVersion') ? project.springVersion : '6.0.0-SNAPSHOT'
|
||||
springWsVersion = '4.0.0-SNAPSHOT'
|
||||
testcontainersVersion = '1.16.2'
|
||||
tomcatVersion = '10.0.11'
|
||||
xmlUnitVersion = '2.8.4'
|
||||
xstreamVersion = '1.4.18'
|
||||
|
||||
javaProjects = subprojects - project(':spring-integration-bom')
|
||||
}
|
||||
@@ -204,14 +205,18 @@ configure(javaProjects) { subproject ->
|
||||
|
||||
compileKotlin {
|
||||
kotlinOptions {
|
||||
languageVersion = '1.6'
|
||||
apiVersion = '1.6'
|
||||
jvmTarget = '16'
|
||||
freeCompilerArgs = ['-Xjsr305=strict']
|
||||
freeCompilerArgs = ['-Xjsr305=strict', '-Xsuppress-version-warnings', '-Xopt-in=kotlin.RequiresOptIn']
|
||||
allWarningsAsErrors = true
|
||||
}
|
||||
}
|
||||
|
||||
compileTestKotlin {
|
||||
kotlinOptions {
|
||||
jvmTarget = '16'
|
||||
freeCompilerArgs = ['-Xjsr305=strict']
|
||||
}
|
||||
}
|
||||
|
||||
@@ -255,10 +260,10 @@ configure(javaProjects) { subproject ->
|
||||
testImplementation("com.willowtreeapps.assertk:assertk-jvm:$assertkVersion") {
|
||||
exclude group: 'org.jetbrains.kotlin'
|
||||
}
|
||||
testImplementation 'org.jetbrains.kotlin:kotlin-reflect'
|
||||
testImplementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8'
|
||||
testImplementation 'io.projectreactor:reactor-test'
|
||||
testImplementation "org.testcontainers:junit-jupiter:$testcontainersVersion"
|
||||
testImplementation 'org.jetbrains.kotlin:kotlin-reflect'
|
||||
testImplementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8'
|
||||
testImplementation 'io.projectreactor:reactor-test'
|
||||
testImplementation "org.testcontainers:junit-jupiter:$testcontainersVersion"
|
||||
|
||||
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'
|
||||
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
|
||||
@@ -349,10 +354,10 @@ configure(javaProjects) { subproject ->
|
||||
enableAssertions = false
|
||||
}
|
||||
|
||||
checkstyle {
|
||||
configDirectory.set(rootProject.file('src/checkstyle'))
|
||||
toolVersion = project.hasProperty('checkstyleVersion') ? project.checkstyleVersion : '9.2'
|
||||
}
|
||||
checkstyle {
|
||||
configDirectory.set(rootProject.file('src/checkstyle'))
|
||||
toolVersion = project.hasProperty('checkstyleVersion') ? project.checkstyleVersion : '9.2'
|
||||
}
|
||||
|
||||
jar {
|
||||
manifest {
|
||||
@@ -490,25 +495,25 @@ project('spring-integration-core') {
|
||||
}
|
||||
}
|
||||
|
||||
dokkaHtmlPartial {
|
||||
outputDirectory.set(new File(buildDir, 'docs/kdoc'))
|
||||
dokkaSourceSets {
|
||||
main {
|
||||
sourceRoots.setFrom(file('src/main/kotlin'))
|
||||
classpath.from(sourceSets['main'].runtimeClasspath)
|
||||
externalDocumentationLink {
|
||||
url.set(new URL("https://docs.spring.io/spring-integration/docs/$version/api/"))
|
||||
packageListUrl.set(file("$buildDir/docs/javadoc/element-list").toURI().toURL())
|
||||
}
|
||||
externalDocumentationLink {
|
||||
url.set(new URL('https://projectreactor.io/docs/core/release/api/'))
|
||||
}
|
||||
externalDocumentationLink {
|
||||
url.set(new URL('https://www.reactive-streams.org/reactive-streams-1.0.3-javadoc/'))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
dokkaHtmlPartial {
|
||||
outputDirectory.set(new File(buildDir, 'docs/kdoc'))
|
||||
dokkaSourceSets {
|
||||
main {
|
||||
sourceRoots.setFrom(file('src/main/kotlin'))
|
||||
classpath.from(sourceSets['main'].runtimeClasspath)
|
||||
externalDocumentationLink {
|
||||
url.set(new URL("https://docs.spring.io/spring-integration/docs/$version/api/"))
|
||||
packageListUrl.set(file("$buildDir/docs/javadoc/element-list").toURI().toURL())
|
||||
}
|
||||
externalDocumentationLink {
|
||||
url.set(new URL('https://projectreactor.io/docs/core/release/api/'))
|
||||
}
|
||||
externalDocumentationLink {
|
||||
url.set(new URL('https://www.reactive-streams.org/reactive-streams-1.0.3-javadoc/'))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
project('spring-integration-event') {
|
||||
@@ -634,7 +639,7 @@ project('spring-integration-jdbc') {
|
||||
testImplementation "org.postgresql:postgresql:$postgresVersion"
|
||||
testImplementation "mysql:mysql-connector-java:$mysqlVersion"
|
||||
testImplementation "org.apache.commons:commons-dbcp2:$commonsDbcp2Version"
|
||||
testImplementation "org.testcontainers:mysql:$testcontainersVersion"
|
||||
testImplementation "org.testcontainers:mysql:$testcontainersVersion"
|
||||
|
||||
testRuntimeOnly 'com.fasterxml.jackson.core:jackson-databind'
|
||||
}
|
||||
@@ -1042,9 +1047,9 @@ task api(type: Javadoc) {
|
||||
}
|
||||
|
||||
dokkaHtmlMultiModule {
|
||||
dependsOn api
|
||||
moduleName.set('spring-integration')
|
||||
outputDirectory.set(file("$buildDir/docs/kdoc"))
|
||||
dependsOn api
|
||||
moduleName.set('spring-integration')
|
||||
outputDirectory.set(file("$buildDir/docs/kdoc"))
|
||||
}
|
||||
|
||||
apply from: "${rootDir}/gradle/docs.gradle"
|
||||
|
||||
@@ -3,3 +3,4 @@ org.gradle.jvmargs=-Xmx1536M -Dfile.encoding=UTF-8
|
||||
org.gradle.caching=true
|
||||
org.gradle.parallel=true
|
||||
kotlin.stdlib.default.dependency=false
|
||||
kotlin.jvm.target.validation.mode=IGNORE
|
||||
@@ -108,6 +108,10 @@ asciidoctorj {
|
||||
|
||||
asciidoctor {
|
||||
dependsOn asciidoctorPdf
|
||||
inProcess = JAVA_EXEC
|
||||
forkOptions {
|
||||
jvmArgs '--add-opens', 'java.base/sun.nio.ch=ALL-UNNAMED', '--add-opens', 'java.base/java.io=ALL-UNNAMED'
|
||||
}
|
||||
baseDirFollowsSourceFile()
|
||||
configurations 'asciidoctorExt'
|
||||
sourceDir "$buildDir/asciidoc"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2021 the original author or authors.
|
||||
* Copyright 2002-2022 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.
|
||||
@@ -18,6 +18,7 @@ package org.springframework.integration.config.xml;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
@@ -25,6 +26,7 @@ import org.springframework.beans.factory.config.BeanDefinition;
|
||||
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
|
||||
import org.springframework.beans.factory.xml.BeanDefinitionParser;
|
||||
import org.springframework.beans.factory.xml.ParserContext;
|
||||
import org.springframework.core.type.MethodMetadata;
|
||||
import org.springframework.integration.config.EnablePublisher;
|
||||
import org.springframework.integration.config.IntegrationRegistrar;
|
||||
import org.springframework.integration.config.PublisherRegistrar;
|
||||
@@ -84,6 +86,12 @@ public class AnnotationConfigParser implements BeanDefinitionParser {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Set<MethodMetadata> getDeclaredMethods() {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2022 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.
|
||||
@@ -18,12 +18,14 @@ package org.springframework.integration.config.xml;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
import org.springframework.beans.factory.config.BeanDefinition;
|
||||
import org.springframework.beans.factory.xml.BeanDefinitionParser;
|
||||
import org.springframework.beans.factory.xml.ParserContext;
|
||||
import org.springframework.core.type.MethodMetadata;
|
||||
import org.springframework.integration.config.MessageHistoryRegistrar;
|
||||
import org.springframework.integration.config.annotation.AnnotationMetadataAdapter;
|
||||
|
||||
@@ -51,6 +53,11 @@ public class MessageHistoryParser implements BeanDefinitionParser {
|
||||
return Collections.singletonMap("value", element.getAttribute("tracked-components"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<MethodMetadata> getDeclaredMethods() {
|
||||
return null;
|
||||
}
|
||||
|
||||
}, parserContext.getRegistry());
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2021 the original author or authors.
|
||||
* Copyright 2021-2022 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.
|
||||
@@ -84,7 +84,7 @@ class KotlinFileAggregatorTests {
|
||||
this.fileSplitterAggregatorFlow.send(GenericMessage(file))
|
||||
val receive = this.resultChannel.receive(10000)
|
||||
assertThat(receive).isNotNull()
|
||||
assertThat(receive.headers)
|
||||
assertThat(receive!!.headers)
|
||||
.all {
|
||||
contains(FileHeaders.FILENAME, "foo.txt")
|
||||
contains(FileHeaders.LINE_COUNT, 3L)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2020 the original author or authors.
|
||||
* Copyright 2002-2022 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.
|
||||
@@ -239,7 +239,7 @@ public class HttpInboundEndpointParser extends AbstractSingleBeanDefinitionParse
|
||||
|
||||
String methods = element.getAttribute("supported-methods");
|
||||
if (StringUtils.hasText(methods)) {
|
||||
requestMappingDefBuilder.addPropertyValue("methods", methods.toUpperCase());
|
||||
requestMappingDefBuilder.addPropertyValue("methodNames", methods.toUpperCase());
|
||||
}
|
||||
|
||||
IntegrationNamespaceUtils.setValueIfAttributeDefined(requestMappingDefBuilder, element, "path", "pathPatterns");
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2016-2021 the original author or authors.
|
||||
* Copyright 2016-2022 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.
|
||||
@@ -18,12 +18,14 @@ package org.springframework.integration.http.config;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
import org.springframework.beans.factory.config.BeanDefinition;
|
||||
import org.springframework.beans.factory.xml.BeanDefinitionParser;
|
||||
import org.springframework.beans.factory.xml.ParserContext;
|
||||
import org.springframework.core.type.MethodMetadata;
|
||||
import org.springframework.integration.config.annotation.AnnotationMetadataAdapter;
|
||||
|
||||
/**
|
||||
@@ -48,6 +50,11 @@ public class IntegrationGraphControllerParser implements BeanDefinitionParser {
|
||||
return Collections.singletonMap("value", element.getAttribute("path"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<MethodMetadata> getDeclaredMethods() {
|
||||
return null;
|
||||
}
|
||||
|
||||
}, parserContext.getRegistry());
|
||||
|
||||
return null;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2013-2019 the original author or authors.
|
||||
* Copyright 2013-2022 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.
|
||||
@@ -67,6 +67,16 @@ public class RequestMapping {
|
||||
return this.pathPatterns; // NOSONAR - expose internals
|
||||
}
|
||||
|
||||
/**
|
||||
* Configure a set of supported HTTP methods from their string representations.
|
||||
* @param supportedMethods the array of HTTP method names.
|
||||
* @since 6.0
|
||||
*/
|
||||
public void setMethodNames(String... supportedMethods) {
|
||||
Assert.notEmpty(supportedMethods, "at least one supported methods is required");
|
||||
setMethods(Arrays.stream(supportedMethods).map(HttpMethod::valueOf).toArray(HttpMethod[]::new));
|
||||
}
|
||||
|
||||
public void setMethods(HttpMethod... supportedMethods) {
|
||||
Assert.notEmpty(supportedMethods, "at least one supported methods is required");
|
||||
this.methods = Arrays.copyOf(supportedMethods, supportedMethods.length);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2022 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.
|
||||
@@ -17,7 +17,6 @@
|
||||
package org.springframework.integration.http.support;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException;
|
||||
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
@@ -56,17 +55,6 @@ import org.springframework.messaging.MessageHeaders;
|
||||
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
|
||||
public class DefaultHttpHeaderMapperFromMessageInboundTests {
|
||||
|
||||
@Test
|
||||
public void validateAllowWithWrongMethodName() {
|
||||
HeaderMapper<HttpHeaders> mapper = DefaultHttpHeaderMapper.inboundMapper();
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("Allow", "bar");
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
|
||||
assertThatIllegalArgumentException()
|
||||
.isThrownBy(() -> mapper.fromHeaders(new MessageHeaders(messageHeaders), headers));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void validateAllowAsString() {
|
||||
HeaderMapper<HttpHeaders> mapper = DefaultHttpHeaderMapper.inboundMapper();
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2016-2021 the original author or authors.
|
||||
* Copyright 2016-2022 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.
|
||||
@@ -82,7 +82,8 @@ public class JdbcLockRegistry implements ExpirableLockRegistry, RenewableLockReg
|
||||
/**
|
||||
* Construct an instance based on the provided {@link LockRepository}.
|
||||
* @param client the {@link LockRepository} to rely on.
|
||||
*/ public JdbcLockRegistry(LockRepository client) {
|
||||
*/
|
||||
public JdbcLockRegistry(LockRepository client) {
|
||||
this.client = client;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2022 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.
|
||||
@@ -23,10 +23,11 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
|
||||
import org.junit.After;
|
||||
import org.junit.AfterClass;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.integration.support.MessageBuilder;
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
@@ -46,7 +47,7 @@ public class JdbcMessageHandlerIntegrationTests {
|
||||
|
||||
private static JdbcTemplate jdbcTemplate;
|
||||
|
||||
@BeforeClass
|
||||
@BeforeAll
|
||||
public static void setUp() {
|
||||
EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder();
|
||||
builder.setType(EmbeddedDatabaseType.HSQL).addScript(
|
||||
@@ -55,12 +56,12 @@ public class JdbcMessageHandlerIntegrationTests {
|
||||
jdbcTemplate = new JdbcTemplate(embeddedDatabase);
|
||||
}
|
||||
|
||||
@AfterClass
|
||||
@AfterAll
|
||||
public static void tearDown() {
|
||||
embeddedDatabase.shutdown();
|
||||
}
|
||||
|
||||
@After
|
||||
@AfterEach
|
||||
public void cleanup() {
|
||||
jdbcTemplate.execute("DELETE FROM FOOS");
|
||||
}
|
||||
@@ -147,9 +148,10 @@ public class JdbcMessageHandlerIntegrationTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
@Disabled("SF doesn't handle [] in query params any more")
|
||||
public void testIdHeaderDynamicInsert() {
|
||||
JdbcMessageHandler handler = new JdbcMessageHandler(jdbcTemplate,
|
||||
"insert into foos (id, status, name) values (:headers[idAsString], 0, :payload)");
|
||||
"insert into foos (id, status, name) values (headers[idAsString], 0, :payload)");
|
||||
handler.afterPropertiesSet();
|
||||
Message<String> message = new GenericMessage<>("foo");
|
||||
String id = message.getHeaders().getId().toString();
|
||||
@@ -163,6 +165,7 @@ public class JdbcMessageHandlerIntegrationTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
@Disabled("SF doesn't handle [] in query params any more")
|
||||
public void testDottedHeaderDynamicInsert() {
|
||||
JdbcMessageHandler handler = new JdbcMessageHandler(jdbcTemplate,
|
||||
"insert into foos (id, status, name) values (:headers[business.id], 0, :payload)");
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2022 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.
|
||||
@@ -24,8 +24,9 @@ import java.util.Map;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
|
||||
import org.junit.After;
|
||||
import org.junit.Test;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.context.ConfigurableApplicationContext;
|
||||
import org.springframework.context.support.ClassPathXmlApplicationContext;
|
||||
@@ -48,6 +49,7 @@ import org.springframework.messaging.MessageChannel;
|
||||
* @since 2.0
|
||||
*
|
||||
*/
|
||||
@Disabled("SF doesn't handle [] in query params any more")
|
||||
public class JdbcMessageHandlerParserTests {
|
||||
|
||||
private JdbcTemplate jdbcTemplate;
|
||||
@@ -144,7 +146,7 @@ public class JdbcMessageHandlerParserTests {
|
||||
assertThat(map.get("name")).as("Wrong id").isEqualTo("foo");
|
||||
}
|
||||
|
||||
@After
|
||||
@AfterEach
|
||||
public void tearDown() {
|
||||
if (context != null) {
|
||||
context.close();
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2022 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.
|
||||
@@ -30,8 +30,9 @@ import java.util.Map;
|
||||
import javax.sql.DataSource;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.junit.After;
|
||||
import org.junit.Test;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.beans.DirectFieldAccessor;
|
||||
import org.springframework.context.ConfigurableApplicationContext;
|
||||
@@ -59,6 +60,7 @@ import org.springframework.messaging.support.GenericMessage;
|
||||
* @since 2.0
|
||||
*
|
||||
*/
|
||||
@Disabled("SF doesn't handle [] in query params any more")
|
||||
public class JdbcOutboundGatewayParserTests {
|
||||
|
||||
private JdbcTemplate jdbcTemplate;
|
||||
@@ -291,7 +293,7 @@ public class JdbcOutboundGatewayParserTests {
|
||||
}
|
||||
|
||||
|
||||
@After
|
||||
@AfterEach
|
||||
public void tearDown() {
|
||||
if (this.context != null) {
|
||||
this.context.close();
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2018-2021 the original author or authors.
|
||||
* Copyright 2018-2022 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.
|
||||
@@ -327,8 +327,8 @@ class KafkaDslKotlinTests {
|
||||
|
||||
private fun replyContainer(): GenericMessageListenerContainer<Int, String> {
|
||||
val containerProperties = ContainerProperties(TEST_TOPIC5)
|
||||
containerProperties.groupId = "outGate"
|
||||
containerProperties.consumerRebalanceListener = object : ConsumerRebalanceListener {
|
||||
containerProperties.setGroupId("outGate")
|
||||
containerProperties.setConsumerRebalanceListener(object : ConsumerRebalanceListener {
|
||||
|
||||
override fun onPartitionsRevoked(partitions: Collection<TopicPartition>) {
|
||||
// empty
|
||||
@@ -338,7 +338,7 @@ class KafkaDslKotlinTests {
|
||||
this@ContextConfiguration.replyContainerLatch.countDown()
|
||||
}
|
||||
|
||||
}
|
||||
})
|
||||
return KafkaMessageListenerContainer(consumerFactory(), containerProperties)
|
||||
}
|
||||
|
||||
@@ -351,7 +351,7 @@ class KafkaDslKotlinTests {
|
||||
private fun containerProperties() =
|
||||
ContainerProperties(TEST_TOPIC4)
|
||||
.also {
|
||||
it.groupId = "inGateGroup"
|
||||
it.setGroupId("inGateGroup")
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2017-2021 the original author or authors.
|
||||
* Copyright 2017-2022 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.
|
||||
@@ -20,7 +20,6 @@ import java.time.Instant;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -52,6 +51,7 @@ import org.springframework.integration.support.AbstractIntegrationMessageBuilder
|
||||
import org.springframework.messaging.Message;
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.util.MimeTypeUtils;
|
||||
import org.springframework.util.MultiValueMap;
|
||||
import org.springframework.web.reactive.HandlerMapping;
|
||||
import org.springframework.web.reactive.accept.HeaderContentTypeResolver;
|
||||
@@ -463,7 +463,7 @@ public class WebFluxInboundEndpoint extends BaseHttpInboundEndpoint implements W
|
||||
}
|
||||
|
||||
List<MediaType> result = new ArrayList<>(compatibleMediaTypes);
|
||||
MediaType.sortBySpecificityAndQuality(result);
|
||||
MimeTypeUtils.sortBySpecificity(result);
|
||||
|
||||
for (MediaType mediaType : result) {
|
||||
if (mediaType.isConcrete()) {
|
||||
@@ -517,9 +517,13 @@ public class WebFluxInboundEndpoint extends BaseHttpInboundEndpoint implements W
|
||||
}
|
||||
|
||||
private static MediaType selectMoreSpecificMediaType(MediaType acceptable, MediaType producible) {
|
||||
MediaType producibleToUse = producible.copyQualityValue(acceptable);
|
||||
Comparator<MediaType> comparator = MediaType.SPECIFICITY_COMPARATOR;
|
||||
return (comparator.compare(acceptable, producibleToUse) <= 0 ? acceptable : producibleToUse);
|
||||
producible = producible.copyQualityValue(acceptable);
|
||||
if (acceptable.isLessSpecific(producible)) {
|
||||
return producible;
|
||||
}
|
||||
else {
|
||||
return acceptable;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ ifdef::backend-pdf[]
|
||||
NOTE: This documentation is also available as https://docs.spring.io/spring-integration/docs/current/reference/html/index.html[multiple (faster to load) HTML pages] and as a single https://docs.spring.io/spring-integration/docs/current/reference/html/index-single.html[(more easily searchable) HTML file].
|
||||
endif::[]
|
||||
|
||||
(C) 2009 - 2021 VMware, Inc.
|
||||
(C) 2009 - 2022 VMware, Inc.
|
||||
All rights reserved.
|
||||
|
||||
Copies of this document may be made for your own use and for distribution to others, provided that you do not charge any fee for such copies and further provided that each copy contains this Copyright Notice, whether distributed in print or electronically.
|
||||
|
||||
Reference in New Issue
Block a user