Browse Source

Create framework-docs module

This commit creates a new "framework-docs" module, which is dedicated to
documentation generation (reference and API docs).
This commit refactors the build configuration and moves the asciidoc
files to a separate location, but does not change the name nor the
nature of published artifacts.

Closes gh-29417
pull/29167/head
Brian Clozel 2 years ago
parent
commit
acd9016fc3
  1. 1
      .gitignore
  2. 6
      CONTRIBUTING.md
  3. 4
      README.md
  4. 19
      build.gradle
  5. 49
      framework-docs/framework-docs.gradle
  6. 0
      framework-docs/src/docs/api/overview.html
  7. 0
      framework-docs/src/docs/asciidoc/appendix.adoc
  8. 0
      framework-docs/src/docs/asciidoc/core.adoc
  9. 0
      framework-docs/src/docs/asciidoc/core/core-aop-api.adoc
  10. 0
      framework-docs/src/docs/asciidoc/core/core-aop.adoc
  11. 0
      framework-docs/src/docs/asciidoc/core/core-aot.adoc
  12. 0
      framework-docs/src/docs/asciidoc/core/core-appendix.adoc
  13. 0
      framework-docs/src/docs/asciidoc/core/core-beans.adoc
  14. 0
      framework-docs/src/docs/asciidoc/core/core-databuffer-codec.adoc
  15. 0
      framework-docs/src/docs/asciidoc/core/core-expressions.adoc
  16. 0
      framework-docs/src/docs/asciidoc/core/core-null-safety.adoc
  17. 0
      framework-docs/src/docs/asciidoc/core/core-resources.adoc
  18. 0
      framework-docs/src/docs/asciidoc/core/core-spring-jcl.adoc
  19. 0
      framework-docs/src/docs/asciidoc/core/core-validation.adoc
  20. 0
      framework-docs/src/docs/asciidoc/data-access.adoc
  21. 0
      framework-docs/src/docs/asciidoc/data-access/data-access-appendix.adoc
  22. 0
      framework-docs/src/docs/asciidoc/images/DataAccessException.png
  23. 0
      framework-docs/src/docs/asciidoc/images/aop-proxy-call.png
  24. 0
      framework-docs/src/docs/asciidoc/images/aop-proxy-plain-pojo-call.png
  25. 0
      framework-docs/src/docs/asciidoc/images/container-magic.png
  26. 0
      framework-docs/src/docs/asciidoc/images/message-flow-broker-relay.png
  27. 0
      framework-docs/src/docs/asciidoc/images/message-flow-simple-broker.png
  28. 0
      framework-docs/src/docs/asciidoc/images/mvc-context-hierarchy.png
  29. 0
      framework-docs/src/docs/asciidoc/images/mvc-context-hierarchy.svg
  30. 0
      framework-docs/src/docs/asciidoc/images/oxm-exceptions.graffle
  31. 0
      framework-docs/src/docs/asciidoc/images/oxm-exceptions.png
  32. 0
      framework-docs/src/docs/asciidoc/images/prototype.png
  33. 0
      framework-docs/src/docs/asciidoc/images/singleton.png
  34. 0
      framework-docs/src/docs/asciidoc/images/spring-mvc-and-webflux-venn.png
  35. 0
      framework-docs/src/docs/asciidoc/images/tx.png
  36. 0
      framework-docs/src/docs/asciidoc/images/tx_prop_required.png
  37. 0
      framework-docs/src/docs/asciidoc/images/tx_prop_requires_new.png
  38. 0
      framework-docs/src/docs/asciidoc/index-docinfo-header.html
  39. 0
      framework-docs/src/docs/asciidoc/index.adoc
  40. 0
      framework-docs/src/docs/asciidoc/integration.adoc
  41. 0
      framework-docs/src/docs/asciidoc/integration/integration-appendix.adoc
  42. 0
      framework-docs/src/docs/asciidoc/languages.adoc
  43. 0
      framework-docs/src/docs/asciidoc/languages/dynamic-languages.adoc
  44. 0
      framework-docs/src/docs/asciidoc/languages/groovy.adoc
  45. 0
      framework-docs/src/docs/asciidoc/languages/kotlin.adoc
  46. 0
      framework-docs/src/docs/asciidoc/overview.adoc
  47. 0
      framework-docs/src/docs/asciidoc/rsocket.adoc
  48. 0
      framework-docs/src/docs/asciidoc/testing.adoc
  49. 0
      framework-docs/src/docs/asciidoc/testing/testing-webtestclient.adoc
  50. 0
      framework-docs/src/docs/asciidoc/web-reactive.adoc
  51. 0
      framework-docs/src/docs/asciidoc/web.adoc
  52. 0
      framework-docs/src/docs/asciidoc/web/integration.adoc
  53. 0
      framework-docs/src/docs/asciidoc/web/web-data-binding-model-design.adoc
  54. 0
      framework-docs/src/docs/asciidoc/web/web-uris.adoc
  55. 0
      framework-docs/src/docs/asciidoc/web/webflux-cors.adoc
  56. 0
      framework-docs/src/docs/asciidoc/web/webflux-functional.adoc
  57. 0
      framework-docs/src/docs/asciidoc/web/webflux-view.adoc
  58. 0
      framework-docs/src/docs/asciidoc/web/webflux-webclient.adoc
  59. 0
      framework-docs/src/docs/asciidoc/web/webflux-websocket.adoc
  60. 0
      framework-docs/src/docs/asciidoc/web/webflux.adoc
  61. 0
      framework-docs/src/docs/asciidoc/web/webmvc-client.adoc
  62. 0
      framework-docs/src/docs/asciidoc/web/webmvc-cors.adoc
  63. 0
      framework-docs/src/docs/asciidoc/web/webmvc-functional.adoc
  64. 0
      framework-docs/src/docs/asciidoc/web/webmvc-test.adoc
  65. 0
      framework-docs/src/docs/asciidoc/web/webmvc-view.adoc
  66. 0
      framework-docs/src/docs/asciidoc/web/webmvc.adoc
  67. 0
      framework-docs/src/docs/asciidoc/web/websocket-intro.adoc
  68. 0
      framework-docs/src/docs/asciidoc/web/websocket.adoc
  69. 0
      framework-docs/src/docs/dist/license.txt
  70. 0
      framework-docs/src/docs/dist/notice.txt
  71. 0
      framework-docs/src/docs/dist/readme.txt
  72. 0
      framework-docs/src/docs/spring-framework.png
  73. 7
      gradle/spring-module.gradle
  74. 1
      settings.gradle
  75. 599
      src/docs/api/stylesheet.css

