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