description = "Integration with WRO4J to perform runtime CoffeeScript compilation, JavaScript minimization, and more."

dependencies {
    compile project(":tapestry-core")
    compile "com.github.sommeri:less4j:1.12.0"
    compile "com.google.javascript:closure-compiler:v20131014"
    compile "org.mozilla:rhino:1.7.7.1"

    testCompile project(":tapestry-runner")
    testCompile "org.gebish:geb-spock:${versions.geb}"
    // Geb pulls in Groovy 2.3, so we need to select an appropriate Spock version
    testCompile "org.spockframework:spock-core:1.0-groovy-2.3"

    testCompile "org.seleniumhq.selenium:selenium-java:${versions.selenium}", {
        exclude group: "org.eclipse.jetty"
    }
    testCompile "org.seleniumhq.selenium:selenium-server:${versions.selenium}", {
        exclude group: "org.eclipse.jetty"
    }
}

jar.manifest {
    attributes 'Tapestry-Module-Classes': 'org.apache.tapestry5.webresources.modules.WebResourcesModule'
}


test {
    useJUnit()

    systemProperties("geb.build.reportsDir": "$reporting.baseDir/geb",
        "tapestry.compiled-asset-cache-dir": "$buildDir/compiled-asset-cache",
        "tapestry.production-mode": "false")
}
