blob: 2e51bd96cb9b9c12f8c2ec51d6fc56f3f40e2a81 [file] [log] [blame]
import org.gradle.plugins.ide.idea.model.*
import t5build.*
description = "Bridge to CDI for Apache Tapestry 5 Project"
apply plugin: JavaPlugin
buildDir = 'target/gradle-build'
project.ext.libraryVersions = [
javaeeapi: '6.0-4',
tomee: '1.6.0',
ziplock: '1.5.1',
junit: '4.8.1',
commonsHttpclient: '3.1',
arquillian: '1.1.1.Final',
jbossJavaeeSpec: '1.0.0.Final',
arquillianGlassfish: '1.0.0.CR4',
glassfishDistrib: '3.1.1-b04',
jbossDistrib: '7.1.1.Final',
cdi: '1.0-SP4',
jbossAS7: '7.1.1.Final',
shrinkwrapDesc: '2.0.0-alpha-3'
]
configurations {
compileOnly
jboss
glassfish
tomeeEmbeddedTestRuntime { extendsFrom testRuntime, compileOnly }
jbossAS7ManagedTestRuntime { extendsFrom testRuntime, compileOnly }
glassfishManagedTestRuntime { extendsFrom testRuntime, compileOnly }
}
dependencies {
compile project(':tapestry-core')
compile project(':tapestry-ioc')
testCompile (project(':tapestry-test')){
transitive = false
}
// replace javax.enterprise:cdi-api with group: 'org.jboss.spec', name: 'jboss-javaee-6.0', version: libraryVersions.jbossJavaeeSpec to compile against full Java EE API
compileOnly group: 'javax.enterprise', name: 'cdi-api', version: libraryVersions.cdi
testCompile group: 'org.apache.openejb', name: 'ziplock', version: libraryVersions.ziplock
testCompile group: 'junit', name: 'junit', version: libraryVersions.junit
testCompile group: 'commons-httpclient', name: 'commons-httpclient', version: libraryVersions.commonsHttpclient
testCompile group: 'org.jboss.arquillian.junit', name: 'arquillian-junit-container', version: libraryVersions.arquillian
testCompile group: 'org.jboss.shrinkwrap.descriptors', name: 'shrinkwrap-descriptors-api-javaee', version: libraryVersions.shrinkwrapDesc
testRuntime group: 'org.jboss.shrinkwrap.descriptors', name: 'shrinkwrap-descriptors-impl-javaee', version: libraryVersions.shrinkwrapDesc
tomeeEmbeddedTestRuntime group: 'org.apache.openejb', name: 'arquillian-tomee-embedded', version: libraryVersions.tomee
jbossAS7ManagedTestRuntime group: 'org.jboss.as', name: 'jboss-as-arquillian-container-managed', version: libraryVersions.jbossAS7
jbossAS7ManagedTestRuntime group: 'org.jboss.spec', name: 'jboss-javaee-6.0', version: libraryVersions.jbossJavaeeSpec
jboss "org.jboss.as:jboss-as-dist:$libraryVersions.jbossDistrib@zip"
glassfishManagedTestRuntime group: 'org.jboss.arquillian.container', name: 'arquillian-glassfish-managed-3.1', version: libraryVersions.arquillianGlassfish
glassfish "org.glassfish.distributions:glassfish:$libraryVersions.glassfishDistrib@zip"
}
sourceSets {
main {
compileClasspath = configurations.compile + configurations.compileOnly
}
test {
compileClasspath = compileClasspath + configurations.compileOnly
}
}
idea {
module {
scopes.PROVIDED.plus += configurations.compileOnly
}
}
eclipse {
classpath {
plusConfigurations += configurations.compileOnly
}
}
task resolveJBoss(type: Copy) {
destinationDir = file('target')
from { zipTree(configurations.jboss.singleFile) }
}
task resolveGlassfish(type: Copy) {
destinationDir = file('target')
from { zipTree(configurations.glassfish.singleFile) }
}
task tomeeEmbeddedTest(type: Test) {
systemProperty 'arquillian.launch', "tomee_embedded"
}
task jbossAS7ManagedTest(type: Test) {
systemProperty 'arquillian.launch', "jbossas_managed"
dependsOn { resolveJBoss }
}
task glassfishManagedTest(type: Test){
systemProperty 'arquillian.launch', "glassfish_managed"
dependsOn { resolveGlassfish }
}
tasks.withType(Test).matching({ t-> t.name.endsWith('Test') } as Spec).each { t ->
t.testClassesDir = sourceSets.test.output.classesDir
t.classpath = sourceSets.test.output + sourceSets.main.output + configurations[t.name + 'Runtime']
}
test {
dependsOn { tomeeEmbeddedTest }
setEnabled(false)
}
jar {
manifest {
attributes 'Tapestry-Module-Classes': 'org.apache.tapestry5.cdi.CDIInjectModule'
}
}