import org.apache.tools.ant.filters.ReplaceTokens apply plugin: 'java' apply plugin: org.hibernate.build.gradle.testing.matrix.MatrixTestingPlugin dependencies { compile( project(':hibernate-core') ) compile( libraries.dom4j ) compile( libraries.commons_annotations ) compile( libraries.jpa ) compile( libraries.jta ) compile( libraries.javassist ) testCompile( project(':hibernate-testing') ) testCompile( libraries.junit ) testCompile( libraries.shrinkwrap_api ) testCompile( libraries.shrinkwrap ) testCompile( libraries.validation ) testRuntime( libraries.validator ) } sourceSets { matrix { java { srcDir 'src/matrix/java' } resources { srcDir 'src/matrix/resources' } } } //////////////////////////////////////////////////////////////////////////////////////////////////////// // JPA model-gen set up //////////////////////////////////////////////////////////////////////////////////////////////////////// aptDumpDir = file( "${buildDir}/tmp/apt" ) //////////////////////////////////////////////////////////////////////////////////////////////////////// // 'test' sourceSet specific JPA model-gen set up //////////////////////////////////////////////////////////////////////////////////////////////////////// sourceSets.test { originalJavaSrcDirs = java.srcDirs generatedJpaMetamodelSrcDir = file( "${buildDir}/generated-src/jpamodelgen/${name}" ) java.srcDir generatedJpaMetamodelSrcDir } task generateTestJpaMetamodelClasses(type: Compile) { classpath = compileTestJava.classpath + configurations.hibernateJpaModelGenTool source = sourceSets.test.originalJavaSrcDirs destinationDir = aptDumpDir options.define( compilerArgs: [ "-proc:only", "-processor", "org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor", "-s", "$sourceSets.test.generatedJpaMetamodelSrcDir.absolutePath" ] ); outputs.dir sourceSets.test.generatedJpaMetamodelSrcDir; doFirst { sourceSets.test.generatedJpaMetamodelSrcDir.mkdirs() } } // for the time being eat the annoying output from running the annotation processors generateTestJpaMetamodelClasses.logging.captureStandardError(LogLevel.INFO) compileTestJava.dependsOn generateTestJpaMetamodelClasses compileTestJava.options.define(compilerArgs: ["-proc:none"]) //////////////////////////////////////////////////////////////////////////////////////////////////////// // 'matrix' sourceSet specific JPA model-gen set up //////////////////////////////////////////////////////////////////////////////////////////////////////// sourceSets.matrix { originalJavaSrcDirs = java.srcDirs generatedJpaMetamodelSrcDir = file( "${buildDir}/generated-src/jpamodelgen/${name}" ) java.srcDir generatedJpaMetamodelSrcDir } task generateMatrixJpaMetamodelClasses(type: Compile) { classpath = compileMatrixJava.classpath + configurations.hibernateJpaModelGenTool source = sourceSets.matrix.java destinationDir = aptDumpDir options.define( compilerArgs: [ "-proc:only", "-processor", "org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor", "-s", "$sourceSets.matrix.generatedJpaMetamodelSrcDir.absolutePath" ] ); outputs.dir sourceSets.matrix.generatedJpaMetamodelSrcDir; doFirst { sourceSets.matrix.generatedJpaMetamodelSrcDir.mkdirs() } } // for the time being eat the annoying output from running the annotation processors generateMatrixJpaMetamodelClasses.logging.captureStandardError(LogLevel.INFO) compileMatrixJava.dependsOn generateMatrixJpaMetamodelClasses compileMatrixJava.options.define(compilerArgs: ["-proc:none", "-encoding", "UTF-8"]) bundlesTargetDir = file( "${buildDir}/bundles" ) task copyBundleResources (type: Copy) { from file('src/test/bundles') into bundlesTargetDir filter(ReplaceTokens, tokens: [ buildDirName: buildDir.absolutePath, 'db.dialect': 'org.hibernate.dialect.H2Dialect', 'jdbc.driver': 'org.h2.Driver', 'jdbc.user': 'sa', 'jdbc.pass': '', 'jdbc.url': 'jdbc:h2:mem:db1;DB_CLOSE_DELAY=-1;MVCC=TRUE', ]); doFirst { bundlesTargetDir.mkdirs() } } // make sure that the bundles for the packaged test (PackagingTestCase) are copied as well processTestResources.dependsOn copyBundleResources idea { module { testSourceDirs += file( 'src/matrix/java') testSourceDirs += file( 'src/matrix/resources') } }