From 13364405332aa70244bf90223d99e31424e77ef6 Mon Sep 17 00:00:00 2001 From: Mark Pollack Date: Wed, 9 Dec 2015 16:27:20 -0500 Subject: [PATCH] Add maven based docs, remove ./docs directory --- README.adoc | 162 +---- docs/pom.xml | 51 -- docs/src/main/asciidoc/README.adoc | 9 - docs/src/main/asciidoc/ghpages.sh | 46 -- .../main/asciidoc/spring-cloud-stream.adoc | 8 - docs/src/main/ruby/generate_readme.sh | 30 - pom.xml | 2 +- spring-cloud-stream-docs/pom.xml | 323 ++++++++++ .../src/main/asciidoc/.gitignore | 2 + .../src/main/asciidoc/Guardfile | 20 + .../src/main/asciidoc/appendix.adoc | 5 + .../src/main/asciidoc/building.adoc | 82 +++ .../src/main/asciidoc/contributing.adoc | 42 ++ .../src/main/asciidoc/index-docinfo.xml | 14 + .../src/main/asciidoc/index.adoc | 52 ++ .../spring-cloud-stream-overview.adoc | 42 +- .../asciidoc/spring-cloud-stream-samples.adoc | 18 + .../src/main/docbook/css/highlight.css | 35 + .../src/main/docbook/css/manual-multipage.css | 9 + .../main/docbook/css/manual-singlepage.css | 6 + .../src/main/docbook/css/manual.css | 344 ++++++++++ .../src/main/docbook/images/background.png | Bin 0 -> 10947 bytes .../src/main/docbook/images/caution.png | Bin 0 -> 2099 bytes .../src/main/docbook/images/important.png | Bin 0 -> 2085 bytes .../src/main/docbook/images/logo.png | Bin 0 -> 46269 bytes .../src/main/docbook/images/note.png | Bin 0 -> 2257 bytes .../src/main/docbook/images/tip.png | Bin 0 -> 931 bytes .../src/main/docbook/images/warning.png | Bin 0 -> 2130 bytes .../src/main/docbook/xsl/common.xsl | 45 ++ .../src/main/docbook/xsl/epub.xsl | 31 + .../src/main/docbook/xsl/html-multipage.xsl | 73 +++ .../src/main/docbook/xsl/html-singlepage.xsl | 30 + .../src/main/docbook/xsl/html.xsl | 141 +++++ .../src/main/docbook/xsl/pdf.xsl | 582 +++++++++++++++++ .../src/main/docbook/xsl/xslthl-config.xml | 23 + .../main/docbook/xsl/xslthl/asciidoc-hl.xml | 41 ++ .../src/main/docbook/xsl/xslthl/bourne-hl.xml | 95 +++ .../src/main/docbook/xsl/xslthl/c-hl.xml | 117 ++++ .../src/main/docbook/xsl/xslthl/cpp-hl.xml | 151 +++++ .../src/main/docbook/xsl/xslthl/csharp-hl.xml | 194 ++++++ .../src/main/docbook/xsl/xslthl/css-hl.xml | 176 +++++ .../src/main/docbook/xsl/xslthl/html-hl.xml | 122 ++++ .../src/main/docbook/xsl/xslthl/ini-hl.xml | 45 ++ .../src/main/docbook/xsl/xslthl/java-hl.xml | 117 ++++ .../main/docbook/xsl/xslthl/javascript-hl.xml | 147 +++++ .../src/main/docbook/xsl/xslthl/json-hl.xml | 37 ++ .../src/main/docbook/xsl/xslthl/perl-hl.xml | 120 ++++ .../src/main/docbook/xsl/xslthl/php-hl.xml | 154 +++++ .../main/docbook/xsl/xslthl/properties-hl.xml | 38 ++ .../src/main/docbook/xsl/xslthl/python-hl.xml | 100 +++ .../src/main/docbook/xsl/xslthl/ruby-hl.xml | 109 ++++ .../main/docbook/xsl/xslthl/sql2003-hl.xml | 565 +++++++++++++++++ .../src/main/docbook/xsl/xslthl/yaml-hl.xml | 47 ++ .../src/main/javadoc/spring-javadoc.css | 599 ++++++++++++++++++ .../src/main/xslt/dependencyVersions.xsl | 28 + 55 files changed, 4903 insertions(+), 326 deletions(-) delete mode 100644 docs/pom.xml delete mode 100644 docs/src/main/asciidoc/README.adoc delete mode 100755 docs/src/main/asciidoc/ghpages.sh delete mode 100644 docs/src/main/asciidoc/spring-cloud-stream.adoc delete mode 100755 docs/src/main/ruby/generate_readme.sh create mode 100644 spring-cloud-stream-docs/pom.xml create mode 100644 spring-cloud-stream-docs/src/main/asciidoc/.gitignore create mode 100644 spring-cloud-stream-docs/src/main/asciidoc/Guardfile create mode 100644 spring-cloud-stream-docs/src/main/asciidoc/appendix.adoc create mode 100644 spring-cloud-stream-docs/src/main/asciidoc/building.adoc create mode 100644 spring-cloud-stream-docs/src/main/asciidoc/contributing.adoc create mode 100644 spring-cloud-stream-docs/src/main/asciidoc/index-docinfo.xml create mode 100644 spring-cloud-stream-docs/src/main/asciidoc/index.adoc rename docs/src/main/asciidoc/intro.adoc => spring-cloud-stream-docs/src/main/asciidoc/spring-cloud-stream-overview.adoc (69%) create mode 100644 spring-cloud-stream-docs/src/main/asciidoc/spring-cloud-stream-samples.adoc create mode 100644 spring-cloud-stream-docs/src/main/docbook/css/highlight.css create mode 100644 spring-cloud-stream-docs/src/main/docbook/css/manual-multipage.css create mode 100644 spring-cloud-stream-docs/src/main/docbook/css/manual-singlepage.css create mode 100644 spring-cloud-stream-docs/src/main/docbook/css/manual.css create mode 100644 spring-cloud-stream-docs/src/main/docbook/images/background.png create mode 100644 spring-cloud-stream-docs/src/main/docbook/images/caution.png create mode 100644 spring-cloud-stream-docs/src/main/docbook/images/important.png create mode 100644 spring-cloud-stream-docs/src/main/docbook/images/logo.png create mode 100644 spring-cloud-stream-docs/src/main/docbook/images/note.png create mode 100644 spring-cloud-stream-docs/src/main/docbook/images/tip.png create mode 100644 spring-cloud-stream-docs/src/main/docbook/images/warning.png create mode 100644 spring-cloud-stream-docs/src/main/docbook/xsl/common.xsl create mode 100644 spring-cloud-stream-docs/src/main/docbook/xsl/epub.xsl create mode 100644 spring-cloud-stream-docs/src/main/docbook/xsl/html-multipage.xsl create mode 100644 spring-cloud-stream-docs/src/main/docbook/xsl/html-singlepage.xsl create mode 100644 spring-cloud-stream-docs/src/main/docbook/xsl/html.xsl create mode 100644 spring-cloud-stream-docs/src/main/docbook/xsl/pdf.xsl create mode 100644 spring-cloud-stream-docs/src/main/docbook/xsl/xslthl-config.xml create mode 100644 spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/asciidoc-hl.xml create mode 100644 spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/bourne-hl.xml create mode 100644 spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/c-hl.xml create mode 100644 spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/cpp-hl.xml create mode 100644 spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/csharp-hl.xml create mode 100644 spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/css-hl.xml create mode 100644 spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/html-hl.xml create mode 100644 spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/ini-hl.xml create mode 100644 spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/java-hl.xml create mode 100644 spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/javascript-hl.xml create mode 100644 spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/json-hl.xml create mode 100644 spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/perl-hl.xml create mode 100644 spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/php-hl.xml create mode 100644 spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/properties-hl.xml create mode 100644 spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/python-hl.xml create mode 100644 spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/ruby-hl.xml create mode 100644 spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/sql2003-hl.xml create mode 100644 spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/yaml-hl.xml create mode 100644 spring-cloud-stream-docs/src/main/javadoc/spring-javadoc.css create mode 100644 spring-cloud-stream-docs/src/main/xslt/dependencyVersions.xsl diff --git a/README.adoc b/README.adoc index 40e60565d..b7ee182d9 100644 --- a/README.adoc +++ b/README.adoc @@ -106,162 +106,12 @@ For an XD module the channel names are `.` and a source (output on > Note: since the same naming conventions are used in XD, you can steal messages from or send messages to an existing XD stream by copying the stream name (to `spring.cloud.streams.group`) and knowing the index of the XD module you want to interact with. -== Building +=== Contributing -:jdkversion: 1.8 +// TODO point to ref doc section -=== Basic Compile and Test +We love contributions. Follow this https://github.com/spring-cloud/spring-cloud-commons#contributing[link] for more information on how to contribute. -To build the source you will need to install JDK {jdkversion}. - -Spring Cloud uses Maven for most build-related activities, and you -should be able to get off the ground quite quickly by cloning the -project you are interested in and typing - ----- -$ ./mvnw install ----- - -NOTE: You can also install Maven (>=3.3.3) yourself and run the `mvn` command -in place of `./mvnw` in the examples below. If you do that you also -might need to add `-P spring` if your local Maven settings do not -contain repository declarations for spring pre-release artifacts. - -NOTE: Be aware that you might need to increase the amount of memory -available to Maven by setting a `MAVEN_OPTS` environment variable with -a value like `-Xmx512m -XX:MaxPermSize=128m`. We try to cover this in -the `.mvn` configuration, so if you find you have to do it to make a -build succeed, please raise a ticket to get the settings added to -source control. - -For hints on how to build the project look in `.travis.yml` if there -is one. There should be a "script" and maybe "install" command. Also -look at the "services" section to see if any services need to be -running locally (e.g. mongo or rabbit). Ignore the git-related bits -that you might find in "before_install" since they're related to setting git -credentials and you already have those. - -The projects that require middleware generally include a -`docker-compose.yml`, so consider using -http://compose.docker.io/[Docker Compose] to run the middeware servers -in Docker containers. See the README in the -https://github.com/spring-cloud-samples/scripts[scripts demo -repository] for specific instructions about the common cases of mongo, -rabbit and redis. - -NOTE: migration to the Maven wrapper (`./mvnw`) is underway. If you -find a project that doesn't have it yet, raise an issue to get it -added, and build with the command from `.travis.yml` (usually -`mvn install -s .settings.xml`). - -=== Documentation - -The spring-cloud-build module has a "docs" profile, and if you switch -that on it will try to build asciidoc sources from -`src/main/asciidoc`. As part of that process it will look for a -`README.adoc` and process it by loading all the includes, but not -parsing or rendering it, just copying it to `${main.basedir}` -(defaults to `${basedir}`, i.e. the root of the project). If there are -any changes in the README it will then show up after a Maven build as -a modified file in the correct place. Just commit it and push the change. - -=== Working with the code -If you don't have an IDE preference we would recommend that you use -http://www.springsource.com/developer/sts[Spring Tools Suite] or -http://eclipse.org[Eclipse] when working with the code. We use the -http://eclipse.org/m2e/[m2eclipe] eclipse plugin for maven support. Other IDEs and tools -should also work without issue. - -==== Importing into eclipse with m2eclipse -We recommend the http://eclipse.org/m2e/[m2eclipe] eclipse plugin when working with -eclipse. If you don't already have m2eclipse installed it is available from the "eclipse -marketplace". - -Unfortunately m2e does not yet support Maven 3.3, so once the projects -are imported into Eclipse you will also need to tell m2eclipse to use -the `.settings.xml` file for the projects. If you do not do this you -may see many different errors related to the POMs in the -projects. Open your Eclipse preferences, expand the Maven -preferences, and select User Settings. In the User Settings field -click Browse and navigate to the Spring Cloud project you imported -selecting the `.settings.xml` file in that project. Click Apply and -then OK to save the preference changes. - -NOTE: Alternatively you can copy the repository settings from https://github.com/spring-cloud/spring-cloud-build/blob/master/.settings.xml[`.settings.xml`] into your own `~/.m2/settings.xml`. - -==== Importing into eclipse without m2eclipse -If you prefer not to use m2eclipse you can generate eclipse project metadata using the -following command: - -[indent=0] ----- - $ ./mvnw eclipse:eclipse ----- - -The generated eclipse projects can be imported by selecting `import existing projects` -from the `file` menu. - -==== Adding Project Lombok Agent - -Spring Cloud uses http://projectlombok.org/features/index.html[Project Lombok] -to generate getters and setters etc. Compiling from the command line this -shouldn't cause any problems, but in an IDE you need to add an agent -to the JVM. Full instructions can be found in the Lombok website. The -sign that you need to do this is a lot of compiler errors to do with -missing methods and fields, e.g. - -[indent=0] ----- -The method getInitialStatus() is undefined for the type EurekaInstanceConfigBean EurekaDiscoveryClientConfiguration.java /spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/eureka line 120 Java Problem -The method getInitialStatus() is undefined for the type EurekaInstanceConfigBean EurekaDiscoveryClientConfiguration.java /spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/eureka line 121 Java Problem -The method setNonSecurePort(int) is undefined for the type EurekaInstanceConfigBean EurekaDiscoveryClientConfiguration.java /spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/eureka line 112 Java Problem -The type EurekaInstanceConfigBean.IdentifyingDataCenterInfo must implement the inherited abstract method DataCenterInfo.getName() EurekaInstanceConfigBean.java /spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/eureka line 131 Java Problem -The method getId() is undefined for the type ProxyRouteLocator.ProxyRouteSpec PreDecorationFilter.java /spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/zuul/filters/pre line 60 Java Problem -The method getLocation() is undefined for the type ProxyRouteLocator.ProxyRouteSpec PreDecorationFilter.java /spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/zuul/filters/pre line 55 Java Problem ----- - -==== Importing into other IDEs -Maven is well supported by most Java IDEs. Refer to you vendor documentation. - - -== Contributing - -Spring Cloud is released under the non-restrictive Apache 2.0 license, -and follows a very standard Github development process, using Github -tracker for issues and merging pull requests into master. If you want -to contribute even something trivial please do not hesitate, but -follow the guidelines below. - -=== Sign the Contributor License Agreement -Before we accept a non-trivial patch or pull request we will need you to sign the -https://support.springsource.com/spring_committer_signup[contributor's agreement]. -Signing the contributor's agreement does not grant anyone commit rights to the main -repository, but it does mean that we can accept your contributions, and you will get an -author credit if we do. Active contributors might be asked to join the core team, and -given the ability to merge pull requests. - -=== Code Conventions and Housekeeping -None of these is essential for a pull request, but they will all help. They can also be -added after the original pull request but before a merge. - -* Use the Spring Framework code format conventions. If you use Eclipse - you can import formatter settings using the - `eclipse-code-formatter.xml` file from the - https://github.com/spring-cloud/build/tree/master/eclipse-coding-conventions.xml[Spring - Cloud Build] project. If using IntelliJ, you can use the - http://plugins.jetbrains.com/plugin/6546[Eclipse Code Formatter - Plugin] to import the same file. -* Make sure all new `.java` files to have a simple Javadoc class comment with at least an - `@author` tag identifying you, and preferably at least a paragraph on what the class is - for. -* Add the ASF license header comment to all new `.java` files (copy from existing files - in the project) -* Add yourself as an `@author` to the .java files that you modify substantially (more - than cosmetic changes). -* Add some Javadocs and, if you change the namespace, some XSD doc elements. -* A few unit tests would help a lot as well -- someone has to do it. -* If no-one else is using your branch, please rebase it against the current master (or - other target branch in the main project). -* When writing a commit message please follow http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html[these conventions], - if you are fixing an existing issue please add `Fixes gh-XXXX` at the end of the commit - message (where XXXX is the issue number). \ No newline at end of file +// Building +// +// TODO point to ref doc section \ No newline at end of file diff --git a/docs/pom.xml b/docs/pom.xml deleted file mode 100644 index 73e185b8e..000000000 --- a/docs/pom.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - 4.0.0 - - org.springframework.cloud - spring-cloud-stream-parent - 1.0.0.BUILD-SNAPSHOT - - spring-cloud-stream-docs - pom - Spring Cloud Streams Docs - Spring Cloud Docs - - spring-cloud-stream - ${basedir}/.. - - - - - maven-deploy-plugin - - true - - - - - - - docs - - - - org.asciidoctor - asciidoctor-maven-plugin - false - - - org.apache.maven.plugins - maven-antrun-plugin - false - - - org.codehaus.mojo - build-helper-maven-plugin - false - - - - - - diff --git a/docs/src/main/asciidoc/README.adoc b/docs/src/main/asciidoc/README.adoc deleted file mode 100644 index 8272ef390..000000000 --- a/docs/src/main/asciidoc/README.adoc +++ /dev/null @@ -1,9 +0,0 @@ -include::intro.adoc[] - -== Building - -include::https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/docs/src/main/asciidoc/building-jdk8.adoc[] - -== Contributing - -include::https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/docs/src/main/asciidoc/contributing.adoc[] diff --git a/docs/src/main/asciidoc/ghpages.sh b/docs/src/main/asciidoc/ghpages.sh deleted file mode 100755 index 919057572..000000000 --- a/docs/src/main/asciidoc/ghpages.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/bash -x - -git remote set-url --push origin `git config remote.origin.url | sed -e 's/^git:/https:/'` - -if ! (git remote set-branches --add origin gh-pages && git fetch -q); then - echo "No gh-pages, so not syncing" - exit 0 -fi - -if ! [ -d docs/target/generated-docs ]; then - echo "No gh-pages sources in docs/target/generated-docs, so not syncing" - exit 0 -fi - -# Stash any outstanding changes -################################################################### -git diff-index --quiet HEAD -dirty=$? -if [ "$dirty" != "0" ]; then git stash; fi - -# Switch to gh-pages branch to sync it with master -################################################################### -git checkout gh-pages - -for f in docs/target/generated-docs/*; do - file=${f#docs/target/generated-docs/*} - if ! git ls-files -i -o --exclude-standard --directory | grep -q ^$file$; then - # Not ignored... - cp -rf $f . - git add -A $file - fi -done - -git commit -a -m "Sync docs from master to gh-pages" - -# Uncomment the following push if you want to auto push to -# the gh-pages branch whenever you commit to master locally. -# This is a little extreme. Use with care! -################################################################### -git push origin gh-pages - -# Finally, switch back to the master branch and exit block -git checkout master -if [ "$dirty" != "0" ]; then git stash pop; fi - -exit 0 diff --git a/docs/src/main/asciidoc/spring-cloud-stream.adoc b/docs/src/main/asciidoc/spring-cloud-stream.adoc deleted file mode 100644 index dfc2e3cc0..000000000 --- a/docs/src/main/asciidoc/spring-cloud-stream.adoc +++ /dev/null @@ -1,8 +0,0 @@ -:github-tag: master -:github-repo: spring-cloud/spring-cloud-stream -:github-raw: http://raw.github.com/{github-repo}/{github-tag} -:github-code: http://github.com/{github-repo}/tree/{github-tag} -= Spring Cloud Stream - -include::intro.adoc[] - diff --git a/docs/src/main/ruby/generate_readme.sh b/docs/src/main/ruby/generate_readme.sh deleted file mode 100755 index 7784d1d60..000000000 --- a/docs/src/main/ruby/generate_readme.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/env ruby - -base_dir = File.join(File.dirname(__FILE__),'../../..') -src_dir = File.join(base_dir, "/src/main/asciidoc") -require 'asciidoctor' -require 'optparse' - -options = {} -file = "#{src_dir}/README.adoc" - -OptionParser.new do |o| - o.on('-o OUTPUT_FILE', 'Output file (default is stdout)') { |file| options[:to_file] = file unless file=='-' } - o.on('-h', '--help') { puts o; exit } - o.parse! -end - -file = ARGV[0] if ARGV.length>0 - -srcDir = File.dirname(file) -out = "// Do not edit this file (e.g. go instead to docs/src/main/asciidoc)\n\n" -doc = Asciidoctor.load_file file, safe: :safe, parse: false, attributes: 'allow-uri-read' -out << doc.reader.read - -unless options[:to_file] - puts out -else - File.open(options[:to_file],'w+') do |file| - file.write(out) - end -end diff --git a/pom.xml b/pom.xml index 4af780491..6dde24b32 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ spring-cloud-stream-test-support spring-cloud-stream-test-support-internal spring-cloud-stream-configuration-metadata - docs + spring-cloud-stream-docs diff --git a/spring-cloud-stream-docs/pom.xml b/spring-cloud-stream-docs/pom.xml new file mode 100644 index 000000000..1f96e7907 --- /dev/null +++ b/spring-cloud-stream-docs/pom.xml @@ -0,0 +1,323 @@ + + + 4.0.0 + + org.springframework.cloud + spring-cloud-stream-parent + 1.0.0.BUILD-SNAPSHOT + + spring-cloud-stream-docs + spring-cloud-stream-docs + Spring Cloud Stream Docs + + ${basedir}/.. + + + + + + full + + + + + org.codehaus.mojo + xml-maven-plugin + 1.0 + + + + transform + + + + + + + ${project.build.directory}/external-resources + src/main/xslt/dependencyVersions.xsl + + + .adoc + + + ${project.build.directory}/generated-resources + + + + + + org.asciidoctor + asciidoctor-maven-plugin + 1.5.0 + + + generate-docbook + generate-resources + + process-asciidoc + + + index.adoc + docbook5 + book + + true + ${project.version} + ${project.version} + ${spring-boot-repo} + ${spring.version} + ${spring-security.version} + ${github-tag} + + + + + + + com.agilejava.docbkx + docbkx-maven-plugin + 2.0.15 + + ${basedir}/target/generated-docs + index.xml + true + false + ${basedir}/src/main/docbook/xsl/pdf.xsl + 1 + 1 + ${basedir}/src/main/docbook/xsl/xslthl-config.xml + + + + net.sf.xslthl + xslthl + 2.1.0 + + + net.sf.docbook + docbook-xml + 5.0-all + resources + zip + runtime + + + + + html-single + + generate-html + + generate-resources + + ${basedir}/src/main/docbook/xsl/html-singlepage.xsl + ${basedir}/target/docbook/htmlsingle + + + + + + + + + + + + + + + + + + + html + + generate-html + + generate-resources + + ${basedir}/src/main/docbook/xsl/html-multipage.xsl + ${basedir}/target/docbook/html + true + + + + + + + + + + + + + + + + + + + pdf + + generate-pdf + + generate-resources + + ${basedir}/src/main/docbook/xsl/pdf.xsl + ${basedir}/target/docbook/pdf + + + + + + + + + + + + epub + + generate-epub3 + + generate-resources + + ${basedir}/src/main/docbook/xsl/epub.xsl + ${basedir}/target/docbook/epub + + + + + + + + + + + + + + org.apache.maven.plugins + maven-antrun-plugin + + + ant-contrib + ant-contrib + 1.0b3 + + + ant + ant + + + + + org.apache.ant + ant-nodeps + 1.8.1 + + + org.tigris.antelope + antelopetasks + 3.2.10 + + + + + package-and-attach-docs-zip + package + + run + + + + + + + + + + + setup-maven-properties + validate + + run + + + true + + + + + + + + + + + + + + + + + + + + org.codehaus.mojo + build-helper-maven-plugin + + + attach-zip + + attach-artifact + + + + + ${project.build.directory}/${project.artifactId}-${project.version}.zip + zip;zip.type=docs;zip.deployed=false + + + + + + + + + + + diff --git a/spring-cloud-stream-docs/src/main/asciidoc/.gitignore b/spring-cloud-stream-docs/src/main/asciidoc/.gitignore new file mode 100644 index 000000000..bbc341117 --- /dev/null +++ b/spring-cloud-stream-docs/src/main/asciidoc/.gitignore @@ -0,0 +1,2 @@ +*.html +*.css diff --git a/spring-cloud-stream-docs/src/main/asciidoc/Guardfile b/spring-cloud-stream-docs/src/main/asciidoc/Guardfile new file mode 100644 index 000000000..bdd4d7298 --- /dev/null +++ b/spring-cloud-stream-docs/src/main/asciidoc/Guardfile @@ -0,0 +1,20 @@ +require 'asciidoctor' +require 'erb' + +guard 'shell' do + watch(/.*\.adoc$/) {|m| + Asciidoctor.render_file('index.adoc', \ + :in_place => true, \ + :safe => Asciidoctor::SafeMode::UNSAFE, \ + :attributes=> { \ + 'source-highlighter' => 'prettify', \ + 'icons' => 'font', \ + 'linkcss'=> 'true', \ + 'copycss' => 'true', \ + 'doctype' => 'book'}) + } +end + +guard 'livereload' do + watch(%r{^.+\.(css|js|html)$}) +end diff --git a/spring-cloud-stream-docs/src/main/asciidoc/appendix.adoc b/spring-cloud-stream-docs/src/main/asciidoc/appendix.adoc new file mode 100644 index 000000000..70b828fdd --- /dev/null +++ b/spring-cloud-stream-docs/src/main/asciidoc/appendix.adoc @@ -0,0 +1,5 @@ +[[appendix]] += Appendices + + + diff --git a/spring-cloud-stream-docs/src/main/asciidoc/building.adoc b/spring-cloud-stream-docs/src/main/asciidoc/building.adoc new file mode 100644 index 000000000..e181089ff --- /dev/null +++ b/spring-cloud-stream-docs/src/main/asciidoc/building.adoc @@ -0,0 +1,82 @@ +[[building]] +== Building + +:jdkversion: 1.7 + +=== Basic Compile and Test + +To build the source you will need to install JDK {jdkversion}. + +The build uses the Maven wrapper so you don't have to install a specific +version of Maven. To enable the tests for Redis, Rabbit, and Kafka bindings you +should have those servers running before building. See below for more +information on running the servers. + +The main build command is + +---- +$ ./mvnw clean install +---- + +You can also add '-DskipTests' if you like, to avoid running the tests. + +NOTE: You can also install Maven (>=3.3.3) yourself and run the `mvn` command +in place of `./mvnw` in the examples below. If you do that you also +might need to add `-P spring` if your local Maven settings do not +contain repository declarations for spring pre-release artifacts. + +NOTE: Be aware that you might need to increase the amount of memory +available to Maven by setting a `MAVEN_OPTS` environment variable with +a value like `-Xmx512m -XX:MaxPermSize=128m`. We try to cover this in +the `.mvn` configuration, so if you find you have to do it to make a +build succeed, please raise a ticket to get the settings added to +source control. + + +The projects that require middleware generally include a +`docker-compose.yml`, so consider using +http://compose.docker.io/[Docker Compose] to run the middeware servers +in Docker containers. See the README in the +https://github.com/spring-cloud-samples/scripts[scripts demo +repository] for specific instructions about the common cases of mongo, +rabbit and redis. + +=== Documentation + +There is a "full" profile that will generate documentation. + +=== Working with the code +If you don't have an IDE preference we would recommend that you use +http://www.springsource.com/developer/sts[Spring Tools Suite] or +http://eclipse.org[Eclipse] when working with the code. We use the +http://eclipse.org/m2e/[m2eclipe] eclipse plugin for maven support. Other IDEs and tools +should also work without issue. + +==== Importing into eclipse with m2eclipse +We recommend the http://eclipse.org/m2e/[m2eclipe] eclipse plugin when working with +eclipse. If you don't already have m2eclipse installed it is available from the "eclipse +marketplace". + +Unfortunately m2e does not yet support Maven 3.3, so once the projects +are imported into Eclipse you will also need to tell m2eclipse to use +the `.settings.xml` file for the projects. If you do not do this you +may see many different errors related to the POMs in the +projects. Open your Eclipse preferences, expand the Maven +preferences, and select User Settings. In the User Settings field +click Browse and navigate to the Spring Cloud project you imported +selecting the `.settings.xml` file in that project. Click Apply and +then OK to save the preference changes. + +NOTE: Alternatively you can copy the repository settings from https://github.com/spring-cloud/spring-cloud-build/blob/master/.settings.xml[`.settings.xml`] into your own `~/.m2/settings.xml`. + +==== Importing into eclipse without m2eclipse +If you prefer not to use m2eclipse you can generate eclipse project metadata using the +following command: + +[indent=0] +---- + $ ./mvnw eclipse:eclipse +---- + +The generated eclipse projects can be imported by selecting `import existing projects` +from the `file` menu. diff --git a/spring-cloud-stream-docs/src/main/asciidoc/contributing.adoc b/spring-cloud-stream-docs/src/main/asciidoc/contributing.adoc new file mode 100644 index 000000000..14505d112 --- /dev/null +++ b/spring-cloud-stream-docs/src/main/asciidoc/contributing.adoc @@ -0,0 +1,42 @@ +[[contributing] +== Contributing + +Spring Cloud is released under the non-restrictive Apache 2.0 license, +and follows a very standard Github development process, using Github +tracker for issues and merging pull requests into master. If you want +to contribute even something trivial please do not hesitate, but +follow the guidelines below. + +=== Sign the Contributor License Agreement +Before we accept a non-trivial patch or pull request we will need you to sign the +https://support.springsource.com/spring_committer_signup[contributor's agreement]. +Signing the contributor's agreement does not grant anyone commit rights to the main +repository, but it does mean that we can accept your contributions, and you will get an +author credit if we do. Active contributors might be asked to join the core team, and +given the ability to merge pull requests. + +=== Code Conventions and Housekeeping +None of these is essential for a pull request, but they will all help. They can also be +added after the original pull request but before a merge. + +* Use the Spring Framework code format conventions. If you use Eclipse + you can import formatter settings using the + `eclipse-code-formatter.xml` file from the + https://github.com/spring-cloud/build/tree/master/eclipse-coding-conventions.xml[Spring + Cloud Build] project. If using IntelliJ, you can use the + http://plugins.jetbrains.com/plugin/6546[Eclipse Code Formatter + Plugin] to import the same file. +* Make sure all new `.java` files to have a simple Javadoc class comment with at least an + `@author` tag identifying you, and preferably at least a paragraph on what the class is + for. +* Add the ASF license header comment to all new `.java` files (copy from existing files + in the project) +* Add yourself as an `@author` to the .java files that you modify substantially (more + than cosmetic changes). +* Add some Javadocs and, if you change the namespace, some XSD doc elements. +* A few unit tests would help a lot as well -- someone has to do it. +* If no-one else is using your branch, please rebase it against the current master (or + other target branch in the main project). +* When writing a commit message please follow http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html[these conventions], + if you are fixing an existing issue please add `Fixes gh-XXXX` at the end of the commit + message (where XXXX is the issue number). \ No newline at end of file diff --git a/spring-cloud-stream-docs/src/main/asciidoc/index-docinfo.xml b/spring-cloud-stream-docs/src/main/asciidoc/index-docinfo.xml new file mode 100644 index 000000000..fdcde320e --- /dev/null +++ b/spring-cloud-stream-docs/src/main/asciidoc/index-docinfo.xml @@ -0,0 +1,14 @@ +Spring Cloud Data Flow +{spring-boot-version} + + 2013-2015 + Pivotal Software, Inc. + + + + Copies of this document may be made for your own use and for distribution to + others, provided that you do not charge any fee for such copies and further + provided that each copy contains this Copyright Notice, whether distributed in + print or electronically. + + diff --git a/spring-cloud-stream-docs/src/main/asciidoc/index.adoc b/spring-cloud-stream-docs/src/main/asciidoc/index.adoc new file mode 100644 index 000000000..54a5ab84c --- /dev/null +++ b/spring-cloud-stream-docs/src/main/asciidoc/index.adoc @@ -0,0 +1,52 @@ += Spring Cloud Stream Reference Guide +Sabby Anandan, Marius Bogoevici, Eric Bottard, Mark Fisher, Ilayaperumal Gopinathan, Gunnar Hillert, Mark Pollack, Patrick Peralta, Glenn Renfro, Thomas Risberg, Dave Syer, David Turanski, Janne Valkealahti +:doctype: book +:toc: +:toclevels: 4 +:source-highlighter: prettify +:numbered: +:icons: font +:hide-uri-scheme: +:spring-cloud-dataflow-repo: snapshot +:github-tag: master +:spring-cloud-dataflow-docs-version: current +:spring-cloud-dataflow-docs: http://docs.spring.io/spring-cloud-dataflow/docs/{spring-cloud-dataflow-docs-version}/reference +:spring-cloud-dataflow-docs-current: http://docs.spring.io/spring-cloud-dataflow/docs/current-SNAPSHOT/reference/html/ +:github-repo: spring-projects/spring-cloud-dataflow +:github-raw: http://raw.github.com/{github-repo}/{github-tag} +:github-code: http://github.com/{github-repo}/tree/{github-tag} +:github-wiki: http://github.com/{github-repo}/wiki +:github-master-code: http://github.com/{github-repo}/tree/master +:sc-ext: java +:sc-spring-boot: {github-code}/spring-boot/src/main/java/org/springframework/boot +:dc-ext: html +:dc-root: http://docs.spring.io/spring-cloud-dataflow/docs/{spring-cloud-dataflow-docs-version}/api +:dc-spring-boot: {dc-root}/org/springframework/boot +:dependency-management-plugin: https://github.com/spring-gradle-plugins/dependency-management-plugin +:dependency-management-plugin-documentation: {dependency-management-plugin}/blob/master/README.md +:spring-boot-maven-plugin-site: http://docs.spring.io/spring-boot/docs/{spring-boot-docs-version}/maven-plugin +:spring-reference: http://docs.spring.io/spring/docs/{spring-docs-version}/spring-framework-reference/htmlsingle +:spring-security-reference: http://docs.spring.io/spring-security/site/docs/{spring-security-docs-version}/reference/htmlsingle +:spring-javadoc: http://docs.spring.io/spring/docs/{spring-docs-version}/javadoc-api/org/springframework +:spring-amqp-javadoc: http://docs.spring.io/spring-amqp/docs/current/api/org/springframework/amqp +:spring-data-javadoc: http://docs.spring.io/spring-data/jpa/docs/current/api/org/springframework/data/jpa +:spring-data-commons-javadoc: http://docs.spring.io/spring-data/commons/docs/current/api/org/springframework/data +:spring-data-mongo-javadoc: http://docs.spring.io/spring-data/mongodb/docs/current/api/org/springframework/data/mongodb +:spring-data-rest-javadoc: http://docs.spring.io/spring-data/rest/docs/current/api/org/springframework/data/rest +:gradle-userguide: http://www.gradle.org/docs/current/userguide +:propdeps-plugin: https://github.com/spring-projects/gradle-plugins/tree/master/propdeps-plugin +:ant-manual: http://ant.apache.org/manual +// ====================================================================================== + += Reference Guide +include::spring-cloud-stream-overview.adoc[] + += Samples +include::spring-cloud-stream-samples.adoc[] + += Appendices +[appendix] +include::building.adoc[] +include::contributing.adoc[] + +// ====================================================================================== diff --git a/docs/src/main/asciidoc/intro.adoc b/spring-cloud-stream-docs/src/main/asciidoc/spring-cloud-stream-overview.adoc similarity index 69% rename from docs/src/main/asciidoc/intro.adoc rename to spring-cloud-stream-docs/src/main/asciidoc/spring-cloud-stream-overview.adoc index 76c279ccb..8c0652e4b 100644 --- a/docs/src/main/asciidoc/intro.adoc +++ b/spring-cloud-stream-docs/src/main/asciidoc/spring-cloud-stream-overview.adoc @@ -1,4 +1,15 @@ -This project allows a user to develop and run messaging microservices using Spring Integration and run them locally, or in the cloud, or even on Spring XD. Just add `@EnableBinding` and run your app as a Spring Boot app (single application context). You just need to connect to the physical broker for the bindings, which is automatic if the relevant binder implementation is available on the classpath. The sample uses Redis. +[[spring-cloud-stream-overview]] +== Spring Cloud Stream Overview + +[partintro] +-- +This section goes into more detail about how you can work with Spring Cloud Stream. It covers topics +such as creating and running stream modules. +-- + +=== Introducing Spring Cloud Stream + +The Spring Cloud Stream project allows a user to develop and run messaging microservices using Spring Integration. Just add `@EnableBinding` and run your app as a Spring Boot app (single application context). You just need to connect to the physical broker for the bindings, which is automatic if the relevant binder implementation is available on the classpath. The sample uses Redis. Here's a sample source module (output channel only): @@ -51,7 +62,7 @@ The `@Output` annotation is used to identify output channels (messages leaving t public class ModuleApplicationTests { @Autowired - private Source source; + private Source source @Test public void contextLoads() { @@ -63,40 +74,21 @@ public class ModuleApplicationTests { NOTE: In this case there is only one `Source` in the application context so there is no need to qualify it when it is autowired. If there is ambiguity, e.g. if you are composing one module from some others, you can use `@Bindings` qualifier to inject a specific channel set. The `@Bindings` qualifier takes a parameter which is the class that carries the `@EnableBinding` annotation (in this case the `TimerSource`). -== Multiple Input or Output Channels +==== Multiple Input or Output Channels A module can have multiple input or output channels all defined either as `@Input` and `@Output` methods in an interface (preferrable) or as bean definitions. Instead of just one channel named "input" or "output" you can add multiple `MessageChannel` methods annotated `@Input` or `@Output` and the names are converted to external channel names on the broker. The external channel names can be specified as properties that consist of the channel names prefixed with `spring.cloud.stream.bindings` (e.g. `spring.cloud.stream.bindings.input` or `spring.cloud.stream.bindings.output`). External channel names can have a channel type as a colon-separated prefix, and the semantics of the external bus channel changes accordingly. For example, you can have two `MessageChannels` called "output" and "foo" in a module with `spring.cloud.stream.bindings.output=bar` and `spring.cloud.stream.bindings.foo=topic:foo`, and the result is 2 external channels called "bar" and "topic:foo". -== Samples - -There are several samples, all running on the redis transport (so you need redis running locally to test them). - - -NOTE: The main set of samples are "vanilla" in the sense that they are not deployable as XD modules by the current generation (1.x) of XD. You can still interact with an XD system using the appropriate naming convention for input and output channel names (`.` format). - -* `source` is a Java config version of the classic "timer" module from Spring XD. It has a "fixedDelay" option (in milliseconds) for the period between emitting messages. - -* `sink` is a Java config version of the classic "log" module from Spring XD. It has no options (but some could easily be added), and just logs incoming messages at INFO level. - -* `transform` is a simple pass through logging transformer (just logs the incoming message and passes it on). - -* `double` is a combination of 2 modules defined locally (a source and a sink, so the whole app is self contained). - -* `extended` is a multi-module mashup of `source | transform | transform | sink`, where the modules are defined in the other samples and referred to in this app just as dependencies. - -If you run the source and the sink and point them at the same redis instance (e.g. do nothing to get the one on localhost, or the one they are both bound to as a service on Cloud Foundry) then they will form a "stream" and start talking to each other. All the samples have friendly JMX and Actuator endpoints for inspecting what is going on in the system. - -== Module or App +=== Module or App Code using this library can be deployed as a standalone app or as an XD module. In standalone mode you app will run happily as a service or in any PaaS (Cloud Foundry, Lattice, Heroku, Azure, etc.). Depending on whether your main aim is to develop an XD module and you just want to test it locally using the standalone mode, or if the ultimate goal is a standalone app, there are some things that you might do differently. -=== Fat JAR +==== Fat JAR You can run in standalone mode from your IDE for testing. To run in production you can create an executable (or "fat") JAR using the standard Spring Boot tooling. // To be confirmed... // the executable JAR has a load of stuff in it that isn't needed if it's going to be deployed as an XD module. In that case you are better off with the normal JAR packaging provided by Maven or Gradle. -== Making Standalone Modules Talk to Each Other +=== Making Standalone Modules Talk to Each Other The `[input,output]ChannelName` are used to create physical endpoints in the external broker (e.g. `queue.` in Redis). diff --git a/spring-cloud-stream-docs/src/main/asciidoc/spring-cloud-stream-samples.adoc b/spring-cloud-stream-docs/src/main/asciidoc/spring-cloud-stream-samples.adoc new file mode 100644 index 000000000..443968137 --- /dev/null +++ b/spring-cloud-stream-docs/src/main/asciidoc/spring-cloud-stream-samples.adoc @@ -0,0 +1,18 @@ +[[spring-cloud-stream-samples]] +== Sample Applications + +There are several samples, all running on the redis transport (so you need redis running locally to test them). + + +* `source` is a Java config version of the classic "timer" module from Spring XD. It has a "fixedDelay" option (in milliseconds) for the period between emitting messages. + +* `sink` is a Java config version of the classic "log" module from Spring XD. It has no options (but some could easily be added), and just logs incoming messages at INFO level. + +* `transform` is a simple pass through logging transformer (just logs the incoming message and passes it on). + +* `double` is a combination of 2 modules defined locally (a source and a sink, so the whole app is self contained). + +* `extended` is a multi-module mashup of `source | transform | transform | sink`, where the modules are defined in the other samples and referred to in this app just as dependencies. + +If you run the source and the sink and point them at the same redis instance (e.g. do nothing to get the one on localhost, or the one they are both bound to as a service on Cloud Foundry) then they will form a "stream" and start talking to each other. All the samples have friendly JMX and Actuator endpoints for inspecting what is going on in the system. + diff --git a/spring-cloud-stream-docs/src/main/docbook/css/highlight.css b/spring-cloud-stream-docs/src/main/docbook/css/highlight.css new file mode 100644 index 000000000..ffefef72d --- /dev/null +++ b/spring-cloud-stream-docs/src/main/docbook/css/highlight.css @@ -0,0 +1,35 @@ +/* + code highlight CSS resemblign the Eclipse IDE default color schema + @author Costin Leau +*/ + +.hl-keyword { + color: #7F0055; + font-weight: bold; +} + +.hl-comment { + color: #3F5F5F; + font-style: italic; +} + +.hl-multiline-comment { + color: #3F5FBF; + font-style: italic; +} + +.hl-tag { + color: #3F7F7F; +} + +.hl-attribute { + color: #7F007F; +} + +.hl-value { + color: #2A00FF; +} + +.hl-string { + color: #2A00FF; +} \ No newline at end of file diff --git a/spring-cloud-stream-docs/src/main/docbook/css/manual-multipage.css b/spring-cloud-stream-docs/src/main/docbook/css/manual-multipage.css new file mode 100644 index 000000000..0c484531c --- /dev/null +++ b/spring-cloud-stream-docs/src/main/docbook/css/manual-multipage.css @@ -0,0 +1,9 @@ +@IMPORT url("manual.css"); + +body.firstpage { + background: url("../images/background.png") no-repeat center top; +} + +div.part h1 { + border-top: none; +} diff --git a/spring-cloud-stream-docs/src/main/docbook/css/manual-singlepage.css b/spring-cloud-stream-docs/src/main/docbook/css/manual-singlepage.css new file mode 100644 index 000000000..4a7fd1400 --- /dev/null +++ b/spring-cloud-stream-docs/src/main/docbook/css/manual-singlepage.css @@ -0,0 +1,6 @@ +@IMPORT url("manual.css"); + +body { + background: url("../images/background.png") no-repeat center top; +} + diff --git a/spring-cloud-stream-docs/src/main/docbook/css/manual.css b/spring-cloud-stream-docs/src/main/docbook/css/manual.css new file mode 100644 index 000000000..0ecbe2e88 --- /dev/null +++ b/spring-cloud-stream-docs/src/main/docbook/css/manual.css @@ -0,0 +1,344 @@ +@IMPORT url("highlight.css"); + +html { + padding: 0pt; + margin: 0pt; +} + +body { + color: #333333; + margin: 15px 30px; + font-family: Helvetica, Arial, Freesans, Clean, Sans-serif; + line-height: 1.6; + -webkit-font-smoothing: antialiased; +} + +code { + font-size: 16px; + font-family: Consolas, "Liberation Mono", Courier, monospace; +} + +:not(a)>code { + color: #6D180B; +} + +:not(pre)>code { + background-color: #F2F2F2; + border: 1px solid #CCCCCC; + border-radius: 4px; + padding: 1px 3px 0; + text-shadow: none; + white-space: nowrap; +} + +body>*:first-child { + margin-top: 0 !important; +} + +div { + margin: 0pt; +} + +hr { + border: 1px solid #CCCCCC; + background: #CCCCCC; +} + +h1,h2,h3,h4,h5,h6 { + color: #000000; + cursor: text; + font-weight: bold; + margin: 30px 0 10px; + padding: 0; +} + +h1,h2,h3 { + margin: 40px 0 10px; +} + +h1 { + margin: 70px 0 30px; + padding-top: 20px; +} + +div.part h1 { + border-top: 1px dotted #CCCCCC; +} + +h1,h1 code { + font-size: 32px; +} + +h2,h2 code { + font-size: 24px; +} + +h3,h3 code { + font-size: 20px; +} + +h4,h1 code,h5,h5 code,h6,h6 code { + font-size: 18px; +} + +div.book,div.chapter,div.appendix,div.part,div.preface { + min-width: 300px; + max-width: 1200px; + margin: 0 auto; +} + +p.releaseinfo { + font-weight: bold; + margin-bottom: 40px; + margin-top: 40px; +} + +div.authorgroup { + line-height: 1; +} + +p.copyright { + line-height: 1; + margin-bottom: -5px; +} + +.legalnotice p { + font-style: italic; + font-size: 14px; + line-height: 1; +} + +div.titlepage+p,div.titlepage+p { + margin-top: 0; +} + +pre { + line-height: 1.0; + color: black; +} + +a { + color: #4183C4; + text-decoration: none; +} + +p { + margin: 15px 0; + text-align: left; +} + +ul,ol { + padding-left: 30px; +} + +li p { + margin: 0; +} + +div.table { + margin: 1em; + padding: 0.5em; + text-align: center; +} + +div.table table,div.informaltable table { + display: table; + width: 100%; +} + +div.table td { + padding-left: 7px; + padding-right: 7px; +} + +.sidebar { + line-height: 1.4; + padding: 0 20px; + background-color: #F8F8F8; + border: 1px solid #CCCCCC; + border-radius: 3px 3px 3px 3px; +} + +.sidebar p.title { + color: #6D180B; +} + +pre.programlisting,pre.screen { + font-size: 15px; + padding: 6px 10px; + background-color: #F8F8F8; + border: 1px solid #CCCCCC; + border-radius: 3px 3px 3px 3px; + clear: both; + overflow: auto; + line-height: 1.4; + font-family: Consolas, "Liberation Mono", Courier, monospace; +} + +table { + border-collapse: collapse; + border-spacing: 0; + border: 1px solid #DDDDDD !important; + border-radius: 4px !important; + border-collapse: separate !important; + line-height: 1.6; +} + +table thead { + background: #F5F5F5; +} + +table tr { + border: none; + border-bottom: none; +} + +table th { + font-weight: bold; +} + +table th,table td { + border: none !important; + padding: 6px 13px; +} + +table tr:nth-child(2n) { + background-color: #F8F8F8; +} + +td p { + margin: 0 0 15px 0; +} + +div.table-contents td p { + margin: 0; +} + +div.important *,div.note *,div.tip *,div.warning *,div.navheader *,div.navfooter *,div.calloutlist * + { + border: none !important; + background: none !important; + margin: 0; +} + +div.important p,div.note p,div.tip p,div.warning p { + color: #6F6F6F; + line-height: 1.6; +} + +div.important code,div.note code,div.tip code,div.warning code { + background-color: #F2F2F2 !important; + border: 1px solid #CCCCCC !important; + border-radius: 4px !important; + padding: 1px 3px 0 !important; + text-shadow: none !important; + white-space: nowrap !important; +} + +.note th,.tip th,.warning th { + display: none; +} + +.note tr:first-child td,.tip tr:first-child td,.warning tr:first-child td + { + border-right: 1px solid #CCCCCC !important; + padding-top: 10px; +} + +div.calloutlist p,div.calloutlist td { + padding: 0; + margin: 0; +} + +div.calloutlist>table>tbody>tr>td:first-child { + padding-left: 10px; + width: 30px !important; +} + +div.important,div.note,div.tip,div.warning { + margin-left: 0px !important; + margin-right: 20px !important; + margin-top: 20px; + margin-bottom: 20px; + padding-top: 10px; + padding-bottom: 10px; +} + +div.toc { + line-height: 1.2; +} + +dl,dt { + margin-top: 1px; + margin-bottom: 0; +} + +div.toc>dl>dt { + font-size: 32px; + font-weight: bold; + margin: 30px 0 10px 0; + display: block; +} + +div.toc>dl>dd>dl>dt { + font-size: 24px; + font-weight: bold; + margin: 20px 0 10px 0; + display: block; +} + +div.toc>dl>dd>dl>dd>dl>dt { + font-weight: bold; + font-size: 20px; + margin: 10px 0 0 0; +} + +tbody.footnotes * { + border: none !important; +} + +div.footnote p { + margin: 0; + line-height: 1; +} + +div.footnote p sup { + margin-right: 6px; + vertical-align: middle; +} + +div.navheader { + border-bottom: 1px solid #CCCCCC; +} + +div.navfooter { + border-top: 1px solid #CCCCCC; +} + +.title { + margin-left: -1em; + padding-left: 1em; +} + +.title>a { + position: absolute; + visibility: hidden; + display: block; + font-size: 0.85em; + margin-top: 0.05em; + margin-left: -1em; + vertical-align: text-top; + color: black; +} + +.title>a:before { + content: "\00A7"; +} + +.title:hover>a,.title>a:hover,.title:hover>a:hover { + visibility: visible; +} + +.title:focus>a,.title>a:focus,.title:focus>a:focus { + outline: 0; +} diff --git a/spring-cloud-stream-docs/src/main/docbook/images/background.png b/spring-cloud-stream-docs/src/main/docbook/images/background.png new file mode 100644 index 0000000000000000000000000000000000000000..d4195e5b32cd5f878652c5195bd674a5a6304855 GIT binary patch literal 10947 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 literal 0 HcmV?d00001 diff --git a/spring-cloud-stream-docs/src/main/docbook/images/caution.png b/spring-cloud-stream-docs/src/main/docbook/images/caution.png new file mode 100644 index 0000000000000000000000000000000000000000..8a5e4fca039d0247dcf55ae0e719cdb457509422 GIT binary patch literal 2099 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 literal 0 HcmV?d00001 diff --git a/spring-cloud-stream-docs/src/main/docbook/images/logo.png b/spring-cloud-stream-docs/src/main/docbook/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..45f1978f3fde3661dc2d4131c7faa0c120188c5d GIT binary patch literal 46269 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%0ArS<p+tPz$YS|THxa0u-ohR#2Mkj!=(ogswU!H> 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 literal 0 HcmV?d00001 diff --git a/spring-cloud-stream-docs/src/main/docbook/images/note.png b/spring-cloud-stream-docs/src/main/docbook/images/note.png new file mode 100644 index 0000000000000000000000000000000000000000..88d997b17cfe703280d3a33e3f7c285a4ce6c8a6 GIT binary patch literal 2257 zcmbVOc~}!?8jt0%wJO?rR6vCx90KN;$uT)dKypElKnRgUJaCwd5Fm%i5JI?F5NZ{L zHB!K;6~%M$V1?>pq28#7tClK{yXb1Wwu?(E7V(JeM8)nOZvWVMX6F08ci!Lcy`N`3 zRmMkqPWG8hB9T1hF%lKAdbyuT9>n{*eLWY6#T%Du@g&n~JQuNGq$r&!4Flu`Bpp*> zh%RqUHzpvFJTmlZEv{9>@llh3hPZWTc7vHflSqO{yBR^VFdRt3()C6mdFU^lWI(SI zk~M4vs4$DM41J8lf+acP)u|5Q7d9H%x_Cd^XHyaDX=#nXqQj zt>&vFvNyJflaQQ&<7Pgco|~IX%Vp9`mUKGA-Zp( zOJtG50yzv2=0Xrx46(Qj83@V53@*$QjdQ#U%j3e3l*8gOAt(xhqztY^3`s$@h$SN! zBqG*0R&KQ7h!Mrc?dl1;Z?K%-#qz}#48ctnwaJt{-T}%C6K=9*n9P7U2?jzG2&y-_ z1)=T&y^dFcS@bqcC$pFgz^e@N_3!Y2&4rmVrc?^b{#WF$vAX{!YjnaHy1PC8t6j!L zL=U>RZ=0Vuyd59RNX(3d7!LK(`xl6rBPrw5(!bs96XC4+vN`n!pkNhnvKs;x&pmV! z^p5t4F5vmbc<*Tg!?VGlB>@XnzNdTWfhvE25$e1Mo;VNrFPPX7U z(3k?AET0>c;EQjdF;|7qmM;id8Z2DH;$?xdi*jLQS;UTmTiQ;84~KpVQTS}!1G7>???1T1M8Y2Y^v{gyWH4>vrEALt zW@fUDlD9Q{=doHaIiz}LsVtu#Tf|>gNSPn)uUj7xxbS*QsNLaH+;@qq1yM5)eX8Xer{FRzM~ z7xK|ff|w#cs13!6!+4oAeiqo&#|^o&-HT^JJ+1KLT73G&i2y$6Z`@c^KzV`9OsHC8!WcLRbRl_HObYx+233S$HvBP zx5xC8NE3$Tk|?#kKW%jS#1E2l4~Dm9y?iNEMtGE`{31iwDR0{;frQ`P~3kjC$lu_eqZs}wAR(baf^>n-dr`hd)oUmm$gnF zbD^_eYPM#zynGxf-a!tS6u8|n_+WHspz~^faii1kX{e03c}{&}W2fu+^!IEjlU-

MvJZJ$)LTqJA+@mbLxmkyPc#tU=W5xPJ%q2sZXv`v(Ui?>!8Tjh_mSOc$O+ zW<-$ZjJfV@LAsB%Biz5w(;fXV?CW1TB9(ujH2(XqZD*&_2O2L-EZJ~mTUSoq*g)q^ zQ!j3qa>DzQ*dH!xN(0O3n$-7HmkYk_eQXG-gI*K|{dncP!DXswNa?P_Z}nzo#*v#J zQ5S9ROsaZ%ZqC6y?VF!Q1^;o|wu*kH=E=`8B``9)uFtN|s?>Xw*7?*`wfqP}<_A~q zd8VVPq*k-7ZPhbSEogsT%F|x0xuT7xdRv7>Rev?4wv{qrDN}+xS$8V5!!ga&#Y1*BgqL?&c}jPc zG_JlfMSD5I%DQQcHXTbGWQtKpeL6yAB|UI5CQ=~#`}=c}Um;E%R)9u^qI0>&GHQ-g zOm;DCkym+{WF$}@UWrV1mtnTPtu!WtY$r7BOpo|N_#mqWGhK#KR0MD7eW*yPaY&xBTRfcG-E5p&`2dq z875XFdy+3GStd(wD_Mg`dys8Xd_houJju_&*4)mZt2Tk1H)DTRJY^_lf>>*ZU2Th5 zWQ3Ly{;kf91GM2s4Vfv8a-fcsXpb+4t> zmM%11X*>M&PQZNVdARf4d*2x!aq1>jOzQ?>>R)(Ok;sOJ)7jfk$Fdif23? z-}3V78&9qod*O;uGk%fEW^;|k`Lo>bOq2iF72o-IGb2gTw+4B~#iYz(oL}sS7|$R2 zDGfrR{|@~AQJ&v(#4u|ZtJP}t520N48P!$8U;|Vfuq=8>E$w`o2Jf`%eqhqbr%IH1zV?O3uDWqKZId-wMQ*MFefpD5X*w@ zok{kNA?%%$F{M!OUcE^^x{~(wkHK|_*9Yg`KNS88FaVH_sda1Xfs6nE002ovPDHLk FV1jwin)(0$ literal 0 HcmV?d00001 diff --git a/spring-cloud-stream-docs/src/main/docbook/images/warning.png b/spring-cloud-stream-docs/src/main/docbook/images/warning.png new file mode 100644 index 0000000000000000000000000000000000000000..0d5b5244605adbb7ab05a1549746a9c35490f95b GIT binary patch literal 2130 zcmbVNYg7|w8V(4q($)50y>JmGlLW#g$xLn}Vd2Si)}#|ptPAQp3Bp-3!-lL0;i^LY?;i#f0m5s49g z3h?3rDQg~EDPlm?FKkgKIcWEK-3X6YU0uzs7H|nq84s39r2!5;pF?SI$QqXy^Ko1x zV~zpENvp@<_Bsd`5MabC#3rvCq&$5dg43yGR zAdy0-rWjC#a1N_+kzUMY#pmogD7!DP(9dEKr3c5ngvUq_6>}Y+w-a81v=eSXnIi_+ zI?U>D1q2C!0zHox#XXKH+@|&rPT*OF5yvY$5J|)WwLqnU)c-5;=UChSlQkaY3@^|g z|J5#YBB}=i+n3Ex9bS$P?xJSKLk)-HHII@;3qG#TG^!+aj>0QkO~7kB0+|yM;YrGB zF>Ge@isQ#73%Tp#k_(tInh3U$uJWY-+DND*o}L-CB5g@#9YWWw~pxZ!Obm>yN#ZHFvL0zA3vNCTJ=t?)~`2O1M{L6un=ml<2x zQEYfifmA?Pz0tqRs^2Utt1pU0BQB1eIY0U_I}c1Y#PP7Ci5s7#IJn}xK{G+{_v^Z+1V#$Erodv>d}ew>RP0wzw+GWkGCBlS1Oj5Z!5NK zUuSR6>pa}RSEZ;qE_w1l#`hQX4E67U6NeP zHZ`T&wj0_H)t|Y1thUqnhub?%e)Y07;a^Tq%FO&iQkR&`qG!dh*2WfW(HuRQj*_DI zeCD1bUA|tMwjOb8E|FRIn$pzEU!2j_N}1Z2ig)vbr5xA0rjC70cmI6*%Uf->hWzaZ z{33HABO5q)vRhzDly2l691@+q3O{}NbSzx+I*k@|L4&3leK#$>u+T#TvTELfKb|IH zc23atf3vmfCa0&TWY@iuoA_Pm<0~ttEC*ut`isb^jXS>X^Sp=l?RXN_OJ*&usGXg$ zTlTv;Ch^vhLDf&+62jl64*&D+=+`sN_dap_1W%p|KQVYIdgPL5uRE9(c4On)DXndL zLNq?%!-u*zmMxyYc4m4Nr>>=A=s}PkJkqr&E^b9>5g+}c1%X}3|WKcg&spcJQ)05zI<<5LTBhNKRg$XRTi2{j)yl_ zj4~kKOvr+m(;vw~9zVh(zC-y9jqQnguz5r7FRq^MyKuXAENp(TAzUVtg&Ts+B_s7) zGn+fN0sG>9GjsPLKTRrvCd`71IZulJ1_1jO9KWbD&_@2UC+LTNpxxrdz#E|j|2nA9 zzB!UTyfAEJ&#%$pQ>QX#8vk@_a5iqukMF;8`wRKe{BI}5$H%OROs4J1#j)|?p|YSh z_SpR^e`VE#F52;WL{!+L(yZLRh40*KS;@box;9(-tE)`mcVp27O*>Z{_Lb*5T3cJA yr~0nPHtg2+UHi&&$8ha;`+hiaUmw&!n@8(?5PqF(KE5>Ym)EG)p&uyBP5%a8^# + + + + + + + 1 + 0 + 1 + + + + images/ + .png + + + book toc,title + 3 + + + + + diff --git a/spring-cloud-stream-docs/src/main/docbook/xsl/epub.xsl b/spring-cloud-stream-docs/src/main/docbook/xsl/epub.xsl new file mode 100644 index 000000000..031406ca4 --- /dev/null +++ b/spring-cloud-stream-docs/src/main/docbook/xsl/epub.xsl @@ -0,0 +1,31 @@ + + + + + + + + + + diff --git a/spring-cloud-stream-docs/src/main/docbook/xsl/html-multipage.xsl b/spring-cloud-stream-docs/src/main/docbook/xsl/html-multipage.xsl new file mode 100644 index 000000000..be9cc52de --- /dev/null +++ b/spring-cloud-stream-docs/src/main/docbook/xsl/html-multipage.xsl @@ -0,0 +1,73 @@ + + + + + + + + + + css/manual-multipage.css + + '5' + '1' + + + + + + + + + + + + + + + + + + + + firstpage + + + + + + + + + + + + + + + + + + + + + + diff --git a/spring-cloud-stream-docs/src/main/docbook/xsl/html-singlepage.xsl b/spring-cloud-stream-docs/src/main/docbook/xsl/html-singlepage.xsl new file mode 100644 index 000000000..6bd4ac819 --- /dev/null +++ b/spring-cloud-stream-docs/src/main/docbook/xsl/html-singlepage.xsl @@ -0,0 +1,30 @@ + + + + + + + + + + css/manual-singlepage.css + + diff --git a/spring-cloud-stream-docs/src/main/docbook/xsl/html.xsl b/spring-cloud-stream-docs/src/main/docbook/xsl/html.xsl new file mode 100644 index 000000000..fd96f9a70 --- /dev/null +++ b/spring-cloud-stream-docs/src/main/docbook/xsl/html.xsl @@ -0,0 +1,141 @@ + + + + + + + + + + + 1 + + + 1 + + + + 120 + images/callouts/ + .png + + + text/css + + text-align: left + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + , + + + + + + + +

