This commit updates URLs to prefer the https protocol. Redirects are not followed to avoid accidentally expanding intentionally shortened URLs (i.e. if using a URL shortener). # Fixed URLs ## Fixed Success These URLs were fixed successfully. * http://docs.jboss.org/jbossas/javadoc/4.0.5/connector/ migrated to: https://docs.jboss.org/jbossas/javadoc/4.0.5/connector/ ([https](https://docs.jboss.org/jbossas/javadoc/4.0.5/connector/) result 200). * http://docs.jboss.org/jbossas/javadoc/7.1.2.Final/ migrated to: https://docs.jboss.org/jbossas/javadoc/7.1.2.Final/ ([https](https://docs.jboss.org/jbossas/javadoc/7.1.2.Final/) result 200). * http://docs.oracle.com/javaee/7/api/ migrated to: https://docs.oracle.com/javaee/7/api/ ([https](https://docs.oracle.com/javaee/7/api/) result 200). * http://docs.oracle.com/javase/8/docs/api/ migrated to: https://docs.oracle.com/javase/8/docs/api/ ([https](https://docs.oracle.com/javase/8/docs/api/) result 200). * http://fasterxml.github.io/jackson-core/javadoc/2.9/ migrated to: https://fasterxml.github.io/jackson-core/javadoc/2.9/ ([https](https://fasterxml.github.io/jackson-core/javadoc/2.9/) result 200). * http://fasterxml.github.io/jackson-databind/javadoc/2.9/ migrated to: https://fasterxml.github.io/jackson-databind/javadoc/2.9/ ([https](https://fasterxml.github.io/jackson-databind/javadoc/2.9/) result 200). * http://fasterxml.github.io/jackson-dataformat-xml/javadoc/2.9/ migrated to: https://fasterxml.github.io/jackson-dataformat-xml/javadoc/2.9/ ([https](https://fasterxml.github.io/jackson-dataformat-xml/javadoc/2.9/) result 200). * http://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/ migrated to: https://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/ ([https](https://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/) result 200). * http://issues.gradle.org/browse/GRADLE-1116 migrated to: https://issues.gradle.org/browse/GRADLE-1116 ([https](https://issues.gradle.org/browse/GRADLE-1116) result 200). * http://projectreactor.io/docs/core/release/api/ migrated to: https://projectreactor.io/docs/core/release/api/ ([https](https://projectreactor.io/docs/core/release/api/) result 200). * http://tiles.apache.org/framework/apidocs/ migrated to: https://tiles.apache.org/framework/apidocs/ ([https](https://tiles.apache.org/framework/apidocs/) result 200). * http://tiles.apache.org/tiles-request/apidocs/ migrated to: https://tiles.apache.org/tiles-request/apidocs/ ([https](https://tiles.apache.org/tiles-request/apidocs/) result 200). * http://www.apache.org/licenses/LICENSE-2.0 migrated to: https://www.apache.org/licenses/LICENSE-2.0 ([https](https://www.apache.org/licenses/LICENSE-2.0) result 200). * http://www.eclipse.org/aspectj/doc/released/aspectj5rt-api/ migrated to: https://www.eclipse.org/aspectj/doc/released/aspectj5rt-api/ ([https](https://www.eclipse.org/aspectj/doc/released/aspectj5rt-api/) result 200). * http://www.reactive-streams.org/reactive-streams-1.0.1-javadoc/ migrated to: https://www.reactive-streams.org/reactive-streams-1.0.1-javadoc/ ([https](https://www.reactive-streams.org/reactive-streams-1.0.1-javadoc/) result 200). * http://docs.spring.io/spring-framework/docs migrated to: https://docs.spring.io/spring-framework/docs ([https](https://docs.spring.io/spring-framework/docs) result 301). * http://glassfish.java.net/nonav/docs/v3/api/ migrated to: https://glassfish.java.net/nonav/docs/v3/api/ ([https](https://glassfish.java.net/nonav/docs/v3/api/) result 301). * http://projects.spring.io/spring-framework migrated to: https://projects.spring.io/spring-framework ([https](https://projects.spring.io/spring-framework) result 301). * http://springframework.org/schema migrated to: https://springframework.org/schema ([https](https://springframework.org/schema) result 301). * http://ehcache.org/apidocs/2.10.4 (301) migrated to: https://www.ehcache.org/apidocs/2.10.4 ([https](https://ehcache.org/apidocs/2.10.4) result 301).
263 lines
7.0 KiB
Groovy
263 lines
7.0 KiB
Groovy
/*
|
|
* Copyright 2002-2018 the original author or authors.
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* https://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
task api(type: Javadoc) {
|
|
group = "Documentation"
|
|
description = "Generates aggregated Javadoc API documentation."
|
|
title = "${rootProject.description} ${version} API"
|
|
|
|
dependsOn {
|
|
subprojects.collect {
|
|
it.tasks.getByName("jar")
|
|
}
|
|
}
|
|
options.memberLevel = org.gradle.external.javadoc.JavadocMemberLevel.PROTECTED
|
|
options.author = true
|
|
options.header = rootProject.description
|
|
options.use = true
|
|
options.overview = "src/docs/api/overview.html"
|
|
options.stylesheetFile = file("src/docs/api/stylesheet.css")
|
|
options.splitIndex = true
|
|
options.links(project.ext.javadocLinks)
|
|
options.addStringOption('Xdoclint:none', '-quiet')
|
|
|
|
source subprojects.collect { project ->
|
|
project.sourceSets.main.allJava
|
|
}
|
|
|
|
maxMemory = "1024m"
|
|
destinationDir = new File(buildDir, "api")
|
|
|
|
doFirst {
|
|
classpath = files(
|
|
// ensure the javadoc process can resolve types compiled from .aj sources
|
|
project(":spring-aspects").sourceSets.main.output
|
|
)
|
|
classpath += files(subprojects.collect { it.sourceSets.main.compileClasspath })
|
|
}
|
|
}
|
|
|
|
dokka {
|
|
dependsOn {
|
|
tasks.getByName("api")
|
|
}
|
|
doFirst {
|
|
classpath = subprojects.collect { project -> project.jar.outputs.files.getFiles() }.flatten()
|
|
classpath += files(subprojects.collect { it.sourceSets.main.compileClasspath })
|
|
|
|
}
|
|
moduleName = "spring-framework"
|
|
outputFormat = "html"
|
|
outputDirectory = "$buildDir/docs/kdoc"
|
|
|
|
sourceDirs = files(subprojects.collect { project ->
|
|
def kotlinDirs = project.sourceSets.main.kotlin.srcDirs.collect()
|
|
kotlinDirs -= project.sourceSets.main.java.srcDirs
|
|
})
|
|
externalDocumentationLink {
|
|
url = new URL("https://docs.spring.io/spring-framework/docs/$version/javadoc-api/")
|
|
packageListUrl = new File(buildDir, "api/package-list").toURI().toURL()
|
|
}
|
|
externalDocumentationLink {
|
|
url = new URL("https://projectreactor.io/docs/core/release/api/")
|
|
}
|
|
externalDocumentationLink {
|
|
url = new URL("https://www.reactive-streams.org/reactive-streams-1.0.1-javadoc/")
|
|
}
|
|
}
|
|
|
|
configurations {
|
|
docs
|
|
}
|
|
|
|
dependencies {
|
|
// for documentation resources
|
|
docs "io.spring.docresources:spring-doc-resources:0.1.0.RELEASE@zip"
|
|
}
|
|
|
|
task extractDocResources(type: Sync) {
|
|
dependsOn configurations.docs
|
|
from "src/docs/asciidoc/"
|
|
from {
|
|
configurations.docs.collect { zipTree(it) }
|
|
}
|
|
into "$buildDir/asciidoc/build"
|
|
}
|
|
|
|
asciidoctor {
|
|
sourceDir "$buildDir/asciidoc/build"
|
|
sources {
|
|
include '*.adoc'
|
|
}
|
|
resources {
|
|
from(sourceDir) {
|
|
include 'images/*', 'css/**', 'js/**'
|
|
}
|
|
}
|
|
logDocuments = true
|
|
backends = ["html5"]
|
|
// only ouput PDF documentation for non-SNAPSHOT builds
|
|
if(!project.getVersion().toString().contains("BUILD-SNAPSHOT")) {
|
|
backends += "pdf"
|
|
}
|
|
options doctype: 'book', eruby: 'erubis'
|
|
attributes 'icons': 'font',
|
|
'idprefix': '',
|
|
'idseparator': '-',
|
|
docinfo: 'shared',
|
|
revnumber: project.version,
|
|
sectanchors: '',
|
|
sectnums: '',
|
|
'source-highlighter=highlight.js',
|
|
'highlightjsdir=js/highlight',
|
|
'highlightjs-theme=atom-one-dark-reasonable',
|
|
stylesdir: "css/",
|
|
stylesheet: 'spring.css',
|
|
'spring-version': project.version
|
|
|
|
}
|
|
|
|
asciidoctor.dependsOn extractDocResources
|
|
|
|
task docsZip(type: Zip, dependsOn: ['api', 'asciidoctor', 'dokka']) {
|
|
group = "Distribution"
|
|
baseName = "spring-framework"
|
|
classifier = "docs"
|
|
description = "Builds -${classifier} archive containing api and reference " +
|
|
"for deployment at https://docs.spring.io/spring-framework/docs."
|
|
|
|
from("src/dist") {
|
|
include "changelog.txt"
|
|
}
|
|
|
|
from (api) {
|
|
into "javadoc-api"
|
|
}
|
|
|
|
from ("$asciidoctor.outputDir/html5") {
|
|
into "spring-framework-reference"
|
|
}
|
|
|
|
from ("$asciidoctor.outputDir/pdf") {
|
|
into "spring-framework-reference/pdf"
|
|
}
|
|
|
|
from (dokka) {
|
|
into "kdoc-api"
|
|
}
|
|
}
|
|
|
|
task schemaZip(type: Zip) {
|
|
group = "Distribution"
|
|
baseName = "spring-framework"
|
|
classifier = "schema"
|
|
description = "Builds -${classifier} archive containing all " +
|
|
"XSDs for deployment at https://springframework.org/schema."
|
|
duplicatesStrategy 'exclude'
|
|
moduleProjects.each { subproject ->
|
|
def Properties schemas = new Properties();
|
|
|
|
subproject.sourceSets.main.resources.find {
|
|
it.path.endsWith("META-INF/spring.schemas")
|
|
}?.withInputStream { schemas.load(it) }
|
|
|
|
for (def key : schemas.keySet()) {
|
|
def shortName = key.replaceAll(/http.*schema.(.*).spring-.*/, '$1')
|
|
assert shortName != key
|
|
File xsdFile = subproject.sourceSets.main.resources.find {
|
|
it.path.endsWith(schemas.get(key))
|
|
}
|
|
assert xsdFile != null
|
|
into (shortName) {
|
|
from xsdFile.path
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
task distZip(type: Zip, dependsOn: [docsZip, schemaZip]) {
|
|
|
|
group = "Distribution"
|
|
baseName = "spring-framework"
|
|
classifier = "dist"
|
|
description = "Builds -${classifier} archive, containing all jars and docs, " +
|
|
"suitable for community download page."
|
|
|
|
ext.baseDir = "${baseName}-${project.version}";
|
|
|
|
from("src/docs/dist") {
|
|
include "readme.txt"
|
|
include "license.txt"
|
|
include "notice.txt"
|
|
into "${baseDir}"
|
|
expand(copyright: new Date().format("yyyy"), version: project.version)
|
|
}
|
|
|
|
from(zipTree(docsZip.archivePath)) {
|
|
into "${baseDir}/docs"
|
|
}
|
|
|
|
from(zipTree(schemaZip.archivePath)) {
|
|
into "${baseDir}/schema"
|
|
}
|
|
|
|
moduleProjects.each { subproject ->
|
|
into ("${baseDir}/libs") {
|
|
from subproject.jar
|
|
if (subproject.tasks.findByPath("sourcesJar")) {
|
|
from subproject.sourcesJar
|
|
}
|
|
if (subproject.tasks.findByPath("javadocJar")) {
|
|
from subproject.javadocJar
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
distZip.mustRunAfter subprojects.test
|
|
|
|
// Create a distribution that contains all dependencies (required and optional).
|
|
// Not published by default; only for use when building from source.
|
|
task depsZip(type: Zip, dependsOn: distZip) { zipTask ->
|
|
group = "Distribution"
|
|
baseName = "spring-framework"
|
|
classifier = "dist-with-deps"
|
|
description = "Builds -${classifier} archive, containing everything " +
|
|
"in the -${distZip.classifier} archive plus all runtime dependencies."
|
|
|
|
from zipTree(distZip.archivePath)
|
|
|
|
gradle.taskGraph.whenReady { taskGraph ->
|
|
if (taskGraph.hasTask(":${zipTask.name}")) {
|
|
def projectNames = rootProject.subprojects*.name
|
|
def artifacts = new HashSet()
|
|
subprojects.each { subproject ->
|
|
(subproject.configurations.runtime.resolvedConfiguration.resolvedArtifacts +
|
|
subproject.configurations.optional.resolvedConfiguration.resolvedArtifacts).each { artifact ->
|
|
def dependency = artifact.moduleVersion.id
|
|
if (!projectNames.contains(dependency.name)) {
|
|
artifacts << artifact.file
|
|
}
|
|
}
|
|
}
|
|
|
|
zipTask.from(artifacts) {
|
|
into "${distZip.baseDir}/deps"
|
|
}
|
|
}
|
|
}
|
|
}
|