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

//configurations {
//	all {
//		exclude group: "org.codehaus.groovy", module: "groovy-all" // avoid multiple Groovy compilers on classpath
//	}
//}

dependencies {
    api            project(":tapestry-core")
    api            "com.google.javascript:closure-compiler-unshaded:v20200504"
    implementation "com.github.sommeri:less4j:1.12.0"
    
    compileOnly    "com.google.auto.value:auto-value-annotations:1.9"
    
    implementation "org.mozilla:rhino:1.7.7.2"

    testImplementation project(":tapestry-runner")
    testImplementation "org.gebish:geb-spock:${versions.geb}", {
		exclude group: "org.codehaus.groovy", module: "groovy-all" // avoid multiple Groovy compilers on classpath
	}
    testImplementation "org.spockframework:spock-tapestry:${versions.spock}", {
    	exclude group: "org.apache.tapestry"
    }
    testImplementation "org.junit.jupiter:junit-jupiter:${versions.junitJupiter}"
    api "org.seleniumhq.selenium:selenium-leg-rc:${versions.selenium}", {
        exclude group: "org.seleniumhq.selenium", module: "jetty-repacked"
        exclude group: "org.testng", module: "testng"
        exclude group: "javax.servlet", module: "javax.servlet-api"
        exclude group: "org.seleniumhq.selenium", module: "selenium-firefox-driver"
    }
    api "org.seleniumhq.selenium:selenium-java:${versions.seleniumServer}"
    testImplementation ("io.github.bonigarcia:webdrivermanager:${versions.webdriverManager}")
}

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")
}
