1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- buildscript {
- repositories {
- maven { url "https://repo.spring.io/plugins-release" }
- }
- dependencies {
- classpath("com.bmuschko:gradle-tomcat-plugin:2.2.4")
- }
- }
- apply plugin: 'com.bmuschko.tomcat'
- dependencies {
- def tomcatVersion = '7.0.54'
- tomcat "org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}",
- "org.apache.tomcat.embed:tomcat-embed-logging-juli:${tomcatVersion}",
- "org.apache.tomcat.embed:tomcat-embed-websocket:${tomcatVersion}",
- "org.apache.tomcat.embed:tomcat-embed-jasper:${tomcatVersion}"
- }
- task integrationTomcatRun(type: com.bmuschko.gradle.tomcat.tasks.TomcatRun) {
- onlyIf { !sourceSets.integrationTest.allSource.empty }
- daemon = true
- tomcatClasspath = tomcatRun.tomcatClasspath
- webAppClasspath = tomcatRun.webAppClasspath
- webAppSourceDirectory = tomcatRun.webAppSourceDirectory
- doFirst {
- def mainOutputDir = project.sourceSets.main.output.classesDir
- if(mainOutputDir) {
- classesDirectory = mainOutputDir
- }
- contextPath = tomcatRun.contextPath
- // delay reserving ports to ensure they are still available
- def ports = reservePorts(3)
- httpPort = ports[0]
- ajpPort = ports[1]
- stopPort = ports[2]
- }
- }
- task integrationTomcatStop(type: com.bmuschko.gradle.tomcat.tasks.TomcatStop) {
- onlyIf { !sourceSets.integrationTest.allSource.empty }
- doFirst {
- stopPort = integrationTomcatRun.stopPort
- }
- }
- integrationTest {
- dependsOn integrationTomcatRun
- doFirst {
- def host = 'localhost:' + integrationTomcatRun.httpPort
- systemProperties['geb.build.baseUrl'] = 'http://'+host+'/' + integrationTomcatRun.contextPath + '/'
- systemProperties['geb.build.reportsDir'] = 'build/geb-reports'
- }
- finalizedBy integrationTomcatStop
- }
- def reservePorts(int count) {
- def sockets = []
- for(int i in 1..count) {
- sockets << new ServerSocket(0)
- }
- def result = sockets*.localPort
- sockets*.close()
- result
- }
|