apply plugin: 'antlr' apply plugin: 'hibernate-matrix-testing' apply plugin: 'version-injection' versionInjection { into( 'org.hibernate.Version', 'getVersionString' ) } dependencies { compile( libraries.jta ) compile( libraries.dom4j ) compile( libraries.classmate ) compile( libraries.commons_annotations ) compile( libraries.jpa ) compile( libraries.javassist ) compile( libraries.antlr ) compile( libraries.jandex ) antlr( libraries.antlr ) provided( libraries.ant ) provided( libraries.jacc ) provided( libraries.validation ) testCompile( project(':hibernate-testing') ) testCompile( libraries.validation ) testCompile( libraries.jandex ) testCompile( libraries.classmate ) testCompile( libraries.mockito ) testCompile( libraries.validator ) { // for test runtime transitive = true } // for testing stored procedure support testCompile( libraries.derby ) testRuntime( 'jaxen:jaxen:1.1' ) testRuntime( libraries.javassist ) testRuntime( libraries.unified_el ) } def pomName() { return 'Core Hibernate O/RM functionality' } def pomDescription() { return 'The core O/RM functionality as provided by Hibernate' } def osgiDescription() { return pomDescription() } test { // putting this in test {} *should* indicate it is only in effect for H2 run // using parallel runs for non-in-memory databases could cause contention issues. maxParallelForks = 5; forkEvery = 200; // testLogging { // // make test events logged as LIFECYCLE so they show up in console // // this, e.g., allows us to see the name of each test as Gradle starts // // it, so we can see where (if) the build hangs in tests // events "started", "skipped", "failed" // } } jar { manifest { mainAttributes( 'Main-Class': 'org.hibernate.Version' ) instructionFirst 'Import-Package', 'javax.security.auth;resolution:=optional', 'javax.security.jacc;resolution:=optional', 'javax.validation;resolution:=optional', 'javax.validation.constraints;resolution:=optional', 'javax.validation.groups;resolution:=optional', 'javax.validation.metadata;resolution:=optional', // TODO: Shouldn't have to explicitly list this, but the plugin // generates it with a [1.0,2) version. 'javax.persistence;version="2.1.0"', // Temporarily support JTA 1.1 -- Karaf and other frameworks still // use it. Without this, the plugin generates [1.2,2). // build.gradle adds javax.transaction for all modules 'javax.transaction.xa;version="[1.1,2)"', // optionals 'javax.management;resolution:=optional', 'javax.naming.event;resolution:=optional', 'javax.naming.spi;resolution:=optional', 'org.apache.tools.ant;resolution:=optional', 'org.apache.tools.ant.taskdefs;resolution:=optional', 'org.apache.tools.ant.types;resolution:=optional' // // TODO: Uncomment once EntityManagerFactoryBuilderImpl no longer // // uses ClassLoaderServiceImpl. // instruction 'Export-Package', // 'org.hibernate.boot.registry.classloading.internal', // '*' } } ext { jaxbTargetDir = file( "${buildDir}/generated-src/jaxb/main" ) } sourceSets.main { java.srcDir jaxbTargetDir } // resources inherently exclude sources sourceSets.test.resources { setSrcDirs( ['src/test/java','src/test/resources'] ) } idea { module { sourceDirs += file( "${buildDir}/generated-src/antlr/main" ) } } task jaxb { ext { // input schemas cfgXsd = file( 'src/main/resources/org/hibernate/hibernate-configuration-4.0.xsd') hbmXsd = file( 'src/main/resources/org/hibernate/xsd/mapping/legacy-mapping-4.0.xsd' ) unifiedOrmXsd = file( 'src/main/resources/org/hibernate/xsd/mapping/mapping-2.1.0.xsd' ) // input bindings cfgXjb = file( 'src/main/xjb/hbm-configuration-bindings.xjb' ) hbmXjb = file( 'src/main/xjb/hbm-mapping-bindings.xjb' ) unifiedOrmXjb = file( 'src/main/xjb/mapping-bindings.xjb' ) } // configure Gradle up-to-date checking // inputs.files( [cfgXsd, hbmXsd, ormXsd, unifiedOrmXsd, cfgXjb, hbmXjb, ormXjb, unifiedOrmXjb] ) inputs.files( [cfgXsd, hbmXsd, unifiedOrmXsd, cfgXjb, hbmXjb, unifiedOrmXjb] ) outputs.dir( jaxbTargetDir ) // perform actions doLast { jaxbTargetDir.mkdirs() ant.taskdef(name: 'xjc', classname: 'org.jvnet.jaxb2_commons.xjc.XJC2Task', classpath: configurations.jaxb.asPath) ant.jaxbTargetDir = jaxbTargetDir // hibernate-configuration ant.xjc( destdir: '${jaxbTargetDir}', package: 'org.hibernate.jaxb.spi.cfg', binding: 'src/main/xjb/hbm-configuration-bindings.xjb', schema: cfgXsd.path ) // hibernate-mapping ant.xjc( destdir: '${jaxbTargetDir}', binding: 'src/main/xjb/hbm-mapping-bindings.xjb', schema: hbmXsd.path, extension: 'true' ) { arg line: '-Xinheritance -Xsimplify' } // unified mapping xsd ant.xjc( destdir: '${jaxbTargetDir}', binding: 'src/main/xjb/mapping-bindings.xjb', schema: unifiedOrmXsd.path, extension: 'true' ) { arg line: '-Xinheritance' } } } sourceSets.main.sourceGeneratorsTask.dependsOn jaxb sourceSets.main.sourceGeneratorsTask.dependsOn generateGrammarSource