hibernate-orm/hibernate-entitymanager/hibernate-entitymanager.gradle

123 lines
4.1 KiB
Groovy

import org.apache.tools.ant.filters.ReplaceTokens
apply plugin: 'hibernate-matrix-testing'
configurations {
hibernateJpaModelGenTool {
description = "Dependencies for running the Hibernate JPA Metamodel Generator AnnotationProcessor tool"
}
}
dependencies {
compile( project(':hibernate-core') )
compile( libraries.dom4j )
compile( libraries.commons_annotations )
compile( libraries.jpa )
compile( libraries.jta )
compile( libraries.javassist )
provided( "javax.enterprise:cdi-api:1.1-PFD" )
testCompile( project(':hibernate-testing') )
testCompile( libraries.shrinkwrap_api )
testCompile( libraries.shrinkwrap )
testCompile( libraries.validation )
testCompile( "org.jboss.weld:weld-core:2.0.0.Beta6" )
testCompile( "org.jboss.weld.arquillian.container:arquillian-weld-ee-embedded-1.1:1.1.2.Final" )
testRuntime( libraries.validator )
testRuntime( "org.jboss.spec.javax.ejb:jboss-ejb-api_3.2_spec:1.0.0.Alpha2" )
// testRuntime( "org.glassfish.web:el-impl:2.1.2-b04" )
// for testing stored procedure support
testCompile( libraries.derby )
hibernateJpaModelGenTool( project( ':hibernate-jpamodelgen' ) )
}
def pomName() {
return 'Hibernate JPA Support'
}
def pomDescription() {
return 'Hibernate O/RM implementation of the JPA specification'
}
jar {
manifest {
instruction 'Bundle-Description', 'Hibernate ORM JPA Entity Manager'
// A cdi-api OSGi bundle does not currently exist. For now, explicitly
// ignore its packages. This will only cause issues if an app tries
// to use the BeanManagerListenerFactory functionality.
// NOTE: The "!" negates the package, keeping it out of Import-Package
// and including it in Ignore-Package. Also note that '*' does not mean
// <Import-Package>*</ImportPackage> will occur. This is simply a
// BND instruction -- the auto-discovery of imported packages still
// occurs.
instructionFirst 'Import-Package',
'!javax.enterprise*',
'javax.enterprise.context.spi;resolution:=optional',
'javax.enterprise.inject.spi;resolution:=optional',
// TODO: Shouldn't have to explicitly list the JPA packages, but
// the plugin generates them with [1.0,2) versions.
'javax.persistence;version="2.1.0"',
'javax.persistence.criteria;version="2.1.0"',
'javax.persistence.metamodel;version="2.1.0"',
'javax.persistence.spi;version="2.1.0"'
}
}
// alter the compileTestJava (src/test/java javac task) to add AP hooks
compileTestJava {
classpath += configurations.hibernateJpaModelGenTool
options.compilerArgs += [
"-processor", "org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor",
"-s", "$sourceSets.test.aptGeneratedSourceDir.absolutePath"
]
doFirst {
if ( !sourceSets.test.aptGeneratedSourceDir.exists() ) {
sourceSets.test.aptGeneratedSourceDir.mkdirs()
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
// Process 'bundle resources' for the packaging tests
////////////////////////////////////////////////////////////////////////////////////////////////////////
task copyBundleResources (type: Copy) {
ext.bundlesTargetDir = file( "${buildDir}/bundles" )
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()
}
}
processTestResources.dependsOn copyBundleResources
// create an artifact configuration composed of the test classes so that envers can access hem test classes
task testJar(type: Jar, dependsOn: testClasses) {
classifier = 'test'
from sourceSets.test.output
}
configurations {
tests
}
artifacts {
tests testJar
}