diff --git a/.gitignore b/.gitignore
index 3dec068221f..e21dcb18ebc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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/
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index d705455596b..6edef2962b9 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -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/).
diff --git a/README.md b/README.md
index 1a1cb7f6f76..6fdaa56337d 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-#
Spring Framework [](https://ci.spring.io/teams/spring-framework/pipelines/spring-framework-5.3.x?groups=Build") [](https://ge.spring.io/scans?search.rootProjectNames=spring)
+#
Spring Framework [](https://ci.spring.io/teams/spring-framework/pipelines/spring-framework-5.3.x?groups=Build") [](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
## 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
diff --git a/build.gradle b/build.gradle
index c01ca46e3d4..d5bef78be41 100644
--- a/build.gradle
+++ b/build.gradle
@@ -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 ->
}
pluginManager.withPlugin("kotlin") {
- apply plugin: "org.jetbrains.dokka"
- apply from: "${rootDir}/gradle/docs-dokka.gradle"
compileKotlin {
kotlinOptions {
@@ -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) {
maxHeapSize = "1g"
}
- publishing {
- publications {
- mavenJava(MavenPublication) {
- artifact docsZip
- artifact schemaZip
- artifact distZip
- }
- }
- }
}
diff --git a/gradle/docs.gradle b/framework-docs/framework-docs.gradle
similarity index 86%
rename from gradle/docs.gradle
rename to framework-docs/framework-docs.gradle
index 7109e4427a0..7f98570b96c 100644
--- a/gradle/docs.gradle
+++ b/framework-docs/framework-docs.gradle
@@ -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) {
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) {
/**
* 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 {
}
/**
- * 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 {
/**
* 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
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]) {
}
distZip.mustRunAfter moduleProjects.check
+
+
+publishing {
+ publications {
+ mavenJava(MavenPublication) {
+ artifact docsZip
+ artifact schemaZip
+ artifact distZip
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/docs/api/overview.html b/framework-docs/src/docs/api/overview.html
similarity index 100%
rename from src/docs/api/overview.html
rename to framework-docs/src/docs/api/overview.html
diff --git a/src/docs/asciidoc/appendix.adoc b/framework-docs/src/docs/asciidoc/appendix.adoc
similarity index 100%
rename from src/docs/asciidoc/appendix.adoc
rename to framework-docs/src/docs/asciidoc/appendix.adoc
diff --git a/src/docs/asciidoc/core.adoc b/framework-docs/src/docs/asciidoc/core.adoc
similarity index 100%
rename from src/docs/asciidoc/core.adoc
rename to framework-docs/src/docs/asciidoc/core.adoc
diff --git a/src/docs/asciidoc/core/core-aop-api.adoc b/framework-docs/src/docs/asciidoc/core/core-aop-api.adoc
similarity index 100%
rename from src/docs/asciidoc/core/core-aop-api.adoc
rename to framework-docs/src/docs/asciidoc/core/core-aop-api.adoc
diff --git a/src/docs/asciidoc/core/core-aop.adoc b/framework-docs/src/docs/asciidoc/core/core-aop.adoc
similarity index 100%
rename from src/docs/asciidoc/core/core-aop.adoc
rename to framework-docs/src/docs/asciidoc/core/core-aop.adoc
diff --git a/src/docs/asciidoc/core/core-aot.adoc b/framework-docs/src/docs/asciidoc/core/core-aot.adoc
similarity index 100%
rename from src/docs/asciidoc/core/core-aot.adoc
rename to framework-docs/src/docs/asciidoc/core/core-aot.adoc
diff --git a/src/docs/asciidoc/core/core-appendix.adoc b/framework-docs/src/docs/asciidoc/core/core-appendix.adoc
similarity index 100%
rename from src/docs/asciidoc/core/core-appendix.adoc
rename to framework-docs/src/docs/asciidoc/core/core-appendix.adoc
diff --git a/src/docs/asciidoc/core/core-beans.adoc b/framework-docs/src/docs/asciidoc/core/core-beans.adoc
similarity index 100%
rename from src/docs/asciidoc/core/core-beans.adoc
rename to framework-docs/src/docs/asciidoc/core/core-beans.adoc
diff --git a/src/docs/asciidoc/core/core-databuffer-codec.adoc b/framework-docs/src/docs/asciidoc/core/core-databuffer-codec.adoc
similarity index 100%
rename from src/docs/asciidoc/core/core-databuffer-codec.adoc
rename to framework-docs/src/docs/asciidoc/core/core-databuffer-codec.adoc
diff --git a/src/docs/asciidoc/core/core-expressions.adoc b/framework-docs/src/docs/asciidoc/core/core-expressions.adoc
similarity index 100%
rename from src/docs/asciidoc/core/core-expressions.adoc
rename to framework-docs/src/docs/asciidoc/core/core-expressions.adoc
diff --git a/src/docs/asciidoc/core/core-null-safety.adoc b/framework-docs/src/docs/asciidoc/core/core-null-safety.adoc
similarity index 100%
rename from src/docs/asciidoc/core/core-null-safety.adoc
rename to framework-docs/src/docs/asciidoc/core/core-null-safety.adoc
diff --git a/src/docs/asciidoc/core/core-resources.adoc b/framework-docs/src/docs/asciidoc/core/core-resources.adoc
similarity index 100%
rename from src/docs/asciidoc/core/core-resources.adoc
rename to framework-docs/src/docs/asciidoc/core/core-resources.adoc
diff --git a/src/docs/asciidoc/core/core-spring-jcl.adoc b/framework-docs/src/docs/asciidoc/core/core-spring-jcl.adoc
similarity index 100%
rename from src/docs/asciidoc/core/core-spring-jcl.adoc
rename to framework-docs/src/docs/asciidoc/core/core-spring-jcl.adoc
diff --git a/src/docs/asciidoc/core/core-validation.adoc b/framework-docs/src/docs/asciidoc/core/core-validation.adoc
similarity index 100%
rename from src/docs/asciidoc/core/core-validation.adoc
rename to framework-docs/src/docs/asciidoc/core/core-validation.adoc
diff --git a/src/docs/asciidoc/data-access.adoc b/framework-docs/src/docs/asciidoc/data-access.adoc
similarity index 100%
rename from src/docs/asciidoc/data-access.adoc
rename to framework-docs/src/docs/asciidoc/data-access.adoc
diff --git a/src/docs/asciidoc/data-access/data-access-appendix.adoc b/framework-docs/src/docs/asciidoc/data-access/data-access-appendix.adoc
similarity index 100%
rename from src/docs/asciidoc/data-access/data-access-appendix.adoc
rename to framework-docs/src/docs/asciidoc/data-access/data-access-appendix.adoc
diff --git a/src/docs/asciidoc/images/DataAccessException.png b/framework-docs/src/docs/asciidoc/images/DataAccessException.png
similarity index 100%
rename from src/docs/asciidoc/images/DataAccessException.png
rename to framework-docs/src/docs/asciidoc/images/DataAccessException.png
diff --git a/src/docs/asciidoc/images/aop-proxy-call.png b/framework-docs/src/docs/asciidoc/images/aop-proxy-call.png
similarity index 100%
rename from src/docs/asciidoc/images/aop-proxy-call.png
rename to framework-docs/src/docs/asciidoc/images/aop-proxy-call.png
diff --git a/src/docs/asciidoc/images/aop-proxy-plain-pojo-call.png b/framework-docs/src/docs/asciidoc/images/aop-proxy-plain-pojo-call.png
similarity index 100%
rename from src/docs/asciidoc/images/aop-proxy-plain-pojo-call.png
rename to framework-docs/src/docs/asciidoc/images/aop-proxy-plain-pojo-call.png
diff --git a/src/docs/asciidoc/images/container-magic.png b/framework-docs/src/docs/asciidoc/images/container-magic.png
similarity index 100%
rename from src/docs/asciidoc/images/container-magic.png
rename to framework-docs/src/docs/asciidoc/images/container-magic.png
diff --git a/src/docs/asciidoc/images/message-flow-broker-relay.png b/framework-docs/src/docs/asciidoc/images/message-flow-broker-relay.png
similarity index 100%
rename from src/docs/asciidoc/images/message-flow-broker-relay.png
rename to framework-docs/src/docs/asciidoc/images/message-flow-broker-relay.png
diff --git a/src/docs/asciidoc/images/message-flow-simple-broker.png b/framework-docs/src/docs/asciidoc/images/message-flow-simple-broker.png
similarity index 100%
rename from src/docs/asciidoc/images/message-flow-simple-broker.png
rename to framework-docs/src/docs/asciidoc/images/message-flow-simple-broker.png
diff --git a/src/docs/asciidoc/images/mvc-context-hierarchy.png b/framework-docs/src/docs/asciidoc/images/mvc-context-hierarchy.png
similarity index 100%
rename from src/docs/asciidoc/images/mvc-context-hierarchy.png
rename to framework-docs/src/docs/asciidoc/images/mvc-context-hierarchy.png
diff --git a/src/docs/asciidoc/images/mvc-context-hierarchy.svg b/framework-docs/src/docs/asciidoc/images/mvc-context-hierarchy.svg
similarity index 100%
rename from src/docs/asciidoc/images/mvc-context-hierarchy.svg
rename to framework-docs/src/docs/asciidoc/images/mvc-context-hierarchy.svg
diff --git a/src/docs/asciidoc/images/oxm-exceptions.graffle b/framework-docs/src/docs/asciidoc/images/oxm-exceptions.graffle
similarity index 100%
rename from src/docs/asciidoc/images/oxm-exceptions.graffle
rename to framework-docs/src/docs/asciidoc/images/oxm-exceptions.graffle
diff --git a/src/docs/asciidoc/images/oxm-exceptions.png b/framework-docs/src/docs/asciidoc/images/oxm-exceptions.png
similarity index 100%
rename from src/docs/asciidoc/images/oxm-exceptions.png
rename to framework-docs/src/docs/asciidoc/images/oxm-exceptions.png
diff --git a/src/docs/asciidoc/images/prototype.png b/framework-docs/src/docs/asciidoc/images/prototype.png
similarity index 100%
rename from src/docs/asciidoc/images/prototype.png
rename to framework-docs/src/docs/asciidoc/images/prototype.png
diff --git a/src/docs/asciidoc/images/singleton.png b/framework-docs/src/docs/asciidoc/images/singleton.png
similarity index 100%
rename from src/docs/asciidoc/images/singleton.png
rename to framework-docs/src/docs/asciidoc/images/singleton.png
diff --git a/src/docs/asciidoc/images/spring-mvc-and-webflux-venn.png b/framework-docs/src/docs/asciidoc/images/spring-mvc-and-webflux-venn.png
similarity index 100%
rename from src/docs/asciidoc/images/spring-mvc-and-webflux-venn.png
rename to framework-docs/src/docs/asciidoc/images/spring-mvc-and-webflux-venn.png
diff --git a/src/docs/asciidoc/images/tx.png b/framework-docs/src/docs/asciidoc/images/tx.png
similarity index 100%
rename from src/docs/asciidoc/images/tx.png
rename to framework-docs/src/docs/asciidoc/images/tx.png
diff --git a/src/docs/asciidoc/images/tx_prop_required.png b/framework-docs/src/docs/asciidoc/images/tx_prop_required.png
similarity index 100%
rename from src/docs/asciidoc/images/tx_prop_required.png
rename to framework-docs/src/docs/asciidoc/images/tx_prop_required.png
diff --git a/src/docs/asciidoc/images/tx_prop_requires_new.png b/framework-docs/src/docs/asciidoc/images/tx_prop_requires_new.png
similarity index 100%
rename from src/docs/asciidoc/images/tx_prop_requires_new.png
rename to framework-docs/src/docs/asciidoc/images/tx_prop_requires_new.png
diff --git a/src/docs/asciidoc/index-docinfo-header.html b/framework-docs/src/docs/asciidoc/index-docinfo-header.html
similarity index 100%
rename from src/docs/asciidoc/index-docinfo-header.html
rename to framework-docs/src/docs/asciidoc/index-docinfo-header.html
diff --git a/src/docs/asciidoc/index.adoc b/framework-docs/src/docs/asciidoc/index.adoc
similarity index 100%
rename from src/docs/asciidoc/index.adoc
rename to framework-docs/src/docs/asciidoc/index.adoc
diff --git a/src/docs/asciidoc/integration.adoc b/framework-docs/src/docs/asciidoc/integration.adoc
similarity index 100%
rename from src/docs/asciidoc/integration.adoc
rename to framework-docs/src/docs/asciidoc/integration.adoc
diff --git a/src/docs/asciidoc/integration/integration-appendix.adoc b/framework-docs/src/docs/asciidoc/integration/integration-appendix.adoc
similarity index 100%
rename from src/docs/asciidoc/integration/integration-appendix.adoc
rename to framework-docs/src/docs/asciidoc/integration/integration-appendix.adoc
diff --git a/src/docs/asciidoc/languages.adoc b/framework-docs/src/docs/asciidoc/languages.adoc
similarity index 100%
rename from src/docs/asciidoc/languages.adoc
rename to framework-docs/src/docs/asciidoc/languages.adoc
diff --git a/src/docs/asciidoc/languages/dynamic-languages.adoc b/framework-docs/src/docs/asciidoc/languages/dynamic-languages.adoc
similarity index 100%
rename from src/docs/asciidoc/languages/dynamic-languages.adoc
rename to framework-docs/src/docs/asciidoc/languages/dynamic-languages.adoc
diff --git a/src/docs/asciidoc/languages/groovy.adoc b/framework-docs/src/docs/asciidoc/languages/groovy.adoc
similarity index 100%
rename from src/docs/asciidoc/languages/groovy.adoc
rename to framework-docs/src/docs/asciidoc/languages/groovy.adoc
diff --git a/src/docs/asciidoc/languages/kotlin.adoc b/framework-docs/src/docs/asciidoc/languages/kotlin.adoc
similarity index 100%
rename from src/docs/asciidoc/languages/kotlin.adoc
rename to framework-docs/src/docs/asciidoc/languages/kotlin.adoc
diff --git a/src/docs/asciidoc/overview.adoc b/framework-docs/src/docs/asciidoc/overview.adoc
similarity index 100%
rename from src/docs/asciidoc/overview.adoc
rename to framework-docs/src/docs/asciidoc/overview.adoc
diff --git a/src/docs/asciidoc/rsocket.adoc b/framework-docs/src/docs/asciidoc/rsocket.adoc
similarity index 100%
rename from src/docs/asciidoc/rsocket.adoc
rename to framework-docs/src/docs/asciidoc/rsocket.adoc
diff --git a/src/docs/asciidoc/testing.adoc b/framework-docs/src/docs/asciidoc/testing.adoc
similarity index 100%
rename from src/docs/asciidoc/testing.adoc
rename to framework-docs/src/docs/asciidoc/testing.adoc
diff --git a/src/docs/asciidoc/testing/testing-webtestclient.adoc b/framework-docs/src/docs/asciidoc/testing/testing-webtestclient.adoc
similarity index 100%
rename from src/docs/asciidoc/testing/testing-webtestclient.adoc
rename to framework-docs/src/docs/asciidoc/testing/testing-webtestclient.adoc
diff --git a/src/docs/asciidoc/web-reactive.adoc b/framework-docs/src/docs/asciidoc/web-reactive.adoc
similarity index 100%
rename from src/docs/asciidoc/web-reactive.adoc
rename to framework-docs/src/docs/asciidoc/web-reactive.adoc
diff --git a/src/docs/asciidoc/web.adoc b/framework-docs/src/docs/asciidoc/web.adoc
similarity index 100%
rename from src/docs/asciidoc/web.adoc
rename to framework-docs/src/docs/asciidoc/web.adoc
diff --git a/src/docs/asciidoc/web/integration.adoc b/framework-docs/src/docs/asciidoc/web/integration.adoc
similarity index 100%
rename from src/docs/asciidoc/web/integration.adoc
rename to framework-docs/src/docs/asciidoc/web/integration.adoc
diff --git a/src/docs/asciidoc/web/web-data-binding-model-design.adoc b/framework-docs/src/docs/asciidoc/web/web-data-binding-model-design.adoc
similarity index 100%
rename from src/docs/asciidoc/web/web-data-binding-model-design.adoc
rename to framework-docs/src/docs/asciidoc/web/web-data-binding-model-design.adoc
diff --git a/src/docs/asciidoc/web/web-uris.adoc b/framework-docs/src/docs/asciidoc/web/web-uris.adoc
similarity index 100%
rename from src/docs/asciidoc/web/web-uris.adoc
rename to framework-docs/src/docs/asciidoc/web/web-uris.adoc
diff --git a/src/docs/asciidoc/web/webflux-cors.adoc b/framework-docs/src/docs/asciidoc/web/webflux-cors.adoc
similarity index 100%
rename from src/docs/asciidoc/web/webflux-cors.adoc
rename to framework-docs/src/docs/asciidoc/web/webflux-cors.adoc
diff --git a/src/docs/asciidoc/web/webflux-functional.adoc b/framework-docs/src/docs/asciidoc/web/webflux-functional.adoc
similarity index 100%
rename from src/docs/asciidoc/web/webflux-functional.adoc
rename to framework-docs/src/docs/asciidoc/web/webflux-functional.adoc
diff --git a/src/docs/asciidoc/web/webflux-view.adoc b/framework-docs/src/docs/asciidoc/web/webflux-view.adoc
similarity index 100%
rename from src/docs/asciidoc/web/webflux-view.adoc
rename to framework-docs/src/docs/asciidoc/web/webflux-view.adoc
diff --git a/src/docs/asciidoc/web/webflux-webclient.adoc b/framework-docs/src/docs/asciidoc/web/webflux-webclient.adoc
similarity index 100%
rename from src/docs/asciidoc/web/webflux-webclient.adoc
rename to framework-docs/src/docs/asciidoc/web/webflux-webclient.adoc
diff --git a/src/docs/asciidoc/web/webflux-websocket.adoc b/framework-docs/src/docs/asciidoc/web/webflux-websocket.adoc
similarity index 100%
rename from src/docs/asciidoc/web/webflux-websocket.adoc
rename to framework-docs/src/docs/asciidoc/web/webflux-websocket.adoc
diff --git a/src/docs/asciidoc/web/webflux.adoc b/framework-docs/src/docs/asciidoc/web/webflux.adoc
similarity index 100%
rename from src/docs/asciidoc/web/webflux.adoc
rename to framework-docs/src/docs/asciidoc/web/webflux.adoc
diff --git a/src/docs/asciidoc/web/webmvc-client.adoc b/framework-docs/src/docs/asciidoc/web/webmvc-client.adoc
similarity index 100%
rename from src/docs/asciidoc/web/webmvc-client.adoc
rename to framework-docs/src/docs/asciidoc/web/webmvc-client.adoc
diff --git a/src/docs/asciidoc/web/webmvc-cors.adoc b/framework-docs/src/docs/asciidoc/web/webmvc-cors.adoc
similarity index 100%
rename from src/docs/asciidoc/web/webmvc-cors.adoc
rename to framework-docs/src/docs/asciidoc/web/webmvc-cors.adoc
diff --git a/src/docs/asciidoc/web/webmvc-functional.adoc b/framework-docs/src/docs/asciidoc/web/webmvc-functional.adoc
similarity index 100%
rename from src/docs/asciidoc/web/webmvc-functional.adoc
rename to framework-docs/src/docs/asciidoc/web/webmvc-functional.adoc
diff --git a/src/docs/asciidoc/web/webmvc-test.adoc b/framework-docs/src/docs/asciidoc/web/webmvc-test.adoc
similarity index 100%
rename from src/docs/asciidoc/web/webmvc-test.adoc
rename to framework-docs/src/docs/asciidoc/web/webmvc-test.adoc
diff --git a/src/docs/asciidoc/web/webmvc-view.adoc b/framework-docs/src/docs/asciidoc/web/webmvc-view.adoc
similarity index 100%
rename from src/docs/asciidoc/web/webmvc-view.adoc
rename to framework-docs/src/docs/asciidoc/web/webmvc-view.adoc
diff --git a/src/docs/asciidoc/web/webmvc.adoc b/framework-docs/src/docs/asciidoc/web/webmvc.adoc
similarity index 100%
rename from src/docs/asciidoc/web/webmvc.adoc
rename to framework-docs/src/docs/asciidoc/web/webmvc.adoc
diff --git a/src/docs/asciidoc/web/websocket-intro.adoc b/framework-docs/src/docs/asciidoc/web/websocket-intro.adoc
similarity index 100%
rename from src/docs/asciidoc/web/websocket-intro.adoc
rename to framework-docs/src/docs/asciidoc/web/websocket-intro.adoc
diff --git a/src/docs/asciidoc/web/websocket.adoc b/framework-docs/src/docs/asciidoc/web/websocket.adoc
similarity index 100%
rename from src/docs/asciidoc/web/websocket.adoc
rename to framework-docs/src/docs/asciidoc/web/websocket.adoc
diff --git a/src/docs/dist/license.txt b/framework-docs/src/docs/dist/license.txt
similarity index 100%
rename from src/docs/dist/license.txt
rename to framework-docs/src/docs/dist/license.txt
diff --git a/src/docs/dist/notice.txt b/framework-docs/src/docs/dist/notice.txt
similarity index 100%
rename from src/docs/dist/notice.txt
rename to framework-docs/src/docs/dist/notice.txt
diff --git a/src/docs/dist/readme.txt b/framework-docs/src/docs/dist/readme.txt
similarity index 100%
rename from src/docs/dist/readme.txt
rename to framework-docs/src/docs/dist/readme.txt
diff --git a/src/docs/spring-framework.png b/framework-docs/src/docs/spring-framework.png
similarity index 100%
rename from src/docs/spring-framework.png
rename to framework-docs/src/docs/spring-framework.png
diff --git a/gradle/spring-module.gradle b/gradle/spring-module.gradle
index 0bf7cccfc28..99ae6762e20 100644
--- a/gradle/spring-module.gradle
+++ b/gradle/spring-module.gradle
@@ -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 {
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"
diff --git a/settings.gradle b/settings.gradle
index 7ba0847bb40..c2bb70b3472 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -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"
diff --git a/src/docs/api/stylesheet.css b/src/docs/api/stylesheet.css
deleted file mode 100644
index 029c89c9195..00000000000
--- a/src/docs/api/stylesheet.css
+++ /dev/null
@@ -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;
-}
-