spring-security/gradle/javaprojects.gradle

227 lines
7.7 KiB
Groovy
Raw Normal View History

2010-03-28 18:54:41 -04:00
apply plugin: 'java'
apply plugin: 'groovy'
2013-09-11 18:30:50 -04:00
apply plugin: 'javadocHotfix'
2013-07-16 16:15:42 -04:00
apply plugin: 'propdeps'
apply plugin: 'propdeps-maven'
sourceCompatibility = 1.5
targetCompatibility = 1.5
2012-06-29 13:59:22 -04:00
ext.apacheDsVersion = '1.5.5'
2014-12-10 11:07:32 -05:00
ext.aspectjVersion = '1.8.4'
2015-12-02 14:25:52 -05:00
ext.casClientVersion = '3.4.1'
2014-12-10 11:07:32 -05:00
ext.cglibVersion = '3.1'
ext.commonsCodecVersion = '1.10'
ext.commonsCollectionsVersion = '3.2.2'
2014-12-10 11:07:32 -05:00
ext.commonsLoggingVersion = '1.2'
ext.ehcacheVersion = '2.9.0'
ext.gebVersion = '0.10.0'
2015-08-18 14:58:15 -04:00
ext.groovyVersion = '2.4.4'
2014-12-10 11:07:32 -05:00
ext.hsqlVersion = '2.3.2'
ext.jacksonDatavindVersion = '2.4.4'
2012-06-29 13:59:22 -04:00
ext.jettyVersion = '6.1.26'
2014-12-10 11:07:32 -05:00
ext.jstlVersion = '1.2.1'
2015-12-21 14:03:23 -05:00
ext.junitVersion = '4.12'
2014-12-10 11:07:32 -05:00
ext.logbackVersion = '1.1.2'
ext.powerMockVersion = '1.6.2'
2014-12-10 11:07:32 -05:00
ext.seleniumVersion = '2.44.0'
SEC-2542: Use exclusions to remove duplicate dependencies A number of projects had duplicate dependencies on their classpaths as a result of the same classes being available in more than one artifact, each with different Maven coordinates. Typically this only affected the tests, but meant that the actual classes that were loaded was somewhat unpredictable and had the potential to vary between an IDE and the command line depending on the order in which the aritfacts appeared on the classpath. This commit adds a number of exclusions to remove such duplicates. In addition to the new exclusions, notable other changes are: - Spring Data JPA has been updated to 1.4.1. This brings its transitive dependency upon spring-data-commons into line with Spring LDAP's and prevents both spring-data-commons-core and spring-data-commons from being on the classpath - All Servlet API dependencies have been updated to use the official artifact with all transitive dependencies on unofficial servlet API artifacts being excluded. - In places, groovy has been replaced with groovy-all. This removes some duplicates caused by groovy's transitive dependencies. - JUnit has been updated to 4.11 which brings its transitive Hamcrest dependency into line with other components. There appears to be a bug in Gradle which means that some exclusions applied to an artifact do not work reliably. To work around this problem it has been necessary to apply some exclusions at the configuration level Conflicts: samples/messages-jc/pom.xml
2014-04-02 09:48:55 -04:00
ext.servletApiVersion = '3.0.1'
2014-12-10 11:07:32 -05:00
ext.slf4jVersion = '1.7.7'
ext.spockVersion = '0.7-groovy-2.0'
2014-12-10 11:07:32 -05:00
ext.springDataCommonsVersion = '1.9.1.RELEASE'
ext.springDataJpaVersion = '1.7.1.RELEASE'
ext.springDataRedisVersion = '1.4.1.RELEASE'
ext.springSessionVersion = '1.0.0.RELEASE'
ext.thymeleafVersion = '2.1.4.RELEASE'
ext.spockDependencies = [
2015-03-23 12:14:26 -04:00
dependencies.create("org.spockframework:spock-spring:$spockVersion") {
exclude group: 'junit', module: 'junit-dep'
},
dependencies.create("org.spockframework:spock-core:$spockVersion") {
exclude group: 'junit', module: 'junit-dep'
}
]
ext.gebDependencies = spockDependencies + [
2015-03-23 12:14:26 -04:00
"org.seleniumhq.selenium:selenium-htmlunit-driver:$seleniumVersion",
"org.gebish:geb-spock:$gebVersion",
'commons-httpclient:commons-httpclient:3.1',
2015-08-18 14:58:15 -04:00
"org.codehaus.groovy:groovy:$groovyVersion",
"org.codehaus.groovy:groovy-all:$groovyVersion"
]
ext.powerMockDependencies = [
2015-03-23 12:14:26 -04:00
"org.powermock:powermock-core:$powerMockVersion",
"org.powermock:powermock-api-support:$powerMockVersion",
"org.powermock:powermock-module-junit4-common:$powerMockVersion",
"org.powermock:powermock-module-junit4:$powerMockVersion",
dependencies.create("org.powermock:powermock-api-mockito:$powerMockVersion") {
exclude group: 'org.mockito', module: 'mockito-all'
},
"org.powermock:powermock-reflect:$powerMockVersion"
]
ext.springCoreDependency = [
2015-03-23 12:14:26 -04:00
dependencies.create("org.springframework:spring-core:$springVersion") {
exclude(group: 'commons-logging', module: 'commons-logging')
}
]
2014-06-12 13:01:04 -04:00
ext.jstlDependencies = [
2015-03-23 12:14:26 -04:00
"javax.servlet.jsp.jstl:javax.servlet.jsp.jstl-api:$jstlVersion",
"org.apache.taglibs:taglibs-standard-jstlel:1.2.1"
2014-06-12 13:01:04 -04:00
]
ext.apachedsDependencies = [
2015-12-16 11:38:31 -05:00
"org.apache.directory.server:apacheds-core:$apacheDsVersion",
"org.apache.directory.server:apacheds-core-entry:$apacheDsVersion",
"org.apache.directory.server:apacheds-protocol-shared:$apacheDsVersion",
"org.apache.directory.server:apacheds-protocol-ldap:$apacheDsVersion",
"org.apache.directory.server:apacheds-server-jndi:$apacheDsVersion",
'org.apache.directory.shared:shared-ldap:0.9.15'
]
// Integration test setup
configurations {
2015-03-23 12:14:26 -04:00
integrationTestCompile {
extendsFrom testCompile, optional, provided
}
integrationTestRuntime {
extendsFrom integrationTestCompile, testRuntime
}
springSnapshotTestRuntime.extendsFrom testRuntime
}
configurations.springSnapshotTestRuntime {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
if (details.requested.group == 'org.springframework') {
details.useVersion 'latest.integration'
}
}
}
sourceSets {
2015-03-23 12:14:26 -04:00
integrationTest {
java.srcDir file('src/integration-test/java')
groovy.srcDirs file('src/integration-test/groovy')
resources.srcDir file('src/integration-test/resources')
compileClasspath = sourceSets.main.output + sourceSets.test.output + configurations.integrationTestCompile
runtimeClasspath = output + compileClasspath + configurations.integrationTestRuntime
}
}
task integrationTest(type: Test, dependsOn: jar) {
2015-03-23 12:14:26 -04:00
testClassesDir = sourceSets.integrationTest.output.classesDir
logging.captureStandardOutput(LogLevel.INFO)
classpath = sourceSets.integrationTest.runtimeClasspath
maxParallelForks = 1
reports {
html.destination = project.file("$project.buildDir/reports/integration-tests/")
junitXml.destination = project.file("$project.buildDir/integration-test-results/")
}
}
2014-09-16 10:54:45 -04:00
2013-07-15 23:13:15 -04:00
project.conf2ScopeMappings.addMapping(MavenPlugin.TEST_COMPILE_PRIORITY + 1, project.configurations.getByName("integrationTestCompile"), Conf2ScopeMappingContainer.TEST)
project.conf2ScopeMappings.addMapping(MavenPlugin.TEST_COMPILE_PRIORITY + 2, project.configurations.getByName("integrationTestRuntime"), Conf2ScopeMappingContainer.TEST)
check.dependsOn integrationTest
2013-07-15 23:13:15 -04:00
task springSnapshotTest(type: Test) {
jvmArgs = ['-ea', '-Xmx500m', '-XX:MaxPermSize=128M']
classpath = sourceSets.test.output + sourceSets.main.output + configurations.springSnapshotTestRuntime
reports {
html.destination = project.file("$buildDir/spring-snapshot-test-results/")
junitXml.destination = project.file("$buildDir/reports/spring-snapshot-tests/")
}
}
dependencies {
2015-03-23 12:14:26 -04:00
optional "commons-logging:commons-logging:$commonsLoggingVersion"
2015-03-23 12:14:26 -04:00
testCompile "junit:junit:$junitVersion",
'org.mockito:mockito-core:1.10.19',
2015-03-23 12:14:26 -04:00
"org.springframework:spring-test:$springVersion",
2015-12-16 11:38:31 -05:00
'org.assertj:assertj-core:2.2.0'
2015-03-23 12:14:26 -04:00
// Use slf4j/logback for logging
testRuntime "org.slf4j:jcl-over-slf4j:$slf4jVersion",
"ch.qos.logback:logback-classic:$logbackVersion"
}
SEC-2542: Use exclusions to remove duplicate dependencies A number of projects had duplicate dependencies on their classpaths as a result of the same classes being available in more than one artifact, each with different Maven coordinates. Typically this only affected the tests, but meant that the actual classes that were loaded was somewhat unpredictable and had the potential to vary between an IDE and the command line depending on the order in which the aritfacts appeared on the classpath. This commit adds a number of exclusions to remove such duplicates. In addition to the new exclusions, notable other changes are: - Spring Data JPA has been updated to 1.4.1. This brings its transitive dependency upon spring-data-commons into line with Spring LDAP's and prevents both spring-data-commons-core and spring-data-commons from being on the classpath - All Servlet API dependencies have been updated to use the official artifact with all transitive dependencies on unofficial servlet API artifacts being excluded. - In places, groovy has been replaced with groovy-all. This removes some duplicates caused by groovy's transitive dependencies. - JUnit has been updated to 4.11 which brings its transitive Hamcrest dependency into line with other components. There appears to be a bug in Gradle which means that some exclusions applied to an artifact do not work reliably. To work around this problem it has been necessary to apply some exclusions at the configuration level Conflicts: samples/messages-jc/pom.xml
2014-04-02 09:48:55 -04:00
[configurations.runtime, configurations.default, configurations.testCompile]*.exclude(module: 'commons-logging')
2013-09-18 17:13:03 -04:00
configurations.all {
2015-03-23 12:14:26 -04:00
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
if (details.requested.group == 'org.slf4j') {
details.useVersion slf4jVersion
}
}
2013-09-18 17:13:03 -04:00
}
2010-08-16 21:16:12 -04:00
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
2014-04-11 10:57:18 -04:00
project.tasks.matching { it instanceof Test && it.name != 'integrationTest' }.all {
2015-03-23 12:14:26 -04:00
jvmArgs = ['-ea', '-Xmx500m', '-XX:MaxPermSize=256M']
maxParallelForks = guessMaxForks()
logging.captureStandardOutput(LogLevel.INFO)
}
def guessMaxForks() {
2015-03-23 12:14:26 -04:00
int processors = Runtime.runtime.availableProcessors()
return Math.max(2, (int) (processors / 2))
}
2015-04-20 17:39:53 -04:00
jar {
manifest.attributes["Created-By"] = 'Spring Security Team'
manifest.attributes["Implementation-Title"] = project.name
manifest.attributes["Implementation-Version"] = project.version
manifest.attributes["Premain-Class"] =
manifest.attributes["Agent-Class"] =
manifest.attributes["Can-Redefine-Classes"] = "true"
manifest.attributes["Can-Retransform-Classes"] = "true"
manifest.attributes["Can-Set-Native-Method-Prefix"] = "false"
}
javadoc {
2015-03-23 12:14:26 -04:00
title = "Spring Security $version API"
source = sourceSets.main.allJava
options {
memberLevel = org.gradle.external.javadoc.JavadocMemberLevel.PROTECTED
author = true
header = project.name
outputLevel = org.gradle.external.javadoc.JavadocOutputLevel.QUIET
links = [
"http://static.springsource.org/spring/docs/3.2.x/javadoc-api/",
"http://static.springsource.org/spring-ldap/docs/1.3.x/apidocs/",
"http://download.oracle.com/javase/6/docs/api/"
]
groups = [
'Spring Security Core':[
'org.springframework.security.core*',
'org.springframework.security.authentication*',
'org.springframework.security.access*',
'org.springframework.security.remoting*',
'org.springframework.security.provisioning*',
'org.springframework.security.util*'],
'Spring Security Web':['org.springframework.security.web*'],
'Spring Security LDAP':['org.springframework.security.ldap*'],
'Spring Security Crypto':['org.springframework.security.crypto*'],
'Spring Security OpenID':['org.springframework.security.openid*'],
'Spring Security CAS':['org.springframework.security.cas*'],
'Spring Security ACL':['org.springframework.security.acls*'],
'Spring Security Config':['org.springframework.security.config*'],
'Spring Security Taglibs':['org.springframework.security.taglibs*'],
]
}
}
task javadocJar(type: Jar) {
2015-03-23 12:14:26 -04:00
classifier = 'javadoc'
from javadoc
}
2013-12-09 16:51:49 -05:00
artifacts {
2015-03-23 12:14:26 -04:00
archives javadocJar
2013-12-09 16:51:49 -05:00
}