1
.gitignore vendored

@ -22,6 +22,7 @@ derby.log @@ -22,6 +22,7 @@ derby.log
buildSrc/build
/spring-*/build
/framework-bom/build
/framework-docs/build
/integration-tests/build
/src/asciidoc/build
spring-test/test-output/

6
CONTRIBUTING.md

@ -123,12 +123,12 @@ define the source file coding standards we use along with some IDEA editor setti @@ -123,12 +123,12 @@ define the source file coding standards we use along with some IDEA editor setti
### Reference Docs
The reference documentation is in the [src/docs/asciidoc](src/docs/asciidoc) directory, in
The reference documentation is in the [framework-docs/src/docs/asciidoc](framework-docs/src/docs/asciidoc) directory, in
[Asciidoctor](https://asciidoctor.org/) format. For trivial changes, you may be able to browse,
edit source files, and submit directly from GitHub.
When making changes locally, execute `./gradlew asciidoctor` and then browse the result under
`build/docs/ref-docs/html5/index.html`.
When making changes locally, execute `./gradlew :framework-docs:asciidoctor` and then browse the result under
`framework-docs/build/docs/ref-docs/html5/index.html`.
Asciidoctor also supports live editing. For more details see
[AsciiDoc Tooling](https://docs.asciidoctor.org/asciidoctor/latest/tooling/).

4
README.md

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
# <img src="src/docs/spring-framework.png" width="80" height="80"> Spring Framework [![Build Status](https://ci.spring.io/api/v1/teams/spring-framework/pipelines/spring-framework-5.3.x/jobs/build/badge)](https://ci.spring.io/teams/spring-framework/pipelines/spring-framework-5.3.x?groups=Build") [![Revved up by Gradle Enterprise](https://img.shields.io/badge/Revved%20up%20by-Gradle%20Enterprise-06A0CE?logo=Gradle&labelColor=02303A)](https://ge.spring.io/scans?search.rootProjectNames=spring)
# <img src="framework-docs/src/docs/spring-framework.png" width="80" height="80"> Spring Framework [![Build Status](https://ci.spring.io/api/v1/teams/spring-framework/pipelines/spring-framework-5.3.x/jobs/build/badge)](https://ci.spring.io/teams/spring-framework/pipelines/spring-framework-5.3.x?groups=Build") [![Revved up by Gradle Enterprise](https://img.shields.io/badge/Revved%20up%20by-Gradle%20Enterprise-06A0CE?logo=Gradle&labelColor=02303A)](https://ge.spring.io/scans?search.rootProjectNames=spring)
This is the home of the Spring Framework: the foundation for all [Spring projects](https://spring.io/projects). Collectively the Spring Framework and the family of Spring projects are often referred to simply as "Spring".
@ -14,7 +14,7 @@ For access to artifacts or a distribution zip, see the [Spring Framework Artifac @@ -14,7 +14,7 @@ For access to artifacts or a distribution zip, see the [Spring Framework Artifac
## Documentation
The Spring Framework maintains reference documentation ([published](https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/) and [source](src/docs/asciidoc)), GitHub [wiki pages](https://github.com/spring-projects/spring-framework/wiki), and an
The Spring Framework maintains reference documentation ([published](https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/) and [source](framework-docs/src/docs/asciidoc)), GitHub [wiki pages](https://github.com/spring-projects/spring-framework/wiki), and an
[API reference](https://docs.spring.io/spring-framework/docs/current/javadoc-api/). There are also [guides and tutorials](https://spring.io/guides) across Spring projects.
## Micro-Benchmarks

19
build.gradle

@ -1,11 +1,11 @@ @@ -1,11 +1,11 @@
plugins {
id 'io.spring.nohttp' version '0.0.10'
id 'io.freefair.aspectj' version '6.5.0.3' apply false
id 'org.jetbrains.dokka' version '1.7.20' apply false
id 'org.jetbrains.kotlin.jvm' version '1.7.20' apply false
id 'org.jetbrains.kotlin.plugin.serialization' version '1.7.20' apply false
id 'org.asciidoctor.jvm.convert' version '3.3.2'
id 'org.asciidoctor.jvm.pdf' version '3.3.2'
id 'org.jetbrains.dokka' version '1.7.20'
id 'org.asciidoctor.jvm.convert' version '3.3.2' apply false
id 'org.asciidoctor.jvm.pdf' version '3.3.2' apply false
id 'org.unbroken-dome.xjc' version '2.0.0' apply false
id 'com.github.ben-manes.versions' version '0.42.0'
id 'com.github.johnrengelman.shadow' version '7.1.2' apply false
@ -60,8 +60,6 @@ configure([rootProject] + javaProjects) { project -> @@ -60,8 +60,6 @@ configure([rootProject] + javaProjects) { project ->
}
pluginManager.withPlugin("kotlin") {
apply plugin: "org.jetbrains.dokka"
apply from: "${rootDir}/gradle/docs-dokka.gradle"
compileKotlin {
kotlinOptions {
@ -170,8 +168,6 @@ configure(rootProject) { @@ -170,8 +168,6 @@ configure(rootProject) {
apply plugin: "kotlin"
apply plugin: "io.spring.nohttp"
apply plugin: 'org.springframework.build.api-diff'
apply from: "${rootDir}/gradle/publications.gradle"
apply from: "${rootDir}/gradle/docs.gradle"
nohttp {
source.exclude "**/test-output/**"
@ -192,13 +188,4 @@ configure(rootProject) { @@ -192,13 +188,4 @@ configure(rootProject) {
maxHeapSize = "1g"
}
publishing {
publications {
mavenJava(MavenPublication) {
artifact docsZip
artifact schemaZip
artifact distZip
}
}
}
}

49
gradle/docs.gradle → framework-docs/framework-docs.gradle

@ -1,7 +1,23 @@ @@ -1,7 +1,23 @@
description = "Spring Framework Docs"
apply plugin: 'kotlin'
apply plugin: 'org.asciidoctor.jvm.convert'
apply plugin: 'org.asciidoctor.jvm.pdf'
apply from: "${rootDir}/gradle/publications.gradle"
configurations {
asciidoctorExtensions
}
jar {
enabled = false
}
javadoc {
enabled = false
}
dependencies {
asciidoctorExtensions "io.spring.asciidoctor.backends:spring-asciidoctor-backends:0.0.3"
}
@ -39,7 +55,7 @@ task api(type: Javadoc) { @@ -39,7 +55,7 @@ task api(type: Javadoc) {
author = true
header = rootProject.description
use = true
overview = "src/docs/api/overview.html"
overview = "framework-docs/src/docs/api/overview.html"
splitIndex = true
links(project.ext.javadocLinks)
addBooleanOption('Xdoclint:syntax', true) // only check syntax with doclint
@ -55,14 +71,12 @@ task api(type: Javadoc) { @@ -55,14 +71,12 @@ task api(type: Javadoc) {
/**
* Produce KDoc for all Spring Framework modules in "build/docs/kdoc"
*/
pluginManager.withPlugin("kotlin") {
tasks.dokkaHtmlMultiModule.configure {
dependsOn {
tasks.getByName("api")
}
moduleName.set("spring-framework")
outputDirectory.set(project.file("$buildDir/docs/kdoc"))
rootProject.tasks.dokkaHtmlMultiModule.configure {
dependsOn {
tasks.getByName("api")
}
moduleName.set("spring-framework")
outputDirectory.set(project.file("$buildDir/docs/kdoc"))
}
asciidoctorj {
@ -87,8 +101,8 @@ asciidoctorj { @@ -87,8 +101,8 @@ asciidoctorj {
}
/**
* Generate the Spring Framework Reference documentation from "src/docs/asciidoc"
* in "build/docs/ref-docs/html5".
* Generate the Spring Framework Reference documentation from
* "src/docs/asciidoc" in "build/docs/ref-docs/html5".
*/
asciidoctor {
baseDirFollowsSourceDir()
@ -128,7 +142,7 @@ asciidoctorPdf { @@ -128,7 +142,7 @@ asciidoctorPdf {
/**
* Zip all docs (API and reference) into a single archive
*/
task docsZip(type: Zip, dependsOn: ['api', 'asciidoctor', 'asciidoctorPdf', 'dokkaHtmlMultiModule']) {
task docsZip(type: Zip, dependsOn: ['api', 'asciidoctor', 'asciidoctorPdf', rootProject.tasks.dokkaHtmlMultiModule]) {
group = "Distribution"
description = "Builds -${archiveClassifier} archive containing api and reference " +
"for deployment at https://docs.spring.io/spring-framework/docs/."
@ -147,7 +161,7 @@ task docsZip(type: Zip, dependsOn: ['api', 'asciidoctor', 'asciidoctorPdf', 'dok @@ -147,7 +161,7 @@ task docsZip(type: Zip, dependsOn: ['api', 'asciidoctor', 'asciidoctorPdf', 'dok
from ("$asciidoctorPdf.outputDir") {
into "reference/pdf"
}
from (dokkaHtmlMultiModule.outputDirectory) {
from (rootProject.tasks.dokkaHtmlMultiModule.outputDirectory) {
into "kdoc-api"
}
}
@ -226,3 +240,14 @@ task distZip(type: Zip, dependsOn: [docsZip, schemaZip]) { @@ -226,3 +240,14 @@ task distZip(type: Zip, dependsOn: [docsZip, schemaZip]) {
}
distZip.mustRunAfter moduleProjects.check
publishing {
publications {
mavenJava(MavenPublication) {
artifact docsZip
artifact schemaZip
artifact distZip
}
}
}

0
src/docs/api/overview.html → framework-docs/src/docs/api/overview.html

0
src/docs/asciidoc/appendix.adoc → framework-docs/src/docs/asciidoc/appendix.adoc

0
src/docs/asciidoc/core.adoc → framework-docs/src/docs/asciidoc/core.adoc

0
src/docs/asciidoc/core/core-aop-api.adoc → framework-docs/src/docs/asciidoc/core/core-aop-api.adoc

0
src/docs/asciidoc/core/core-aop.adoc → framework-docs/src/docs/asciidoc/core/core-aop.adoc

0
src/docs/asciidoc/core/core-aot.adoc → framework-docs/src/docs/asciidoc/core/core-aot.adoc

0
src/docs/asciidoc/core/core-appendix.adoc → framework-docs/src/docs/asciidoc/core/core-appendix.adoc

0
src/docs/asciidoc/core/core-beans.adoc → framework-docs/src/docs/asciidoc/core/core-beans.adoc

0
src/docs/asciidoc/core/core-databuffer-codec.adoc → framework-docs/src/docs/asciidoc/core/core-databuffer-codec.adoc

0
src/docs/asciidoc/core/core-expressions.adoc → framework-docs/src/docs/asciidoc/core/core-expressions.adoc

0
src/docs/asciidoc/core/core-null-safety.adoc → framework-docs/src/docs/asciidoc/core/core-null-safety.adoc

0
src/docs/asciidoc/core/core-resources.adoc → framework-docs/src/docs/asciidoc/core/core-resources.adoc

0
src/docs/asciidoc/core/core-spring-jcl.adoc → framework-docs/src/docs/asciidoc/core/core-spring-jcl.adoc

0
src/docs/asciidoc/core/core-validation.adoc → framework-docs/src/docs/asciidoc/core/core-validation.adoc

0
src/docs/asciidoc/data-access.adoc → framework-docs/src/docs/asciidoc/data-access.adoc

0
src/docs/asciidoc/data-access/data-access-appendix.adoc → framework-docs/src/docs/asciidoc/data-access/data-access-appendix.adoc

0
src/docs/asciidoc/images/DataAccessException.png → framework-docs/src/docs/asciidoc/images/DataAccessException.png

Before

Width:  |  Height:  |  Size: 8.7 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB

0
src/docs/asciidoc/images/aop-proxy-call.png → framework-docs/src/docs/asciidoc/images/aop-proxy-call.png

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

0
src/docs/asciidoc/images/aop-proxy-plain-pojo-call.png → framework-docs/src/docs/asciidoc/images/aop-proxy-plain-pojo-call.png

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

0
src/docs/asciidoc/images/container-magic.png → framework-docs/src/docs/asciidoc/images/container-magic.png

Before

Width:  |  Height:  |  Size: 8.5 KiB

After

Width:  |  Height:  |  Size: 8.5 KiB

0
src/docs/asciidoc/images/message-flow-broker-relay.png → framework-docs/src/docs/asciidoc/images/message-flow-broker-relay.png

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 78 KiB

0
src/docs/asciidoc/images/message-flow-simple-broker.png → framework-docs/src/docs/asciidoc/images/message-flow-simple-broker.png

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 64 KiB

0
src/docs/asciidoc/images/mvc-context-hierarchy.png → framework-docs/src/docs/asciidoc/images/mvc-context-hierarchy.png

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 63 KiB

0
src/docs/asciidoc/images/mvc-context-hierarchy.svg → framework-docs/src/docs/asciidoc/images/mvc-context-hierarchy.svg

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB

0
src/docs/asciidoc/images/oxm-exceptions.graffle → framework-docs/src/docs/asciidoc/images/oxm-exceptions.graffle

0
src/docs/asciidoc/images/oxm-exceptions.png → framework-docs/src/docs/asciidoc/images/oxm-exceptions.png

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

0
src/docs/asciidoc/images/prototype.png → framework-docs/src/docs/asciidoc/images/prototype.png

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 82 KiB

0
src/docs/asciidoc/images/singleton.png → framework-docs/src/docs/asciidoc/images/singleton.png

Before

Width:  |  Height:  |  Size: 84 KiB

After

Width:  |  Height:  |  Size: 84 KiB

0
src/docs/asciidoc/images/spring-mvc-and-webflux-venn.png → framework-docs/src/docs/asciidoc/images/spring-mvc-and-webflux-venn.png

Before

Width:  |  Height:  |  Size: 102 KiB

After

Width:  |  Height:  |  Size: 102 KiB

0
src/docs/asciidoc/images/tx.png → framework-docs/src/docs/asciidoc/images/tx.png

Before

Width:  |  Height:  |  Size: 81 KiB

After

Width:  |  Height:  |  Size: 81 KiB

0
src/docs/asciidoc/images/tx_prop_required.png → framework-docs/src/docs/asciidoc/images/tx_prop_required.png

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 39 KiB

0
src/docs/asciidoc/images/tx_prop_requires_new.png → framework-docs/src/docs/asciidoc/images/tx_prop_requires_new.png

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 47 KiB

0
src/docs/asciidoc/index-docinfo-header.html → framework-docs/src/docs/asciidoc/index-docinfo-header.html

0
src/docs/asciidoc/index.adoc → framework-docs/src/docs/asciidoc/index.adoc

0
src/docs/asciidoc/integration.adoc → framework-docs/src/docs/asciidoc/integration.adoc

0
src/docs/asciidoc/integration/integration-appendix.adoc → framework-docs/src/docs/asciidoc/integration/integration-appendix.adoc

0
src/docs/asciidoc/languages.adoc → framework-docs/src/docs/asciidoc/languages.adoc

0
src/docs/asciidoc/languages/dynamic-languages.adoc → framework-docs/src/docs/asciidoc/languages/dynamic-languages.adoc

0
src/docs/asciidoc/languages/groovy.adoc → framework-docs/src/docs/asciidoc/languages/groovy.adoc

0
src/docs/asciidoc/languages/kotlin.adoc → framework-docs/src/docs/asciidoc/languages/kotlin.adoc

0
src/docs/asciidoc/overview.adoc → framework-docs/src/docs/asciidoc/overview.adoc

0
src/docs/asciidoc/rsocket.adoc → framework-docs/src/docs/asciidoc/rsocket.adoc

0
src/docs/asciidoc/testing.adoc → framework-docs/src/docs/asciidoc/testing.adoc

0
src/docs/asciidoc/testing/testing-webtestclient.adoc → framework-docs/src/docs/asciidoc/testing/testing-webtestclient.adoc

0
src/docs/asciidoc/web-reactive.adoc → framework-docs/src/docs/asciidoc/web-reactive.adoc

0
src/docs/asciidoc/web.adoc → framework-docs/src/docs/asciidoc/web.adoc

0
src/docs/asciidoc/web/integration.adoc → framework-docs/src/docs/asciidoc/web/integration.adoc

0
src/docs/asciidoc/web/web-data-binding-model-design.adoc → framework-docs/src/docs/asciidoc/web/web-data-binding-model-design.adoc

0
src/docs/asciidoc/web/web-uris.adoc → framework-docs/src/docs/asciidoc/web/web-uris.adoc

0
src/docs/asciidoc/web/webflux-cors.adoc → framework-docs/src/docs/asciidoc/web/webflux-cors.adoc

0
src/docs/asciidoc/web/webflux-functional.adoc → framework-docs/src/docs/asciidoc/web/webflux-functional.adoc

0
src/docs/asciidoc/web/webflux-view.adoc → framework-docs/src/docs/asciidoc/web/webflux-view.adoc

0
src/docs/asciidoc/web/webflux-webclient.adoc → framework-docs/src/docs/asciidoc/web/webflux-webclient.adoc

0
src/docs/asciidoc/web/webflux-websocket.adoc → framework-docs/src/docs/asciidoc/web/webflux-websocket.adoc

0
src/docs/asciidoc/web/webflux.adoc → framework-docs/src/docs/asciidoc/web/webflux.adoc

0
src/docs/asciidoc/web/webmvc-client.adoc → framework-docs/src/docs/asciidoc/web/webmvc-client.adoc

0
src/docs/asciidoc/web/webmvc-cors.adoc → framework-docs/src/docs/asciidoc/web/webmvc-cors.adoc

0
src/docs/asciidoc/web/webmvc-functional.adoc → framework-docs/src/docs/asciidoc/web/webmvc-functional.adoc

0
src/docs/asciidoc/web/webmvc-test.adoc → framework-docs/src/docs/asciidoc/web/webmvc-test.adoc

0
src/docs/asciidoc/web/webmvc-view.adoc → framework-docs/src/docs/asciidoc/web/webmvc-view.adoc

0
src/docs/asciidoc/web/webmvc.adoc → framework-docs/src/docs/asciidoc/web/webmvc.adoc

0
src/docs/asciidoc/web/websocket-intro.adoc → framework-docs/src/docs/asciidoc/web/websocket-intro.adoc

0
src/docs/asciidoc/web/websocket.adoc → framework-docs/src/docs/asciidoc/web/websocket.adoc

0
src/docs/dist/license.txt → framework-docs/src/docs/dist/license.txt vendored

0
src/docs/dist/notice.txt → framework-docs/src/docs/dist/notice.txt vendored

0
src/docs/dist/readme.txt → framework-docs/src/docs/dist/readme.txt vendored

0
src/docs/spring-framework.png → framework-docs/src/docs/spring-framework.png

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

7
gradle/spring-module.gradle

@ -13,6 +13,11 @@ dependencies { @@ -13,6 +13,11 @@ dependencies {
jmh 'net.sf.jopt-simple:jopt-simple'
}
pluginManager.withPlugin("kotlin") {
apply plugin: "org.jetbrains.dokka"
apply from: "${rootDir}/gradle/docs-dokka.gradle"
}
jmh {
duplicateClassesStrategy = DuplicatesStrategy.EXCLUDE
}
@ -44,7 +49,7 @@ jar { @@ -44,7 +49,7 @@ jar {
manifest.attributes["Created-By"] =
"${System.getProperty("java.version")} (${System.getProperty("java.specification.vendor")})"
from("${rootDir}/src/docs/dist") {
from("${rootDir}/framework-docs/src/docs/dist") {
include "license.txt"
include "notice.txt"
into "META-INF"

1
settings.gradle

@ -35,6 +35,7 @@ include "spring-webflux" @@ -35,6 +35,7 @@ include "spring-webflux"
include "spring-webmvc"
include "spring-websocket"
include "framework-bom"
include "framework-docs"
include "framework-platform"
include "integration-tests"

599
src/docs/api/stylesheet.css

@ -1,599 +0,0 @@ @@ -1,599 +0,0 @@
/* Javadoc style sheet */
/*
Overall document style
*/
@import url('resources/fonts/dejavu.css');
body {
background-color:#ffffff;
color:#353833;
font-family:'DejaVu Sans', Arial, Helvetica, sans-serif;
font-size:14px;
margin:0;
}
a:link, a:visited {
text-decoration:none;
color:#4A6782;
}
a:hover, a:focus {
text-decoration:none;
color:#bb7a2a;
}
a:active {
text-decoration:none;
color:#4A6782;
}
a[name] {
color:#353833;
}
a[name]:hover {
text-decoration:none;
color:#353833;
}
pre {
font-family:'DejaVu Sans Mono', monospace;
font-size:14px;
}
h1 {
font-size:20px;
}
h2 {
font-size:18px;
}
h3 {
font-size:16px;
font-style:italic;
}
h4 {
font-size:13px;
}
h5 {
font-size:12px;
}
h6 {
font-size:11px;
}
ul {
list-style-type:disc;
}
code, tt {
font-family:'DejaVu Sans Mono', monospace;
font-size:14px;
padding-top:4px;
margin-top:8px;
line-height:1.4em;
}
dt code {
font-family:'DejaVu Sans Mono', monospace;
font-size:14px;
padding-top:4px;
}
table tr td dt code {
font-family:'DejaVu Sans Mono', monospace;
font-size:14px;
vertical-align:top;
padding-top:4px;
}
sup {
font-size:8px;
}
/*
Document title and Copyright styles
*/
.clear {
clear:both;
height:0px;
overflow:hidden;
}
.aboutLanguage {
float:right;
padding:0px 21px;
font-size:11px;
z-index:200;
margin-top:-9px;
}
.legalCopy {
margin-left:.5em;
}
.bar a, .bar a:link, .bar a:visited, .bar a:active {
color:#FFFFFF;
text-decoration:none;
}
.bar a:hover, .bar a:focus {
color:#bb7a2a;
}
.tab {
background-color:#0066FF;
color:#ffffff;
padding:8px;
width:5em;
font-weight:bold;
}
/*
Navigation bar styles
*/
.bar {
background-color:#4D7A97;
color:#FFFFFF;
padding:.8em .5em .4em .8em;
height:auto;/*height:1.8em;*/
font-size:11px;
margin:0;
}
.topNav {
background-color:#4D7A97;
color:#FFFFFF;
float:left;
padding:0;
width:100%;
clear:right;
height:2.8em;
padding-top:10px;
overflow:hidden;
font-size:12px;
}
.bottomNav {
margin-top:10px;
background-color:#4D7A97;
color:#FFFFFF;
float:left;
padding:0;
width:100%;
clear:right;
height:2.8em;
padding-top:10px;
overflow:hidden;
font-size:12px;
}
.subNav {
background-color:#dee3e9;
float:left;
width:100%;
overflow:hidden;
font-size:12px;
}
.subNav div {
clear:left;
float:left;
padding:0 0 5px 6px;
text-transform:uppercase;
}
ul.navList, ul.subNavList {
float:left;
margin:0 25px 0 0;
padding:0;
}
ul.navList li{
list-style:none;
float:left;
padding: 5px 6px;
text-transform:uppercase;
}
ul.subNavList li{
list-style:none;
float:left;
}
.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited {
color:#FFFFFF;
text-decoration:none;
text-transform:uppercase;
}
.topNav a:hover, .bottomNav a:hover {
text-decoration:none;
color:#bb7a2a;
text-transform:uppercase;
}
.navBarCell1Rev {
background-color:#F8981D;
color:#253441;
margin: auto 5px;
}
.skipNav {
position:absolute;
top:auto;
left:-9999px;
overflow:hidden;
}
/*
Page header and footer styles
*/
.header, .footer {
clear:both;
margin:0 20px;
padding:5px 0 0 0;
}
.indexHeader {
margin:10px;
position:relative;
}
.indexHeader span{
margin-right:15px;
}
.indexHeader h1 {
font-size:13px;
}
.title {
color:#2c4557;
margin:10px 0;
}
.subTitle {
margin:5px 0 0 0;
}
.header ul {
margin:0 0 15px 0;
padding:0;
}
.footer ul {
margin:20px 0 5px 0;
}
.header ul li, .footer ul li {
list-style:none;
font-size:13px;
}
/*
Heading styles
*/
div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 {
background-color:#dee3e9;
border:1px solid #d0d9e0;
margin:0 0 6px -8px;
padding:7px 5px;
}
ul.blockList ul.blockList ul.blockList li.blockList h3 {
background-color:#dee3e9;
border:1px solid #d0d9e0;
margin:0 0 6px -8px;
padding:7px 5px;
}
ul.blockList ul.blockList li.blockList h3 {
padding:0;
margin:15px 0;
}
ul.blockList li.blockList h2 {
padding:0px 0 20px 0;
}
/*
Page layout container styles
*/
.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer {
clear:both;
padding:10px 20px;
position:relative;
}
.indexContainer {
margin:10px;
position:relative;
font-size:12px;
}
.indexContainer h2 {
font-size:13px;
padding:0 0 3px 0;
}
.indexContainer ul {
margin:0;
padding:0;
}
.indexContainer ul li {
list-style:none;
padding-top:2px;
}
.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt {
font-size:12px;
font-weight:bold;
margin:10px 0 0 0;
color:#4E4E4E;
}
.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd {
margin:5px 0 10px 0px;
font-size:14px;
font-family:'DejaVu Sans Mono',monospace;
}
.serializedFormContainer dl.nameValue dt {
margin-left:1px;
font-size:1.1em;
display:inline;
font-weight:bold;
}
.serializedFormContainer dl.nameValue dd {
margin:0 0 0 1px;
font-size:1.1em;
display:inline;
}
/*
List styles
*/
ul.horizontal li {
display:inline;
font-size:0.9em;
}
ul.inheritance {
margin:0;
padding:0;
}
ul.inheritance li {
display:inline;
list-style:none;
}
ul.inheritance li ul.inheritance {
margin-left:15px;
padding-left:15px;
padding-top:1px;
}
ul.blockList, ul.blockListLast {
margin:10px 0 10px 0;
padding:0;
}
ul.blockList li.blockList, ul.blockListLast li.blockList {
list-style:none;
margin-bottom:15px;
line-height:1.4;
}
ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList {
padding:0px 20px 5px 10px;
border:1px solid #ededed;
background-color:#f8f8f8;
}
ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList {
padding:0 0 5px 8px;
background-color:#ffffff;
border:none;
}
ul.blockList ul.blockList ul.blockList ul.blockList li.blockList {
margin-left:0;
padding-left:0;
padding-bottom:15px;
border:none;
}
ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast {
list-style:none;
border-bottom:none;
padding-bottom:0;
}
table tr td dl, table tr td dl dt, table tr td dl dd {
margin-top:0;
margin-bottom:1px;
}
/*
Table styles
*/
.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary {
width:100%;
border-left:1px solid #EEE;
border-right:1px solid #EEE;
border-bottom:1px solid #EEE;
}
.overviewSummary, .memberSummary {
padding:0px;
}
.overviewSummary caption, .memberSummary caption, .typeSummary caption,
.useSummary caption, .constantsSummary caption, .deprecatedSummary caption {
position:relative;
text-align:left;
background-repeat:no-repeat;
color:#253441;
font-weight:bold;
clear:none;
overflow:hidden;
padding:0px;
padding-top:10px;
padding-left:1px;
margin:0px;
white-space:pre;
}
.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link,
.useSummary caption a:link, .constantsSummary caption a:link, .deprecatedSummary caption a:link,
.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover,
.useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover,
.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active,
.useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active,
.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited,
.useSummary caption a:visited, .constantsSummary caption a:visited, .deprecatedSummary caption a:visited {
color:#FFFFFF;
}
.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span,
.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span {
white-space:nowrap;
padding-top:5px;
padding-left:12px;
padding-right:12px;
padding-bottom:7px;
display:inline-block;
float:left;
background-color:#F8981D;
border: none;
height:16px;
}
.memberSummary caption span.activeTableTab span {
white-space:nowrap;
padding-top:5px;
padding-left:12px;
padding-right:12px;
margin-right:3px;
display:inline-block;
float:left;
background-color:#F8981D;
height:16px;
}
.memberSummary caption span.tableTab span {
white-space:nowrap;
padding-top:5px;
padding-left:12px;
padding-right:12px;
margin-right:3px;
display:inline-block;
float:left;
background-color:#4D7A97;
height:16px;
}
.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab {
padding-top:0px;
padding-left:0px;
padding-right:0px;
background-image:none;
float:none;
display:inline;
}
.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd,
.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd {
display:none;
width:5px;
position:relative;
float:left;
background-color:#F8981D;
}
.memberSummary .activeTableTab .tabEnd {
display:none;
width:5px;
margin-right:3px;
position:relative;
float:left;
background-color:#F8981D;
}
.memberSummary .tableTab .tabEnd {
display:none;
width:5px;
margin-right:3px;
position:relative;
background-color:#4D7A97;
float:left;
}
.overviewSummary td, .memberSummary td, .typeSummary td,
.useSummary td, .constantsSummary td, .deprecatedSummary td {
text-align:left;
padding:0px 0px 12px 10px;
width:100%;
}
th.colOne, th.colFirst, th.colLast, .useSummary th, .constantsSummary th,
td.colOne, td.colFirst, td.colLast, .useSummary td, .constantsSummary td{
vertical-align:top;
padding-right:0px;
padding-top:8px;
padding-bottom:3px;
}
th.colFirst, th.colLast, th.colOne, .constantsSummary th {
background:#dee3e9;
text-align:left;
padding:8px 3px 3px 7px;
}
td.colFirst, th.colFirst {
white-space:nowrap;
font-size:13px;
}
td.colLast, th.colLast {
font-size:13px;
}
td.colOne, th.colOne {
font-size:13px;
}
.overviewSummary td.colFirst, .overviewSummary th.colFirst,
.overviewSummary td.colOne, .overviewSummary th.colOne,
.memberSummary td.colFirst, .memberSummary th.colFirst,
.memberSummary td.colOne, .memberSummary th.colOne,
.typeSummary td.colFirst{
width:25%;
vertical-align:top;
}
td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover {
font-weight:bold;
}
.tableSubHeadingColor {
background-color:#EEEEFF;
}
.altColor {
background-color:#FFFFFF;
}
.rowColor {
background-color:#EEEEEF;
}
/*
Content styles
*/
.description pre {
margin-top:0;
}
.deprecatedContent {
margin:0;
padding:10px 0;
}
.docSummary {
padding:0;
}
ul.blockList ul.blockList ul.blockList li.blockList h3 {
font-style:normal;
}
div.block {
font-size:14px;
font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
}
td.colLast div {
padding-top:0px;
}
td.colLast a {
padding-bottom:3px;
}
/*
Formatting effect styles
*/
.sourceLineNo {
color:green;
padding:0 30px 0 0;
}
h1.hidden {
visibility:hidden;
overflow:hidden;
font-size:10px;
}
.block {
display:block;
margin:3px 10px 2px 0px;
color:#474747;
}
.deprecatedLabel, .descfrmTypeLabel, .memberNameLabel, .memberNameLink,
.overrideSpecifyLabel, .packageHierarchyLabel, .paramLabel, .returnLabel,
.seeLabel, .simpleTagLabel, .throwsLabel, .typeNameLabel, .typeNameLink {
font-weight:bold;
}
.deprecationComment, .emphasizedPhrase, .interfaceName {
font-style:italic;
}
div.block div.block span.deprecationComment, div.block div.block span.emphasizedPhrase,
div.block div.block span.interfaceName {
font-style:normal;
}
div.contentContainer ul.blockList li.blockList h2{
padding-bottom:0px;
}
/*
Spring
*/
pre.code {
background-color: #F8F8F8;
border: 1px solid #CCCCCC;
border-radius: 3px 3px 3px 3px;
overflow: auto;
padding: 10px;
margin: 4px 20px 2px 0px;
}
pre.code code, pre.code code * {
font-size: 1em;
}
pre.code code, pre.code code * {
padding: 0 !important;
margin: 0 !important;
}
Loading…
Cancel
Save