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' | |
} | |
} |