+

Authors

+ +
+ + + + + + + + + + + + + + + + + + # + + + + + + + diff --git a/spring-cloud-stream-docs/src/main/docbook/xsl/pdf.xsl b/spring-cloud-stream-docs/src/main/docbook/xsl/pdf.xsl new file mode 100644 index 000000000..77360a7b3 --- /dev/null +++ b/spring-cloud-stream-docs/src/main/docbook/xsl/pdf.xsl @@ -0,0 +1,582 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + auto + + + + + underline + #204060 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + , + + + + + + + + + + + Copyright © + + + + + + + + + + + + + + + + + + + + + + + + + + + + -5em + -5em + 8pt + + + + + + + + + + + + + + + please define title in your docbook file! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 8pt + + + + + + + + + + + + + + + + + + + + + + + + + please define title in your docbook file! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 0 + + + + false + + + Helvetica + 10 + 8 + Helvetica + + + 1.4 + + + + left + bold + + + pt + + + + + + + + + + + + + + + 0.6em + 0.6em + 0.6em + + + pt + + 0.1em + 0.1em + 0.1em + + + + 0.4em + 0.4em + 0.4em + + + pt + + 0.1em + 0.1em + 0.1em + + + + 0.4em + 0.4em + 0.4em + + + pt + + 0.1em + 0.1em + 0.1em + + + + 0.3em + 0.3em + 0.3em + + + pt + + 0.1em + 0.1em + 0.1em + + + + + + + + 4pt + 4pt + 4pt + 4pt + + + + 0.1pt + 0.1pt + + + + + + + + + + + + + + + + 7pt + wrap + 1 + + + + 1em + 1em + 1em + 0.1em + 0.1em + 0.1em + + #444444 + solid + 0.1pt + 0.5em + 0.5em + 0.5em + 0.5em + 0.5em + 0.5em + + + + 1 + + #F0F0F0 + + + + 0.1em + 0.1em + 0.1em + 0.1em + 0.1em + 0.1em + + + + 0.5em + 0.5em + 0.5em + 0.1em + 0.1em + 0.1em + + + + #444444 + solid + 0.1pt + #F0F0F0 + + + + + + + normal + italic + + + pt + + false + 0.1em + 0.1em + 0.1em + + + + + + 0 + 1 + + + 90 + + + + + + figure after + example after + equation before + table before + procedure before + + + + 1 + 0pt + + + + + + + + + + + + + + + + + + + + 0.1em + 2em + .75pt + solid + #5c5c4f + 0.5em + 1.5em + 1.5em + 1.5em + 1.5em + 1.5em + 1.5em + + + + 10pt + bold + false + always + 0 + + + + 0em + 0em + 0em + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl-config.xml b/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl-config.xml new file mode 100644 index 000000000..e4d677fc5 --- /dev/null +++ b/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl-config.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/asciidoc-hl.xml b/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/asciidoc-hl.xml new file mode 100644 index 000000000..5478b1d6d --- /dev/null +++ b/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/asciidoc-hl.xml @@ -0,0 +1,41 @@ + + + + + //// + //// + + + // + + + + ^(={1,6} .+)$ + + MULTILINE + + + ^(\.[^\.\s].+)$ + + MULTILINE + + + ^(:!?\w.*?:) + + MULTILINE + + + ^(-|\*{1,5}|\d*\.{1,5})(?= .+$) + + MULTILINE + + + ^(\[.+\])$ + + MULTILINE + + diff --git a/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/bourne-hl.xml b/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/bourne-hl.xml new file mode 100644 index 000000000..e2cd98d8b --- /dev/null +++ b/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/bourne-hl.xml @@ -0,0 +1,95 @@ + + + + # + + << + ' + " + - + + + + + " + \ + + + ' + \ + + + + 0x + + + + . + + + + + + if + then + else + elif + fi + case + esac + for + while + until + do + done + + exec + shift + exit + times + break + export + trap + continue + readonly + wait + eval + return + + cd + echo + hash + pwd + read + set + test + type + ulimit + umask + unset + + diff --git a/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/c-hl.xml b/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/c-hl.xml new file mode 100644 index 000000000..176cc379f --- /dev/null +++ b/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/c-hl.xml @@ -0,0 +1,117 @@ + + + + + /** + */ + + + + + + + + /* + */ + + // + + + # + \ + + + + + " + \ + + + ' + \ + + + 0x + ul + lu + u + l + + + + . + + e + ul + lu + u + f + l + + + + auto + _Bool + break + case + char + _Complex + const + continue + default + do + double + else + enum + extern + float + for + goto + if + _Imaginary + inline + int + long + register + restrict + return + short + signed + sizeof + static + struct + switch + typedef + union + unsigned + void + volatile + while + + diff --git a/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/cpp-hl.xml b/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/cpp-hl.xml new file mode 100644 index 000000000..ef83c4f5e --- /dev/null +++ b/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/cpp-hl.xml @@ -0,0 +1,151 @@ + + + + + /** + */ + + + + + + + + /* + */ + + // + + + # + \ + + + + + " + \ + + + ' + \ + + + 0x + ul + lu + u + l + + + + . + + e + ul + lu + u + f + l + + + + + auto + _Bool + break + case + char + _Complex + const + continue + default + do + double + else + enum + extern + float + for + goto + if + _Imaginary + inline + int + long + register + restrict + return + short + signed + sizeof + static + struct + switch + typedef + union + unsigned + void + volatile + while + + asm + dynamic_cast + namespace + reinterpret_cast + try + bool + explicit + new + static_cast + typeid + catch + false + operator + template + typename + class + friend + private + this + using + const_cast + inline + public + throw + virtual + delete + mutable + protected + true + wchar_t + + diff --git a/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/csharp-hl.xml b/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/csharp-hl.xml new file mode 100644 index 000000000..d57e63102 --- /dev/null +++ b/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/csharp-hl.xml @@ -0,0 +1,194 @@ + + + + + /** + */ + + + + /// + + + + /* + */ + + // + + + [ + ] + ( + ) + + + + # + \ + + + + + + @" + " + \ + + + + " + \ + + + ' + \ + + + 0x + ul + lu + u + l + + + + . + + e + ul + lu + u + f + d + m + l + + + + abstract + as + base + bool + break + byte + case + catch + char + checked + class + const + continue + decimal + default + delegate + do + double + else + enum + event + explicit + extern + false + finally + fixed + float + for + foreach + goto + if + implicit + in + int + interface + internal + is + lock + long + namespace + new + null + object + operator + out + override + params + private + protected + public + readonly + ref + return + sbyte + sealed + short + sizeof + stackalloc + static + string + struct + switch + this + throw + true + try + typeof + uint + ulong + unchecked + unsafe + ushort + using + virtual + void + volatile + while + + + + add + alias + from + get + global + group + into + join + orderby + partial + remove + select + set + value + where + yield + + diff --git a/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/css-hl.xml b/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/css-hl.xml new file mode 100644 index 000000000..164c48c3d --- /dev/null +++ b/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/css-hl.xml @@ -0,0 +1,176 @@ + + + + + /* + */ + + + " + \ + + + + ' + \ + + + + . + + + + @charset + @import + @media + @page + + + + - + azimuth + background-attachment + background-color + background-image + background-position + background-repeat + background + border-collapse + border-color + border-spacing + border-style + border-top + border-right + border-bottom + border-left + border-top-color + border-right-color + border-bottom-color + border-left-color + border-top-style + border-right-style + border-bottom-style + border-left-style + border-top-width + border-right-width + border-bottom-width + border-left-width + border-width + border + bottom + caption-side + clear + clip + color + content + counter-increment + counter-reset + cue-after + cue-before + cue + cursor + direction + display + elevation + empty-cells + float + font-family + font-size + font-style + font-variant + font-weight + font + height + left + letter-spacing + line-height + list-style-image + list-style-position + list-style-type + list-style + margin-right + margin-left + margin-top + margin-bottom + margin + max-height + max-width + min-height + min-width + orphans + outline-color + outline-style + outline-width + outline + overflow + padding-top + padding-right + padding-bottom + padding-left + padding + page-break-after + page-break-before + page-break-inside + pause-after + pause-before + pause + pitch-range + pitch + play-during + position + quotes + richness + right + speak-header + speak-numeral + speak-punctuation + speak + speech-rate + stress + table-layout + text-align + text-decoration + text-indent + text-transform + top + unicode-bidi + vertical-align + visibility + voice-family + volume + white-space + widows + width + word-spacing + z-index + + diff --git a/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/html-hl.xml b/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/html-hl.xml new file mode 100644 index 000000000..5b6761bab --- /dev/null +++ b/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/html-hl.xml @@ -0,0 +1,122 @@ + + + + + + + a + abbr + address + area + article + aside + audio + b + base + bdi + blockquote + body + br + button + caption + canvas + cite + code + command + col + colgroup + dd + del + dialog + div + dl + dt + em + embed + fieldset + figcaption + figure + font + form + footer + h1 + h2 + h3 + h4 + h5 + h6 + head + header + hr + html + i + iframe + img + input + ins + kbd + label + legend + li + link + map + mark + menu + menu + meta + nav + noscript + object + ol + optgroup + option + p + param + pre + q + samp + script + section + select + small + source + span + strong + style + sub + summary + sup + table + tbody + td + textarea + tfoot + th + thead + time + title + tr + track + u + ul + var + video + wbr + xmp + + + + + xsl: + + + diff --git a/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/ini-hl.xml b/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/ini-hl.xml new file mode 100644 index 000000000..34c103637 --- /dev/null +++ b/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/ini-hl.xml @@ -0,0 +1,45 @@ + + + + ; + + + ^(\[.+\]\s*)$ + + MULTILINE + + + + ^(.+)(?==) + + MULTILINE + + diff --git a/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/java-hl.xml b/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/java-hl.xml new file mode 100644 index 000000000..f7bb16414 --- /dev/null +++ b/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/java-hl.xml @@ -0,0 +1,117 @@ + + + + + /** + */ + + + + /* + */ + + // + + " + \ + + + ' + \ + + + @ + ( + ) + + + 0x + + + + . + e + f + d + l + + + + abstract + boolean + break + byte + case + catch + char + class + const + continue + default + do + double + else + extends + final + finally + float + for + goto + if + implements + import + instanceof + int + interface + long + native + new + package + private + protected + public + return + short + static + strictfp + super + switch + synchronized + this + throw + throws + transient + try + void + volatile + while + + diff --git a/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/javascript-hl.xml b/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/javascript-hl.xml new file mode 100644 index 000000000..99b8a71e9 --- /dev/null +++ b/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/javascript-hl.xml @@ -0,0 +1,147 @@ + + + + + /* + */ + + // + + " + \ + + + ' + \ + + + 0x + + + + . + e + + + + break + case + catch + continue + default + delete + do + else + finally + for + function + if + in + instanceof + new + return + switch + this + throw + try + typeof + var + void + while + with + + abstract + boolean + byte + char + class + const + debugger + double + enum + export + extends + final + float + goto + implements + import + int + interface + long + native + package + private + protected + public + short + static + super + synchronized + throws + transient + volatile + + + prototype + + Array + Boolean + Date + Error + EvalError + Function + Math + Number + Object + RangeError + ReferenceError + RegExp + String + SyntaxError + TypeError + URIError + + decodeURI + decodeURIComponent + encodeURI + encodeURIComponent + eval + isFinite + isNaN + parseFloat + parseInt + + Infinity + NaN + undefined + + diff --git a/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/json-hl.xml b/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/json-hl.xml new file mode 100644 index 000000000..59b9c4811 --- /dev/null +++ b/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/json-hl.xml @@ -0,0 +1,37 @@ + + + # + + " + \ + + + ' + \ + + + @ + ( + ) + + + . + e + f + d + l + + + + true + false + + + { + } + , + [ + ] + + + diff --git a/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/perl-hl.xml b/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/perl-hl.xml new file mode 100644 index 000000000..73d71cc02 --- /dev/null +++ b/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/perl-hl.xml @@ -0,0 +1,120 @@ + + + + # + + << + ' + " + + + + " + \ + + + ' + \ + + + + 0x + + + + . + + + + + if + unless + while + until + foreach + else + elsif + for + when + default + given + + caller + continue + die + do + dump + eval + exit + goto + last + next + redo + return + sub + wantarray + + caller + import + local + my + package + use + + do + import + no + package + require + use + + bless + dbmclose + dbmopen + package + ref + tie + tied + untie + use + + and + or + not + eq + ne + lt + gt + le + ge + cmp + + diff --git a/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/php-hl.xml b/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/php-hl.xml new file mode 100644 index 000000000..1da25b8cc --- /dev/null +++ b/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/php-hl.xml @@ -0,0 +1,154 @@ + + + + + /** + */ + + + + + + + + /* + */ + + // + # + + " + \ + + + + ' + \ + + + + <<< + + + 0x + + + + . + e + + + + and + or + xor + __FILE__ + exception + __LINE__ + array + as + break + case + class + const + continue + declare + default + die + do + echo + else + elseif + empty + enddeclare + endfor + endforeach + endif + endswitch + endwhile + eval + exit + extends + for + foreach + function + global + if + include + include_once + isset + list + new + print + require + require_once + return + static + switch + unset + use + var + while + __FUNCTION__ + __CLASS__ + __METHOD__ + final + php_user_filter + interface + implements + extends + public + private + protected + abstract + clone + try + catch + throw + cfunction + old_function + true + false + + namespace + __NAMESPACE__ + goto + __DIR__ + + + + + ?> + <?php + <?= + + + diff --git a/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/properties-hl.xml b/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/properties-hl.xml new file mode 100644 index 000000000..775f2f13e --- /dev/null +++ b/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/properties-hl.xml @@ -0,0 +1,38 @@ + + + + # + + ^(.+?)(?==|:) + + MULTILINE + + diff --git a/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/python-hl.xml b/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/python-hl.xml new file mode 100644 index 000000000..a46744323 --- /dev/null +++ b/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/python-hl.xml @@ -0,0 +1,100 @@ + + + + + + @ + ( + ) + + # + + """ + + + + ''' + + + + " + \ + + + ' + \ + + + 0x + l + + + + . + + e + l + + + + and + del + from + not + while + as + elif + global + or + with + assert + else + if + pass + yield + break + except + import + print + class + exec + in + raise + continue + finally + is + return + def + for + lambda + try + + diff --git a/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/ruby-hl.xml b/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/ruby-hl.xml new file mode 100644 index 000000000..d105640e8 --- /dev/null +++ b/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/ruby-hl.xml @@ -0,0 +1,109 @@ + + + + # + + << + + + + " + \ + + + %Q{ + } + \ + + + %/ + / + \ + + + ' + \ + + + %q{ + } + \ + + + 0x + + + + . + e + + + + alias + and + BEGIN + begin + break + case + class + def + defined + do + else + elsif + END + end + ensure + false + for + if + in + module + next + nil + not + or + redo + rescue + retry + return + self + super + then + true + undef + unless + until + when + while + yield + + diff --git a/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/sql2003-hl.xml b/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/sql2003-hl.xml new file mode 100644 index 000000000..ac1d5d048 --- /dev/null +++ b/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/sql2003-hl.xml @@ -0,0 +1,565 @@ + + + + -- + + /* + */ + + + ' + + + + U' + ' + + + + B' + ' + + + + N' + ' + + + + X' + ' + + + + . + + e + + + + + + A + ABS + ABSOLUTE + ACTION + ADA + ADMIN + AFTER + ALWAYS + ASC + ASSERTION + ASSIGNMENT + ATTRIBUTE + ATTRIBUTES + AVG + BEFORE + BERNOULLI + BREADTH + C + CARDINALITY + CASCADE + CATALOG_NAME + CATALOG + CEIL + CEILING + CHAIN + CHAR_LENGTH + CHARACTER_LENGTH + CHARACTER_SET_CATALOG + CHARACTER_SET_NAME + CHARACTER_SET_SCHEMA + CHARACTERISTICS + CHARACTERS + CHECKED + CLASS_ORIGIN + COALESCE + COBOL + CODE_UNITS + COLLATION_CATALOG + COLLATION_NAME + COLLATION_SCHEMA + COLLATION + COLLECT + COLUMN_NAME + COMMAND_FUNCTION_CODE + COMMAND_FUNCTION + COMMITTED + CONDITION_NUMBER + CONDITION + CONNECTION_NAME + CONSTRAINT_CATALOG + CONSTRAINT_NAME + CONSTRAINT_SCHEMA + CONSTRAINTS + CONSTRUCTORS + CONTAINS + CONVERT + CORR + COUNT + COVAR_POP + COVAR_SAMP + CUME_DIST + CURRENT_COLLATION + CURSOR_NAME + DATA + DATETIME_INTERVAL_CODE + DATETIME_INTERVAL_PRECISION + DEFAULTS + DEFERRABLE + DEFERRED + DEFINED + DEFINER + DEGREE + DENSE_RANK + DEPTH + DERIVED + DESC + DESCRIPTOR + DIAGNOSTICS + DISPATCH + DOMAIN + DYNAMIC_FUNCTION_CODE + DYNAMIC_FUNCTION + EQUALS + EVERY + EXCEPTION + EXCLUDE + EXCLUDING + EXP + EXTRACT + FINAL + FIRST + FLOOR + FOLLOWING + FORTRAN + FOUND + FUSION + G + GENERAL + GO + GOTO + GRANTED + HIERARCHY + IMPLEMENTATION + INCLUDING + INCREMENT + INITIALLY + INSTANCE + INSTANTIABLE + INTERSECTION + INVOKER + ISOLATION + K + KEY_MEMBER + KEY_TYPE + KEY + LAST + LENGTH + LEVEL + LN + LOCATOR + LOWER + M + MAP + MATCHED + MAX + MAXVALUE + MESSAGE_LENGTH + MESSAGE_OCTET_LENGTH + MESSAGE_TEXT + MIN + MINVALUE + MOD + MORE + MUMPS + NAME + NAMES + NESTING + NEXT + NORMALIZE + NORMALIZED + NULLABLE + NULLIF + NULLS + NUMBER + OBJECT + OCTET_LENGTH + OCTETS + OPTION + OPTIONS + ORDERING + ORDINALITY + OTHERS + OVERLAY + OVERRIDING + PAD + PARAMETER_MODE + PARAMETER_NAME + PARAMETER_ORDINAL_POSITION + PARAMETER_SPECIFIC_CATALOG + PARAMETER_SPECIFIC_NAME + PARAMETER_SPECIFIC_SCHEMA + PARTIAL + PASCAL + PATH + PERCENT_RANK + PERCENTILE_CONT + PERCENTILE_DISC + PLACING + PLI + POSITION + POWER + PRECEDING + PRESERVE + PRIOR + PRIVILEGES + PUBLIC + RANK + READ + RELATIVE + REPEATABLE + RESTART + RETURNED_CARDINALITY + RETURNED_LENGTH + RETURNED_OCTET_LENGTH + RETURNED_SQLSTATE + ROLE + ROUTINE_CATALOG + ROUTINE_NAME + ROUTINE_SCHEMA + ROUTINE + ROW_COUNT + ROW_NUMBER + SCALE + SCHEMA_NAME + SCHEMA + SCOPE_CATALOG + SCOPE_NAME + SCOPE_SCHEMA + SECTION + SECURITY + SELF + SEQUENCE + SERIALIZABLE + SERVER_NAME + SESSION + SETS + SIMPLE + SIZE + SOURCE + SPACE + SPECIFIC_NAME + SQRT + STATE + STATEMENT + STDDEV_POP + STDDEV_SAMP + STRUCTURE + STYLE + SUBCLASS_ORIGIN + SUBSTRING + SUM + TABLE_NAME + TABLESAMPLE + TEMPORARY + TIES + TOP_LEVEL_COUNT + TRANSACTION_ACTIVE + TRANSACTION + TRANSACTIONS_COMMITTED + TRANSACTIONS_ROLLED_BACK + TRANSFORM + TRANSFORMS + TRANSLATE + TRIGGER_CATALOG + TRIGGER_NAME + TRIGGER_SCHEMA + TRIM + TYPE + UNBOUNDED + UNCOMMITTED + UNDER + UNNAMED + USAGE + USER_DEFINED_TYPE_CATALOG + USER_DEFINED_TYPE_CODE + USER_DEFINED_TYPE_NAME + USER_DEFINED_TYPE_SCHEMA + VIEW + WORK + WRITE + ZONE + + ADD + ALL + ALLOCATE + ALTER + AND + ANY + ARE + ARRAY + AS + ASENSITIVE + ASYMMETRIC + AT + ATOMIC + AUTHORIZATION + BEGIN + BETWEEN + BIGINT + BINARY + BLOB + BOOLEAN + BOTH + BY + CALL + CALLED + CASCADED + CASE + CAST + CHAR + CHARACTER + CHECK + CLOB + CLOSE + COLLATE + COLUMN + COMMIT + CONNECT + CONSTRAINT + CONTINUE + CORRESPONDING + CREATE + CROSS + CUBE + CURRENT_DATE + CURRENT_DEFAULT_TRANSFORM_GROUP + CURRENT_PATH + CURRENT_ROLE + CURRENT_TIME + CURRENT_TIMESTAMP + CURRENT_TRANSFORM_GROUP_FOR_TYPE + CURRENT_USER + CURRENT + CURSOR + CYCLE + DATE + DAY + DEALLOCATE + DEC + DECIMAL + DECLARE + DEFAULT + DELETE + DEREF + DESCRIBE + DETERMINISTIC + DISCONNECT + DISTINCT + DOUBLE + DROP + DYNAMIC + EACH + ELEMENT + ELSE + END + END-EXEC + ESCAPE + EXCEPT + EXEC + EXECUTE + EXISTS + EXTERNAL + FALSE + FETCH + FILTER + FLOAT + FOR + FOREIGN + FREE + FROM + FULL + FUNCTION + GET + GLOBAL + GRANT + GROUP + GROUPING + HAVING + HOLD + HOUR + IDENTITY + IMMEDIATE + IN + INDICATOR + INNER + INOUT + INPUT + INSENSITIVE + INSERT + INT + INTEGER + INTERSECT + INTERVAL + INTO + IS + ISOLATION + JOIN + LANGUAGE + LARGE + LATERAL + LEADING + LEFT + LIKE + LOCAL + LOCALTIME + LOCALTIMESTAMP + MATCH + MEMBER + MERGE + METHOD + MINUTE + MODIFIES + MODULE + MONTH + MULTISET + NATIONAL + NATURAL + NCHAR + NCLOB + NEW + NO + NONE + NOT + NULL + NUMERIC + OF + OLD + ON + ONLY + OPEN + OR + ORDER + OUT + OUTER + OUTPUT + OVER + OVERLAPS + PARAMETER + PARTITION + PRECISION + PREPARE + PRIMARY + PROCEDURE + RANGE + READS + REAL + RECURSIVE + REF + REFERENCES + REFERENCING + REGR_AVGX + REGR_AVGY + REGR_COUNT + REGR_INTERCEPT + REGR_R2 + REGR_SLOPE + REGR_SXX + REGR_SXY + REGR_SYY + RELEASE + RESULT + RETURN + RETURNS + REVOKE + RIGHT + ROLLBACK + ROLLUP + ROW + ROWS + SAVEPOINT + SCROLL + SEARCH + SECOND + SELECT + SENSITIVE + SESSION_USER + SET + SIMILAR + SMALLINT + SOME + SPECIFIC + SPECIFICTYPE + SQL + SQLEXCEPTION + SQLSTATE + SQLWARNING + START + STATIC + SUBMULTISET + SYMMETRIC + SYSTEM_USER + SYSTEM + TABLE + THEN + TIME + TIMESTAMP + TIMEZONE_HOUR + TIMEZONE_MINUTE + TO + TRAILING + TRANSLATION + TREAT + TRIGGER + TRUE + UESCAPE + UNION + UNIQUE + UNKNOWN + UNNEST + UPDATE + UPPER + USER + USING + VALUE + VALUES + VAR_POP + VAR_SAMP + VARCHAR + VARYING + WHEN + WHENEVER + WHERE + WIDTH_BUCKET + WINDOW + WITH + WITHIN + WITHOUT + YEAR + + diff --git a/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/yaml-hl.xml b/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/yaml-hl.xml new file mode 100644 index 000000000..a28008ec8 --- /dev/null +++ b/spring-cloud-stream-docs/src/main/docbook/xsl/xslthl/yaml-hl.xml @@ -0,0 +1,47 @@ + + + # + + " + \ + + + ' + \ + + + @ + ( + ) + + + . + e + f + d + l + + + + true + false + + + { + } + , + [ + ] + + + + ^(---)$ + + MULTILINE + + + ^(.+?)(?==|:) + + MULTILINE + + diff --git a/spring-cloud-stream-docs/src/main/javadoc/spring-javadoc.css b/spring-cloud-stream-docs/src/main/javadoc/spring-javadoc.css new file mode 100644 index 000000000..06ad42277 --- /dev/null +++ b/spring-cloud-stream-docs/src/main/javadoc/spring-javadoc.css @@ -0,0 +1,599 @@ +/* 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; +} + diff --git a/spring-cloud-stream-docs/src/main/xslt/dependencyVersions.xsl b/spring-cloud-stream-docs/src/main/xslt/dependencyVersions.xsl new file mode 100644 index 000000000..1dabd2ea3 --- /dev/null +++ b/spring-cloud-stream-docs/src/main/xslt/dependencyVersions.xsl @@ -0,0 +1,28 @@ + + + + + + + |=== + | Group ID | Artifact ID | Version + + + + + | ` + + ` + | ` + + ` + | + + + + |=== + + +