You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
274 lines
9.4 KiB
274 lines
9.4 KiB
import org.gradle.plugins.ide.eclipse.model.SourceFolder |
|
|
|
apply plugin: 'java' |
|
apply plugin: 'groovy' |
|
apply plugin: 'javadocHotfix' |
|
apply plugin: 'eclipse-wtp' |
|
apply plugin: 'propdeps' |
|
apply plugin: 'propdeps-maven' |
|
apply plugin: 'propdeps-idea' |
|
apply plugin: 'propdeps-eclipse' |
|
|
|
sourceCompatibility = 1.5 |
|
targetCompatibility = 1.5 |
|
|
|
ext.apacheDsVersion = '1.5.5' |
|
ext.aspectjVersion = '1.8.4' |
|
ext.casClientVersion = '3.3.3' |
|
ext.cglibVersion = '3.1' |
|
ext.commonsCodecVersion = '1.10' |
|
ext.commonsCollectionsVersion = '3.2.1' |
|
ext.commonsLoggingVersion = '1.2' |
|
ext.ehcacheVersion = '2.9.0' |
|
ext.gebVersion = '0.10.0' |
|
ext.groovyVersion = '2.3.8' |
|
ext.hsqlVersion = '2.3.2' |
|
ext.jacksonDatavindVersion = '2.4.4' |
|
ext.jettyVersion = '6.1.26' |
|
ext.jstlVersion = '1.2.1' |
|
ext.junitVersion = '4.11' |
|
ext.logbackVersion = '1.1.2' |
|
ext.powerMockVersion = '1.6.2' |
|
ext.seleniumVersion = '2.44.0' |
|
ext.servletApiVersion = '3.0.1' |
|
ext.slf4jVersion = '1.7.7' |
|
ext.spockVersion = '0.7-groovy-2.0' |
|
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 = [ |
|
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 + [ |
|
"org.seleniumhq.selenium:selenium-htmlunit-driver:$seleniumVersion", |
|
"org.gebish:geb-spock:$gebVersion", |
|
'commons-httpclient:commons-httpclient:3.1', |
|
"org.codehaus.groovy:groovy:$groovyVersion" |
|
] |
|
|
|
ext.powerMockDependencies = [ |
|
"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 = [ |
|
dependencies.create("org.springframework:spring-core:$springVersion") { |
|
exclude(group: 'commons-logging', module: 'commons-logging') |
|
} |
|
] |
|
|
|
ext.jstlDependencies = [ |
|
"javax.servlet.jsp.jstl:javax.servlet.jsp.jstl-api:$jstlVersion", |
|
"org.apache.taglibs:taglibs-standard-jstlel:1.2.1" |
|
] |
|
|
|
ext.apachedsDependencies = [ |
|
"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 { |
|
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 { |
|
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) { |
|
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/") |
|
} |
|
} |
|
|
|
eclipse { |
|
classpath { |
|
plusConfigurations += [ configurations.integrationTestCompile ] |
|
} |
|
} |
|
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 |
|
|
|
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 { |
|
optional "commons-logging:commons-logging:$commonsLoggingVersion" |
|
|
|
testCompile "junit:junit:$junitVersion", |
|
'org.mockito:mockito-core:1.10.19', |
|
"org.springframework:spring-test:$springVersion", |
|
'org.easytesting:fest-assert:1.4' |
|
|
|
// Use slf4j/logback for logging |
|
testRuntime "org.slf4j:jcl-over-slf4j:$slf4jVersion", |
|
"ch.qos.logback:logback-classic:$logbackVersion" |
|
} |
|
|
|
[configurations.runtime, configurations.default, configurations.testCompile]*.exclude(module: 'commons-logging') |
|
|
|
configurations.all { |
|
resolutionStrategy.eachDependency { DependencyResolveDetails details -> |
|
if (details.requested.group == 'org.slf4j') { |
|
details.useVersion slf4jVersion |
|
} |
|
} |
|
} |
|
|
|
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8' |
|
|
|
project.tasks.matching { it instanceof Test && it.name != 'integrationTest' }.all { |
|
jvmArgs = ['-ea', '-Xmx500m', '-XX:MaxPermSize=256M'] |
|
maxParallelForks = guessMaxForks() |
|
logging.captureStandardOutput(LogLevel.INFO) |
|
} |
|
|
|
def guessMaxForks() { |
|
int processors = Runtime.runtime.availableProcessors() |
|
return Math.max(2, (int) (processors / 2)) |
|
} |
|
|
|
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 { |
|
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*'], |
|
] |
|
} |
|
} |
|
|
|
eclipse.classpath.downloadSources = true |
|
|
|
// http://forums.gradle.org/gradle/topics/eclipse_wtp_deploys_testcode_to_server_example_provided |
|
eclipse.classpath { |
|
defaultOutputDir = file('bin/main') |
|
file.whenMerged { cp -> |
|
cp.entries.findAll { it instanceof SourceFolder && (it.path.contains("test") || it.path.contains("Test")) }*.output = "bin/test" |
|
} |
|
} |
|
|
|
// GRADLE-1116 |
|
project.eclipse.classpath.file.whenMerged { classpath -> |
|
classpath.entries.removeAll { entry -> entry.path.endsWith('/build/resources/test') } |
|
classpath.entries.removeAll { entry -> entry.path.endsWith('/build/classes/test') } |
|
classpath.entries.removeAll { entry -> entry.path.endsWith('/build/resources/main') } |
|
classpath.entries.removeAll { entry -> entry.path.endsWith('/build/classes/main') } |
|
} |
|
|
|
// GRADLE-1422 |
|
project.eclipseClasspath.doFirst { |
|
// delay adding whenMerged till the entryAttributes are added (must be the last whenMerged) |
|
project.eclipse.classpath.file.whenMerged { classpath -> |
|
def includeDeps = project.configurations.getByName('runtime').collect {f -> f.absolutePath } as Set |
|
classpath.entries.each { cp -> |
|
if(cp instanceof org.gradle.plugins.ide.eclipse.model.Library) { |
|
def include = includeDeps.contains(cp.path) |
|
def attr = 'org.eclipse.jst.component.dependency' |
|
if(!include) { |
|
cp.entryAttributes.remove(attr) |
|
} |
|
} |
|
} |
|
} |
|
} |
|
|
|
project.idea.module { |
|
scopes.TEST.plus += [project.configurations.integrationTestRuntime] |
|
testSourceDirs += sourceSets.integrationTest.resources.srcDirs |
|
} |
|
|
|
task javadocJar(type: Jar) { |
|
classifier = 'javadoc' |
|
from javadoc |
|
} |
|
|
|
artifacts { |
|
archives javadocJar |
|
}
|
|
|