import org.jetbrains.kotlin.gradle.tasks.KotlinCompile apply plugin: 'io.spring.convention.spring-module' apply plugin: 'trang' apply plugin: 'kotlin' repositories { maven { url "https://build.shibboleth.net/nexus/content/repositories/releases/" } } dependencies { management platform(project(":spring-security-dependencies")) // NB: Don't add other compile time dependencies to the config module as this breaks tooling api project(':spring-security-core') api 'org.springframework:spring-aop' api 'org.springframework:spring-beans' api 'org.springframework:spring-context' api 'org.springframework:spring-core' optional project(':spring-security-ldap') optional project(':spring-security-messaging') optional project(':spring-security-saml2-service-provider') optional project(':spring-security-oauth2-client') optional project(':spring-security-oauth2-jose') optional project(':spring-security-oauth2-resource-server') optional project(':spring-security-openid') optional project(':spring-security-rsocket') optional project(':spring-security-web') optional 'io.projectreactor:reactor-core' optional 'org.aspectj:aspectjweaver' optional 'org.springframework:spring-jdbc' optional 'org.springframework:spring-messaging' optional 'org.springframework:spring-tx' optional 'org.springframework:spring-webmvc' optional'org.springframework:spring-web' optional'org.springframework:spring-webflux' optional'org.springframework:spring-websocket' optional 'org.jetbrains.kotlin:kotlin-reflect' optional 'org.jetbrains.kotlin:kotlin-stdlib-jdk8' optional 'jakarta.annotation:jakarta.annotation-api' provided 'jakarta.servlet:jakarta.servlet-api' testImplementation project(':spring-security-aspects') testImplementation project(':spring-security-cas') testImplementation project(':spring-security-test') testImplementation project(path : ':spring-security-core', configuration : 'tests') testImplementation project(path : ':spring-security-ldap', configuration : 'tests') testImplementation project(path : ':spring-security-oauth2-client', configuration : 'tests') testImplementation project(path : ':spring-security-oauth2-resource-server', configuration : 'tests') testImplementation project(path : ':spring-security-saml2-service-provider', configuration : 'tests') testImplementation project(path : ':spring-security-saml2-service-provider', configuration : 'opensaml4MainImplementation') testImplementation project(path : ':spring-security-web', configuration : 'tests') testImplementation "org.assertj:assertj-core" testImplementation "org.junit.jupiter:junit-jupiter-api" testImplementation "org.junit.jupiter:junit-jupiter-params" testImplementation "org.junit.jupiter:junit-jupiter-engine" testImplementation "org.mockito:mockito-core" testImplementation "org.mockito:mockito-junit-jupiter" testImplementation "org.springframework:spring-test" testImplementation 'com.squareup.okhttp3:mockwebserver' testImplementation 'ch.qos.logback:logback-classic' testImplementation 'io.projectreactor.netty:reactor-netty' testImplementation 'io.rsocket:rsocket-transport-netty' testImplementation 'jakarta.annotation:jakarta.annotation-api:1.0' testImplementation "jakarta.inject:jakarta.inject-api" testImplementation "jakarta.transaction:jakarta.transaction-api" testImplementation 'jakarta.xml.bind:jakarta.xml.bind-api' testImplementation 'ldapsdk:ldapsdk:4.1' testImplementation('net.sourceforge.htmlunit:htmlunit') { exclude group: 'commons-logging', module: 'commons-logging' } testImplementation "org.apache.directory.server:apacheds-core" testImplementation "org.apache.directory.server:apacheds-core-entry" testImplementation "org.apache.directory.server:apacheds-protocol-shared" testImplementation "org.apache.directory.server:apacheds-protocol-ldap" testImplementation "org.apache.directory.server:apacheds-server-jndi" testImplementation 'org.apache.directory.shared:shared-ldap' testImplementation "com.unboundid:unboundid-ldapsdk" testImplementation 'org.eclipse.persistence:javax.persistence' testImplementation('org.hibernate:hibernate-entitymanager') { exclude group: 'javax.activation', module: 'javax.activation-api' exclude group: 'javax.persistence', module: 'javax.persistence-api' exclude group: 'javax.xml.bind', module: 'jaxb-api' exclude group: 'org.jboss.spec.javax.transaction', module: 'jboss-transaction-api_1.2_spec' } testImplementation 'org.hsqldb:hsqldb' testImplementation 'org.mockito:mockito-core' testImplementation "org.mockito:mockito-inline" testImplementation ('org.openid4java:openid4java-nodeps') { exclude group: 'com.google.code.guice', module: 'guice' exclude group: 'commons-logging', module: 'commons-logging' } testImplementation('org.seleniumhq.selenium:htmlunit-driver') { exclude group: 'commons-logging', module: 'commons-logging' } testImplementation('org.seleniumhq.selenium:selenium-java') { exclude group: 'commons-logging', module: 'commons-logging' exclude group: 'io.netty', module: 'netty' } testImplementation 'org.springframework.ldap:spring-ldap-core' testImplementation 'org.springframework:spring-expression' testImplementation 'org.springframework:spring-jdbc' testImplementation 'org.springframework:spring-orm' testImplementation 'org.springframework:spring-tx' testImplementation ('org.springframework.data:spring-data-jpa') { exclude group: 'org.aspectj', module: 'aspectjrt' } testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core' testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-reactor' testImplementation 'io.mockk:mockk' testRuntimeOnly 'org.hsqldb:hsqldb' } rncToXsd { rncDir = file('src/main/resources/org/springframework/security/config/') xsdDir = rncDir xslFile = new File(rncDir, 'spring-security.xsl') } tasks.withType(KotlinCompile).configureEach { kotlinOptions { languageVersion = "1.3" apiVersion = "1.3" freeCompilerArgs = ["-Xjsr305=strict", "-Xsuppress-version-warnings"] jvmTarget = "1.8" } } build.dependsOn rncToXsd compileTestJava { exclude "org/springframework/security/config/annotation/web/configurers/saml2/**", "org/springframework/security/config/http/Saml2*" } task compileSaml2TestJava(type: JavaCompile) { javaCompiler = javaToolchains.compilerFor { languageVersion = JavaLanguageVersion.of(11) } source = sourceSets.test.java.srcDirs include "org/springframework/security/config/annotation/web/configurers/saml2/**", "org/springframework/security/config/http/Saml2*" classpath = sourceSets.test.compileClasspath destinationDirectory = new File("${buildDir}/classes/java/test") options.sourcepath = sourceSets.test.java.getSourceDirectories() } task saml2Tests(type: Test) { javaLauncher = javaToolchains.launcherFor { languageVersion = JavaLanguageVersion.of(11) } filter { includeTestsMatching "org.springframework.security.config.annotation.web.configurers.saml2.*" } useJUnitPlatform() dependsOn compileSaml2TestJava } test { shouldRunAfter saml2Tests } tasks.named('check') { dependsOn saml2Tests }