HHH-9641 - Resume uploading Javadoc JARs to Maven
HHH-12187 - Drop custom javadoc css - delay package group calculations until execution (doFirst) - exclude internal packages from javadoc
This commit is contained in:
parent
6ccbd98bc3
commit
8c13488c5d
72
build.gradle
72
build.gradle
|
@ -359,27 +359,10 @@ subprojects { subProject ->
|
|||
}
|
||||
|
||||
javadoc {
|
||||
Set<String> apiPackages = new HashSet<>()
|
||||
Set<String> spiPackages = new HashSet<>()
|
||||
Set<String> internalPackages = new HashSet<>()
|
||||
exclude( "**/internal/*" )
|
||||
exclude( "**/generated-src/**" )
|
||||
|
||||
subProject.sourceSets.main.java.each { javaFile ->
|
||||
final String packageName = determinePackageName( subProject.sourceSets.main.java, javaFile );
|
||||
if ( packageName.endsWith( ".internal" ) || packageName.contains( ".internal." ) ) {
|
||||
internalPackages.add( packageName );
|
||||
}
|
||||
else if ( packageName.endsWith( ".spi" ) || packageName.contains( ".spi." ) ) {
|
||||
spiPackages.add( packageName );
|
||||
}
|
||||
else if ( packageName.startsWith( "org.hibernate.testing" ) ) {
|
||||
// do nothing as testing support is already handled...
|
||||
}
|
||||
else {
|
||||
apiPackages.add( packageName );
|
||||
}
|
||||
}
|
||||
|
||||
final int copyrightYear = new GregorianCalendar().get( Calendar.YEAR )
|
||||
final int currentYear = new GregorianCalendar().get( Calendar.YEAR )
|
||||
|
||||
configure( options ) {
|
||||
docletpath = configurations.asciidoclet.files.asType(List)
|
||||
|
@ -387,24 +370,55 @@ subprojects { subProject ->
|
|||
|
||||
windowTitle = "$subProject.name JavaDocs"
|
||||
docTitle = "$subProject.name JavaDocs ($project.version)"
|
||||
bottom = "Copyright © 2001-$copyrightYear <a href=\"http://redhat.com\">Red Hat, Inc.</a> All Rights Reserved."
|
||||
bottom = "Copyright © 2001-$currentYear <a href=\"http://redhat.com\">Red Hat, Inc.</a> All Rights Reserved."
|
||||
use = true
|
||||
encoding = 'UTF-8'
|
||||
links += [
|
||||
'https://docs.oracle.com/javase/8/docs/api/',
|
||||
'https://docs.jboss.org/hibernate/beanvalidation/spec/2.0/api/',
|
||||
'http://docs.oracle.com/javase/8/docs/api/',
|
||||
'http://docs.jboss.org/hibernate/beanvalidation/spec/2.0/api/',
|
||||
'http://docs.jboss.org/cdi/api/2.0/',
|
||||
'https://docs.oracle.com/javaee/7/api/'
|
||||
'http://docs.oracle.com/javaee/7/api/'
|
||||
]
|
||||
|
||||
group( 'API', apiPackages.asList() )
|
||||
group( 'SPI', spiPackages.asList() )
|
||||
group( 'Internal', internalPackages.asList() )
|
||||
group( 'Testing Support', ['org.hibernate.testing*'] )
|
||||
|
||||
if ( JavaVersion.current().isJava8Compatible() ) {
|
||||
options.addStringOption( 'Xdoclint:none', '-quiet' )
|
||||
}
|
||||
|
||||
doFirst {
|
||||
// calculation of these groups is expensive - so push
|
||||
// that process from init/configuration phase to execution
|
||||
// phase.
|
||||
//
|
||||
// Note : this does not affect UP-TO-DATE checking because
|
||||
// the groups are based on packages of the classes, and
|
||||
// if the classes change that would already trigger
|
||||
// re-execution of this task...
|
||||
|
||||
Set<String> apiPackages = new HashSet<>()
|
||||
Set<String> spiPackages = new HashSet<>()
|
||||
Set<String> testingPackages = new HashSet<String>()
|
||||
|
||||
subProject.sourceSets.main.java.each { javaFile ->
|
||||
final String packageName = determinePackageName( subProject.sourceSets.main.java, javaFile );
|
||||
if ( packageName.endsWith( ".internal" ) || packageName.contains( ".internal." ) ) {
|
||||
// nothing to do - we exclude internal packages
|
||||
}
|
||||
else if ( packageName.endsWith( ".spi" ) || packageName.contains( ".spi." ) ) {
|
||||
spiPackages.add( packageName )
|
||||
}
|
||||
else if ( packageName.startsWith( "org.hibernate.testing" ) ) {
|
||||
testingPackages += packageName
|
||||
}
|
||||
else {
|
||||
apiPackages.add( packageName )
|
||||
}
|
||||
}
|
||||
|
||||
options.group( 'API', apiPackages.asList() )
|
||||
options.group( 'SPI', spiPackages.asList() )
|
||||
options.group( 'Testing Support', testingPackages.asList() )
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -103,63 +103,27 @@ final File javadocDir = mkdir( new File( (File) project.buildDir, 'javadocs' ) )
|
|||
* Builds the JavaDocs aggregated (unified) across all the sub-projects
|
||||
*/
|
||||
task aggregateJavadocs(type: Javadoc) {
|
||||
String[] projectsToSkip = ['release','documentation', 'hibernate-orm-modules']
|
||||
|
||||
description = 'Builds the aggregated (unified) JavaDocs across all sub-projects'
|
||||
|
||||
final int copyrightYear = new GregorianCalendar().get( Calendar.YEAR );
|
||||
final int currentYear = new GregorianCalendar().get( Calendar.YEAR )
|
||||
|
||||
// exclude any generated sources (this is not working: http://forums.gradle.org/gradle/topics/excluding_generated_source_from_javadoc)
|
||||
exclude "**/generated-src/**"
|
||||
// exclude any generated sources and internal packages
|
||||
exclude( '**/generated-src/**' )
|
||||
exclude( '**/internal/**' )
|
||||
|
||||
// process each project, building up:
|
||||
// 1) appropriate sources
|
||||
// 2) classpath
|
||||
// 3) the package list for groups
|
||||
Set<String> apiPackages = new HashSet<String>()
|
||||
Set<String> spiPackages = new HashSet<String>()
|
||||
Set<String> internalPackages = new HashSet<String>()
|
||||
parent.subprojects.each{ Project subProject->
|
||||
// skip certain sub-projects
|
||||
if ( ['release','documentation', 'hibernate-orm-modules'].contains( subProject.name ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// we only care about the main SourceSet...
|
||||
source subProject.sourceSets.main.java
|
||||
|
||||
if( classpath ) {
|
||||
classpath += subProject.sourceSets.main.output + subProject.sourceSets.main.compileClasspath
|
||||
}
|
||||
else {
|
||||
classpath = subProject.sourceSets.main.output + subProject.sourceSets.main.compileClasspath
|
||||
}
|
||||
|
||||
subProject.sourceSets.main.java.each { javaFile ->
|
||||
final String packageName = determinePackageName( subProject.sourceSets.main.java, javaFile );
|
||||
if ( packageName.endsWith( ".internal" ) || packageName.contains( ".internal." ) ) {
|
||||
internalPackages.add( packageName );
|
||||
}
|
||||
else if ( packageName.endsWith( ".spi" ) || packageName.contains( ".spi." ) ) {
|
||||
spiPackages.add( packageName );
|
||||
}
|
||||
else if ( packageName.startsWith( "org.hibernate.testing" ) ) {
|
||||
// do nothing as testing support is already handled...
|
||||
}
|
||||
else {
|
||||
apiPackages.add( packageName );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// apply standard config
|
||||
maxMemory = '512m'
|
||||
destinationDir = javadocDir
|
||||
configure( options ) {
|
||||
overview = project.file( 'src/main/javadoc/overview.html' )
|
||||
windowTitle = 'Hibernate JavaDocs'
|
||||
docTitle = "Hibernate JavaDoc ($project.version)"
|
||||
bottom = "Copyright © 2001-$copyrightYear <a href=\"http://redhat.com\">Red Hat, Inc.</a> All Rights Reserved."
|
||||
use = true
|
||||
options.encoding = 'UTF-8'
|
||||
// apply standard config
|
||||
maxMemory = '512m'
|
||||
destinationDir = javadocDir
|
||||
configure( options ) {
|
||||
overview = project.file( 'src/main/javadoc/overview.html' )
|
||||
windowTitle = 'Hibernate JavaDocs'
|
||||
docTitle = "Hibernate JavaDoc ($project.version)"
|
||||
bottom = "Copyright © 2001-$currentYear <a href=\"http://redhat.com\">Red Hat, Inc.</a> All Rights Reserved."
|
||||
use = true
|
||||
options.encoding = 'UTF-8'
|
||||
|
||||
links = [
|
||||
'https://docs.oracle.com/javase/8/docs/api/',
|
||||
|
@ -168,15 +132,63 @@ task aggregateJavadocs(type: Javadoc) {
|
|||
'https://docs.oracle.com/javaee/7/api/'
|
||||
]
|
||||
|
||||
group( 'API', apiPackages.asList() )
|
||||
group( 'SPI', spiPackages.asList() )
|
||||
group( 'Internal', internalPackages.asList() )
|
||||
group ( 'Testing Support', ['org.hibernate.testing*'] )
|
||||
|
||||
if ( JavaVersion.current().isJava8Compatible() ) {
|
||||
options.addStringOption( 'Xdoclint:none', '-quiet' )
|
||||
}
|
||||
}
|
||||
|
||||
// process each project, building up:
|
||||
// 1) appropriate sources
|
||||
// 2) classpath
|
||||
parent.subprojects.each { Project subProject->
|
||||
// skip certain sub-projects
|
||||
if ( projectsToSkip.contains( subProject.name ) ) {
|
||||
return
|
||||
}
|
||||
|
||||
// we only care about the main SourceSet...
|
||||
source subProject.sourceSets.main.java
|
||||
|
||||
// if( classpath ) {
|
||||
classpath += subProject.sourceSets.main.output + subProject.sourceSets.main.compileClasspath
|
||||
// }
|
||||
// else {
|
||||
// classpath = subProject.sourceSets.main.output + subProject.sourceSets.main.compileClasspath
|
||||
// }
|
||||
}
|
||||
|
||||
doFirst {
|
||||
Set<String> apiPackages = new HashSet<String>()
|
||||
Set<String> spiPackages = new HashSet<String>()
|
||||
Set<String> testingPackages = new HashSet<String>()
|
||||
|
||||
parent.subprojects.each { Project subProject ->
|
||||
// skip certain sub-projects
|
||||
if ( projectsToSkip.contains( subProject.name ) ) {
|
||||
return
|
||||
}
|
||||
|
||||
subProject.sourceSets.main.java.each { javaFile ->
|
||||
final String packageName = determinePackageName( subProject.sourceSets.main.java, javaFile );
|
||||
if ( packageName.endsWith( ".internal" ) || packageName.contains( ".internal." ) ) {
|
||||
// do nothing - we exclude internal packages
|
||||
}
|
||||
else if ( packageName.endsWith( ".spi" ) || packageName.contains( ".spi." ) ) {
|
||||
spiPackages.add( packageName )
|
||||
}
|
||||
else if ( packageName.startsWith( "org.hibernate.testing" ) ) {
|
||||
testingPackages += packageName
|
||||
}
|
||||
else {
|
||||
apiPackages.add( packageName )
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
options.group( 'API', apiPackages.asList() )
|
||||
options.group( 'SPI', spiPackages.asList() )
|
||||
options.group( 'Testing Support', testingPackages.asList() )
|
||||
}
|
||||
}
|
||||
|
||||
asciidoctor {
|
||||
|
|
|
@ -52,14 +52,10 @@ This documentation groups packages into the following 3 categories:<ul>
|
|||
order to develop extensions to Hibernate, or to alter its behavior in some way.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Internal</strong> - classes which are intended only to be used by Hibernate. Use of these classes
|
||||
outside of Hibernate specific use cases is not supported. Moreover, these contracts can change frequently
|
||||
between releases whereas APIs and SPIs are more stable.
|
||||
<strong>Testing Support</strong> - classes from the hibernate-testing artifact used in building Hibernate test cases.
|
||||
</li>
|
||||
</ul>
|
||||
Additionally, we highlight a 4th category <strong>Testing Support</strong> which is a set of classes useful for building
|
||||
Hibernate test cases.
|
||||
<p></p>
|
||||
|
||||
<hr/>
|
||||
|
||||
Complete Hibernate documentation may be found online at <a href="http://hibernate.org/orm/documentation">http://hibernate.org/orm/documentation/</a>
|
||||
|
|
Loading…
Reference in New Issue