mirror of
https://github.com/spring-cloud/spring-cloud-build.git
synced 2026-09-17 21:09:00 +00:00
Compare commits
191
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ca3f430556 | ||
|
|
15c06dc1b3 | ||
|
|
ea356558fa | ||
|
|
a00d131824 | ||
|
|
47b9d802fb | ||
|
|
ba151bc2f4 | ||
|
|
d0617e7769 | ||
|
|
54ca8896f4 | ||
|
|
7cc037d7cc | ||
|
|
cef2a68ae1 | ||
|
|
b9e5eb8bd2 | ||
|
|
53a08a58ee | ||
|
|
384013e395 | ||
|
|
2c70866ae7 | ||
|
|
93716b3d31 | ||
|
|
8c93d9c597 | ||
|
|
1b50fb3d96 | ||
|
|
4bac0474d9 | ||
|
|
1506765f75 | ||
|
|
6d5d80ae45 | ||
|
|
80b1c9a661 | ||
|
|
09bc053a02 | ||
|
|
2631bd9e4f | ||
|
|
c2ef62de73 | ||
|
|
a247cbcfae | ||
|
|
c08320254e | ||
|
|
e296686584 | ||
|
|
53fd3a14c8 | ||
|
|
d4a54620b8 | ||
|
|
1836d36388 | ||
|
|
fc23298240 | ||
|
|
bd215fab95 | ||
|
|
2491889a42 | ||
|
|
b6a814b6cf | ||
|
|
d4fefdcd77 | ||
|
|
9fc5902087 | ||
|
|
44f2689dc3 | ||
|
|
e96132ecf2 | ||
|
|
881c967d3c | ||
|
|
fb2e92be6b | ||
|
|
9bdff877fd | ||
|
|
0911190f3f | ||
|
|
d11a135437 | ||
|
|
d30799cf5c | ||
|
|
e84caac578 | ||
|
|
76f15c1cd9 | ||
|
|
27553b9dd9 | ||
|
|
fe89ee7de0 | ||
|
|
2821e3222c | ||
|
|
bb2126974f | ||
|
|
c7ebf03a2a | ||
|
|
d673bca4da | ||
|
|
76873a53ab | ||
|
|
bfa24ff981 | ||
|
|
ea85edf36a | ||
|
|
a6633729c6 | ||
|
|
680f28b193 | ||
|
|
82cecb77d3 | ||
|
|
46c9d176a0 | ||
|
|
eee1278025 | ||
|
|
be6c1eae80 | ||
|
|
def18bdd4e | ||
|
|
288abb47b5 | ||
|
|
dae472a17d | ||
|
|
fb42a2cf89 | ||
|
|
efcd0f89f1 | ||
|
|
a33e77df15 | ||
|
|
2257f255d6 | ||
|
|
e8482b1134 | ||
|
|
2f67da3078 | ||
|
|
9295fc30ef | ||
|
|
880cf63c2c | ||
|
|
417d78533a | ||
|
|
2e5868c5bd | ||
|
|
5e53b18ddf | ||
|
|
06bad4e6af | ||
|
|
048656e13a | ||
|
|
7c82700143 | ||
|
|
c6e0bc7a26 | ||
|
|
a8313feea7 | ||
|
|
2caeaee319 | ||
|
|
a579b7fb03 | ||
|
|
19044131d0 | ||
|
|
a29ba7bc95 | ||
|
|
0953f45189 | ||
|
|
e082a147a1 | ||
|
|
c35c8b5742 | ||
|
|
e5d3206eab | ||
|
|
ce0e50c1d9 | ||
|
|
e2d73c63ad | ||
|
|
03175d3e66 | ||
|
|
ac156c7c80 | ||
|
|
5e5d2b67ac | ||
|
|
6c98d80678 | ||
|
|
9728af1d93 | ||
|
|
2cd4391e49 | ||
|
|
bb26542fc9 | ||
|
|
70f7d413f3 | ||
|
|
94efa8767a | ||
|
|
06f8a97e59 | ||
|
|
51c41e52f6 | ||
|
|
b1a8036d3f | ||
|
|
a5be66e84f | ||
|
|
941bba5970 | ||
|
|
1235c2153a | ||
|
|
3312992760 | ||
|
|
717978e9eb | ||
|
|
af4bc6f95c | ||
|
|
1afb77ea41 | ||
|
|
33b42d3a4b | ||
|
|
079317a3fe | ||
|
|
5d8b1fa812 | ||
|
|
c6a0a473ec | ||
|
|
b167397c23 | ||
|
|
b02a62f33d | ||
|
|
d810f71a84 | ||
|
|
cc07cbcde5 | ||
|
|
9d88a2c0de | ||
|
|
8a3f69227e | ||
|
|
db5c07d175 | ||
|
|
c0b4f01f4e | ||
|
|
2e19f63b25 | ||
|
|
fc96d209c7 | ||
|
|
c780d61513 | ||
|
|
b1bfba6477 | ||
|
|
a8f202ab85 | ||
|
|
637a075b76 | ||
|
|
758e7241a2 | ||
|
|
377f8ab000 | ||
|
|
c71f50931b | ||
|
|
200efcb348 | ||
|
|
ed42b3a69a | ||
|
|
2a7cf5d7be | ||
|
|
3a6c453d61 | ||
|
|
098dba54c2 | ||
|
|
9d8a2e134e | ||
|
|
2a3797bdaa | ||
|
|
92c70e3253 | ||
|
|
6ece1d5969 | ||
|
|
f01646cffd | ||
|
|
ac503a0448 | ||
|
|
46a0f7cd0c | ||
|
|
bf7db5e2dd | ||
|
|
7d473e0ba2 | ||
|
|
c011c51240 | ||
|
|
3f62e003c0 | ||
|
|
6ed8684df3 | ||
|
|
1b2b6bfb2c | ||
|
|
dcf98e5632 | ||
|
|
4faff54278 | ||
|
|
1a67bf0b89 | ||
|
|
f2f55d458f | ||
|
|
dfff168439 | ||
|
|
643ca5161e | ||
|
|
083caea6b2 | ||
|
|
1d35ef3be7 | ||
|
|
f9aad5f2f5 | ||
|
|
efdb76462e | ||
|
|
39c493473b | ||
|
|
f7f7f81534 | ||
|
|
941340a588 | ||
|
|
1e7306187b | ||
|
|
3c6e1cfaa6 | ||
|
|
929f134f7f | ||
|
|
4fcaad3875 | ||
|
|
5c21bf991e | ||
|
|
620f5a4ade | ||
|
|
12ac72d4b3 | ||
|
|
adfcaa2525 | ||
|
|
6a8cc81e0a | ||
|
|
18da776da9 | ||
|
|
02d30876cf | ||
|
|
7013634e77 | ||
|
|
8c47c5fcf7 | ||
|
|
531b596883 | ||
|
|
0014bcb71f | ||
|
|
d16c66f632 | ||
|
|
dc6a2070e3 | ||
|
|
5a691a5ede | ||
|
|
5512e6e613 | ||
|
|
2cd5817a32 | ||
|
|
62ce24f573 | ||
|
|
f0d77c65cb | ||
|
|
93e0430a0c | ||
|
|
2c7d425bed | ||
|
|
40a436a9a7 | ||
|
|
323b5f2678 | ||
|
|
8d5da126d3 | ||
|
|
af8ca0befb | ||
|
|
6f6d6aa856 | ||
|
|
0b737621f0 |
@@ -1,40 +0,0 @@
|
||||
version: 2
|
||||
jobs:
|
||||
build:
|
||||
docker:
|
||||
- image: springcloud/pipeline-base
|
||||
user: appuser
|
||||
environment:
|
||||
_JAVA_OPTIONS: "-Xms1024m -Xmx2048m"
|
||||
TERM: dumb
|
||||
branches:
|
||||
ignore:
|
||||
- gh-pages # list of branches to ignore
|
||||
resource_class: large
|
||||
steps:
|
||||
- checkout
|
||||
- restore_cache:
|
||||
key: sc-build-{{ .Branch }}
|
||||
- run:
|
||||
name: "Download dependencies"
|
||||
command: ./mvnw -s .settings.xml -U --fail-never dependency:go-offline || true
|
||||
- save_cache:
|
||||
key: sc-build-{{ .Branch }}
|
||||
paths:
|
||||
- ~/.m2
|
||||
- run:
|
||||
name: "Running build"
|
||||
command: ./mvnw -s .settings.xml clean org.jacoco:jacoco-maven-plugin:prepare-agent install -U -P sonar -nsu --batch-mode -Dmaven.test.redirectTestOutputToFile=true -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
|
||||
- run:
|
||||
name: "Aggregate test results"
|
||||
when: always
|
||||
command: |
|
||||
mkdir -p ~/junit/
|
||||
find . -type f -regex ".*/target/.*-reports/.*" -exec cp {} ~/junit/ \;
|
||||
bash <(curl -s https://codecov.io/bash)
|
||||
- store_artifacts:
|
||||
path: ~/junit/
|
||||
destination: artifacts
|
||||
- store_test_results:
|
||||
path: ~/junit/
|
||||
destination: testartifacts
|
||||
@@ -0,0 +1,17 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Describe the bug**
|
||||
Please provide details of the problem, including the version of Spring Cloud that you
|
||||
are using.
|
||||
|
||||
**Sample**
|
||||
If possible, please provide a test case or sample application that reproduces
|
||||
the problem. This makes it much easier for us to diagnose the problem and to verify that
|
||||
we have fixed it.
|
||||
@@ -0,0 +1,20 @@
|
||||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea for this project
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Is your feature request related to a problem? Please describe.**
|
||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||
|
||||
**Describe the solution you'd like**
|
||||
A clear and concise description of what you want to happen.
|
||||
|
||||
**Describe alternatives you've considered**
|
||||
A clear and concise description of any alternative solutions or features you've considered.
|
||||
|
||||
**Additional context**
|
||||
Add any other context or screenshots about the feature request here.
|
||||
@@ -0,0 +1,35 @@
|
||||
# This workflow will build a Java project with Maven
|
||||
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
|
||||
|
||||
name: Build
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ 2.3.x ]
|
||||
pull_request:
|
||||
branches: [ 2.3.x ]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
java: ["8", "11", "16"]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Set up JDK 1.8
|
||||
uses: actions/setup-java@v1
|
||||
with:
|
||||
java-version: 1.8
|
||||
- name: Cache local Maven repository
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ~/.m2/repository
|
||||
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-maven-
|
||||
- name: Build with Maven
|
||||
run: ./mvnw clean install -B -U
|
||||
@@ -19,3 +19,4 @@ _site/
|
||||
.vscode/
|
||||
.flattened-pom.xml
|
||||
.DS_Store
|
||||
.sdkmanrc
|
||||
|
||||
+97
-63
@@ -4,7 +4,8 @@ Manual changes to this file will be lost when it is generated again.
|
||||
Edit the files in the src/main/asciidoc/ directory instead.
|
||||
////
|
||||
|
||||
image:https://circleci.com/gh/spring-cloud/spring-cloud-build.svg?style=svg[link="https://travis-ci.org/spring-cloud/spring-cloud-build"]
|
||||
|
||||
image::https://github.com/spring-cloud/spring-cloud-build/workflows/Build/badge.svg?branch=main&style=svg["Build",link="https://github.com/spring-cloud/spring-cloud-build/actions"]
|
||||
|
||||
Spring Cloud Build is a common utility project for Spring Cloud
|
||||
to use for plugin and dependency management.
|
||||
@@ -220,12 +221,30 @@ image::https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/{spring
|
||||
|
||||
Go to `File` -> `Settings` -> `Other settings` -> `Checkstyle`. There click on the `+` icon in the `Configuration file` section. There, you'll have to define where the checkstyle rules should be picked from. In the image above, we've picked the rules from the cloned Spring Cloud Build repository. However, you can point to the Spring Cloud Build's GitHub repository (e.g. for the `checkstyle.xml` : `https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-build-tools/src/main/resources/checkstyle.xml`). We need to provide the following variables:
|
||||
|
||||
- `checkstyle.header.file` - please point it to the Spring Cloud Build's, `spring-cloud-build-tools/src/main/resources/checkstyle/checkstyle-header.txt` file either in your cloned repo or via the `https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-build-tools/src/main/resources/checkstyle-header.txt` URL.
|
||||
- `checkstyle.header.file` - please point it to the Spring Cloud Build's, `spring-cloud-build-tools/src/main/resources/checkstyle-header.txt` file either in your cloned repo or via the `https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-build-tools/src/main/resources/checkstyle-header.txt` URL.
|
||||
- `checkstyle.suppressions.file` - default suppressions. Please point it to the Spring Cloud Build's, `spring-cloud-build-tools/src/checkstyle/checkstyle-suppressions.xml` file either in your cloned repo or via the `https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-build-tools/src/checkstyle/checkstyle-suppressions.xml` URL.
|
||||
- `checkstyle.additional.suppressions.file` - this variable corresponds to suppressions in your local project. E.g. you're working on `spring-cloud-contract`. Then point to the `project-root/src/checkstyle/checkstyle-suppressions.xml` folder. Example for `spring-cloud-contract` would be: `/home/username/spring-cloud-contract/src/checkstyle/checkstyle-suppressions.xml`.
|
||||
|
||||
IMPORTANT: Remember to set the `Scan Scope` to `All sources` since we apply checkstyle rules for production and test sources.
|
||||
|
||||
== Flattening the POMs
|
||||
|
||||
To avoid propagating build setup that is required to build a Spring Cloud project, we're using the maven flatten plugin. It has the advantage of letting you use whatever features you need while publishing "clean" pom to the repository.
|
||||
|
||||
In order to add it, add the `org.codehaus.mojo:flatten-maven-plugin` to your `pom.xml`.
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>flatten-maven-plugin</artifactId>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
----
|
||||
|
||||
== Reusing the documentation
|
||||
|
||||
Spring Cloud Build publishes its `spring-cloud-build-docs` module that contains
|
||||
@@ -236,79 +255,94 @@ approach of generating documentation just add these plugins to your `docs` modul
|
||||
[source,xml]
|
||||
----
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>docs</id>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>pl.project13.maven</groupId>
|
||||
<artifactId>git-commit-id-plugin</artifactId> <1>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-dependency-plugin</artifactId> <2>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-resources-plugin</artifactId> <3>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.asciidoctor</groupId>
|
||||
<artifactId>asciidoctor-maven-plugin</artifactId> <4>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-antrun-plugin</artifactId> <5>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
</profiles>
|
||||
<profile>
|
||||
<id>docs</id>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>pl.project13.maven</groupId>
|
||||
<artifactId>git-commit-id-plugin</artifactId> <1>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-dependency-plugin</artifactId> <2>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-resources-plugin</artifactId> <3>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>exec-maven-plugin</artifactId> <4>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.asciidoctor</groupId>
|
||||
<artifactId>asciidoctor-maven-plugin</artifactId> <5>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-antrun-plugin</artifactId> <6>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
</profiles>
|
||||
----
|
||||
<2> This plugin downloads sets up all the git information of the project
|
||||
<2> This plugin downloads the resources of the `spring-cloud-build-docs` module
|
||||
<3> This plugin unpacks the resources of the `spring-cloud-build-docs` module
|
||||
<4> This plugin is required to parse the Asciidoctor documentation
|
||||
<5> This plugin is required to copy resources into proper final destinations and to generate main README.adoc and to assert that no files use unresolved links
|
||||
<4> This plugin generates an `adoc` file with all the configuration properties from the classpath
|
||||
<5> This plugin is required to parse the Asciidoctor documentation
|
||||
<6> This plugin is required to copy resources into proper final destinations and to generate main README.adoc and to assert that no files use unresolved links
|
||||
|
||||
IMPORTANT: The order of plugin declaration is important!
|
||||
|
||||
In order for the build to generate the `adoc` file with all your configuration properties, your `docs` module should contain all the dependencies on the classpath, that you would want to scan for configuration properties. The file will be output to `${docsModule}/src/main/asciidoc/_configprops.adoc` file (configurable via the `configprops.path` property).
|
||||
|
||||
If you want to modify which of the configuration properties are put in the table, you can tweak the `configprops.inclusionPattern` pattern to include only a subset of the properties (e.g. `<configprops.inclusionPattern>spring.sleuth.*</configprops.inclusionPattern>`).
|
||||
|
||||
Spring Cloud Build Docs comes with a set of attributes for asciidoctor that you can reuse.
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<attributes>
|
||||
<docinfo>shared</docinfo>
|
||||
<allow-uri-read>true</allow-uri-read>
|
||||
<nofooter/>
|
||||
<toc>left</toc>
|
||||
<toc-levels>4</toc-levels>
|
||||
<sectlinks>true</sectlinks>
|
||||
<sources-root>${project.basedir}/src</sources-root>
|
||||
<asciidoc-sources-root>${project.basedir}/src/main/asciidoc</asciidoc-sources-root>
|
||||
<generated-resources-root>${project.basedir}/target/generated-resources
|
||||
</generated-resources-root>
|
||||
<!-- Use this attribute the reference code from another module -->
|
||||
<project-root>${maven.multiModuleProjectDirectory}</project-root>
|
||||
<!-- It's mandatory for you to pass the docs.main property -->
|
||||
<github-repo>${docs.main}</github-repo>
|
||||
<github-raw>https://raw.githubusercontent.com/spring-cloud/${docs.main}/${github-tag}</github-raw>
|
||||
<github-code>https://github.com/spring-cloud/${docs.main}/tree/${github-tag}</github-code>
|
||||
<github-issues>https://github.com/spring-cloud/${docs.main}/issues/</github-issues>
|
||||
<github-wiki>https://github.com/spring-cloud/${docs.main}/wiki</github-wiki>
|
||||
<github-master-code>https://github.com/spring-cloud/${docs.main}/tree/master</github-master-code>
|
||||
<index-link>${index-link}</index-link>
|
||||
<docinfo>shared</docinfo>
|
||||
<allow-uri-read>true</allow-uri-read>
|
||||
<nofooter/>
|
||||
<toc>left</toc>
|
||||
<toc-levels>4</toc-levels>
|
||||
<sectlinks>true</sectlinks>
|
||||
<sources-root>${project.basedir}/src@</sources-root>
|
||||
<asciidoc-sources-root>${project.basedir}/src/main/asciidoc@</asciidoc-sources-root>
|
||||
<generated-resources-root>${project.basedir}/target/generated-resources@
|
||||
</generated-resources-root>
|
||||
<!-- Use this attribute the reference code from another module -->
|
||||
<!-- Note the @ at the end, lowering the precedence of the attribute -->
|
||||
<project-root>${maven.multiModuleProjectDirectory}@</project-root>
|
||||
<!-- It's mandatory for you to pass the docs.main property -->
|
||||
<github-repo>${docs.main}@</github-repo>
|
||||
<github-project>https://github.com/spring-cloud/${docs.main}@</github-project>
|
||||
<github-raw>
|
||||
https://raw.githubusercontent.com/spring-cloud/${docs.main}/${github-tag}@
|
||||
</github-raw>
|
||||
<github-code>https://github.com/spring-cloud/${docs.main}/tree/${github-tag}@
|
||||
</github-code>
|
||||
<github-issues>https://github.com/spring-cloud/${docs.main}/issues/@</github-issues>
|
||||
<github-wiki>https://github.com/spring-cloud/${docs.main}/wiki@</github-wiki>
|
||||
<github-master-code>https://github.com/spring-cloud/${docs.main}/tree/master@
|
||||
</github-master-code>
|
||||
<index-link>${index-link}@</index-link>
|
||||
|
||||
<!-- Spring Cloud specific -->
|
||||
<!-- for backward compatibility -->
|
||||
<spring-cloud-version>${project.version}</spring-cloud-version>
|
||||
<project-version>${project.version}</project-version>
|
||||
<github-tag>${github-tag}</github-tag>
|
||||
<version-type>${version-type}</version-type>
|
||||
<docs-url>${docs-url}</docs-url>
|
||||
<raw-docs-url>${raw-docs-url}</raw-docs-url>
|
||||
<project-version>${project.version}</project-version>
|
||||
<project-name>${docs.main}</project-name>
|
||||
<!-- Spring Cloud specific -->
|
||||
<!-- for backward compatibility -->
|
||||
<spring-cloud-version>${project.version}@</spring-cloud-version>
|
||||
<project-version>${project.version}@</project-version>
|
||||
<github-tag>${github-tag}@</github-tag>
|
||||
<version-type>${version-type}@</version-type>
|
||||
<docs-url>https://docs.spring.io/${docs.main}/docs/${project.version}@</docs-url>
|
||||
<raw-docs-url>${github-raw}@</raw-docs-url>
|
||||
<project-version>${project.version}@</project-version>
|
||||
<project-name>${docs.main}@</project-name>
|
||||
</attributes>
|
||||
----
|
||||
|
||||
@@ -341,4 +375,4 @@ what will happen is that for GA project versions, we will clone `gs-guide1`, `gs
|
||||
|
||||
You can skip this by either not adding the `guides` profile, or passing the `-DskipGuides` system property when the profile is turned on.
|
||||
|
||||
You can configure the project version passed to guides via the `guides-project.version` (defaults to `${project.version}`). The phase at which guides get updated can be configured by `guides-update.phase` (defaults to `deploy`).
|
||||
You can configure the project version passed to guides via the `guides-project.version` (defaults to `${project.version}`). The phase at which guides get updated can be configured by `guides-update.phase` (defaults to `deploy`).
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# Security Policy
|
||||
|
||||
## Reporting a Vulnerability
|
||||
|
||||
To report security vulnerabilities, please go to https://pivotal.io/security.
|
||||
@@ -0,0 +1,4 @@
|
||||
releaser:
|
||||
maven:
|
||||
buildCommand: ./scripts/build.sh {{systemProps}}
|
||||
# deployCommand: echo "skip deploy"
|
||||
+70
-32
@@ -10,21 +10,79 @@
|
||||
<parent>
|
||||
<groupId>org.springframework.cloud</groupId>
|
||||
<artifactId>spring-cloud-build</artifactId>
|
||||
<version>2.2.0.M4</version>
|
||||
<version>2.3.5.RELEASE</version>
|
||||
</parent>
|
||||
<properties>
|
||||
<docs.main>spring-cloud-build</docs.main>
|
||||
<!-- Comma separated list of whitelisted branches -->
|
||||
<docs.whitelisted.branches>1.2.x,1.3.x,2.0.x,2.1.x</docs.whitelisted.branches>
|
||||
<main.basedir>${basedir}/..</main.basedir>
|
||||
<!-- We don't want to downloaded sources of our own project-->
|
||||
<maven-dependency-plugin-for-docs.phase>none</maven-dependency-plugin-for-docs.phase>
|
||||
<maven-dependency-plugin-for-docs-classes.phase>none</maven-dependency-plugin-for-docs-classes.phase>
|
||||
<docs.resources.dir>${project.basedir}/src/main/</docs.resources.dir>
|
||||
<upload-docs-zip.phase>deploy</upload-docs-zip.phase>
|
||||
<!-- We don't want to reference plugin classpath of ourselves -->
|
||||
<readme.class.path>maven.compile.classpath</readme.class.path>
|
||||
</properties>
|
||||
<dependencies>
|
||||
<!-- Script -->
|
||||
<dependency>
|
||||
<groupId>commons-logging</groupId>
|
||||
<artifactId>commons-logging</artifactId>
|
||||
<version>1.2</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-core</artifactId>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-databind</artifactId>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<!-- Asciidoctor -->
|
||||
<dependency>
|
||||
<groupId>org.asciidoctor</groupId>
|
||||
<artifactId>asciidoctorj</artifactId>
|
||||
<version>${asciidoctorj.version}</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-test</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<build>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src/main</directory>
|
||||
<excludes>
|
||||
<exclude>java/**/*.*</exclude>
|
||||
</excludes>
|
||||
</resource>
|
||||
</resources>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-assembly-plugin</artifactId>
|
||||
<version>3.3.0</version>
|
||||
<configuration>
|
||||
<descriptorRefs>
|
||||
<descriptorRef>jar-with-dependencies</descriptorRef>
|
||||
</descriptorRefs>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>make-assembly</id>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>single</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-deploy-plugin</artifactId>
|
||||
<version>2.8.2</version>
|
||||
@@ -48,6 +106,10 @@
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-resources-plugin</artifactId>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>exec-maven-plugin</artifactId>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.asciidoctor</groupId>
|
||||
<artifactId>asciidoctor-maven-plugin</artifactId>
|
||||
@@ -56,36 +118,12 @@
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-antrun-plugin</artifactId>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>unix</id>
|
||||
<activation>
|
||||
<os>
|
||||
<family>unix</family>
|
||||
<name>Linux</name>
|
||||
</os>
|
||||
</activation>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>exec-maven-plugin</artifactId>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>Run tests</id>
|
||||
<phase>test</phase>
|
||||
<goals>
|
||||
<goal>exec</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<skip>${skipTests}</skip>
|
||||
<!-- <skip>true</skip> -->
|
||||
<executable>${basedir}/src/test/bash/run-bats.sh</executable>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
<artifactId>maven-deploy-plugin</artifactId>
|
||||
<goals>
|
||||
<goal>deploy</goal>
|
||||
<goal>deploy-file</goal>
|
||||
</goals>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
META-INF/
|
||||
org/
|
||||
@@ -1,4 +1,4 @@
|
||||
image:https://circleci.com/gh/spring-cloud/spring-cloud-build.svg?style=svg[link="https://travis-ci.org/spring-cloud/spring-cloud-build"]
|
||||
image::https://github.com/spring-cloud/spring-cloud-build/workflows/Build/badge.svg?branch=main&style=svg["Build",link="https://github.com/spring-cloud/spring-cloud-build/actions"]
|
||||
|
||||
Spring Cloud Build is a common utility project for Spring Cloud
|
||||
to use for plugin and dependency management.
|
||||
@@ -42,6 +42,24 @@ $ mvn deploy -P central -DaltReleaseDeploymentRepository=sonatype-nexus-staging:
|
||||
|
||||
include::https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/docs/src/main/asciidoc/contributing.adoc[]
|
||||
|
||||
== Flattening the POMs
|
||||
|
||||
To avoid propagating build setup that is required to build a Spring Cloud project, we're using the maven flatten plugin. It has the advantage of letting you use whatever features you need while publishing "clean" pom to the repository.
|
||||
|
||||
In order to add it, add the `org.codehaus.mojo:flatten-maven-plugin` to your `pom.xml`.
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>flatten-maven-plugin</artifactId>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
----
|
||||
|
||||
== Reusing the documentation
|
||||
|
||||
Spring Cloud Build publishes its `spring-cloud-build-docs` module that contains
|
||||
@@ -68,13 +86,17 @@ approach of generating documentation just add these plugins to your `docs` modul
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-resources-plugin</artifactId> <3>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>exec-maven-plugin</artifactId> <4>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.asciidoctor</groupId>
|
||||
<artifactId>asciidoctor-maven-plugin</artifactId> <4>
|
||||
<artifactId>asciidoctor-maven-plugin</artifactId> <5>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-antrun-plugin</artifactId> <5>
|
||||
<artifactId>maven-antrun-plugin</artifactId> <6>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
@@ -84,11 +106,16 @@ approach of generating documentation just add these plugins to your `docs` modul
|
||||
<2> This plugin downloads sets up all the git information of the project
|
||||
<2> This plugin downloads the resources of the `spring-cloud-build-docs` module
|
||||
<3> This plugin unpacks the resources of the `spring-cloud-build-docs` module
|
||||
<4> This plugin is required to parse the Asciidoctor documentation
|
||||
<5> This plugin is required to copy resources into proper final destinations and to generate main README.adoc and to assert that no files use unresolved links
|
||||
<4> This plugin generates an `adoc` file with all the configuration properties from the classpath
|
||||
<5> This plugin is required to parse the Asciidoctor documentation
|
||||
<6> This plugin is required to copy resources into proper final destinations and to generate main README.adoc and to assert that no files use unresolved links
|
||||
|
||||
IMPORTANT: The order of plugin declaration is important!
|
||||
|
||||
In order for the build to generate the `adoc` file with all your configuration properties, your `docs` module should contain all the dependencies on the classpath, that you would want to scan for configuration properties. The file will be output to `${docsModule}/src/main/asciidoc/_configprops.adoc` file (configurable via the `configprops.path` property).
|
||||
|
||||
If you want to modify which of the configuration properties are put in the table, you can tweak the `configprops.inclusionPattern` pattern to include only a subset of the properties (e.g. `<configprops.inclusionPattern>spring.sleuth.*</configprops.inclusionPattern>`).
|
||||
|
||||
Spring Cloud Build Docs comes with a set of attributes for asciidoctor that you can reuse.
|
||||
|
||||
[source,xml]
|
||||
|
||||
@@ -58,6 +58,11 @@ https://eclipse.org[Eclipse] when working with the code. We use the
|
||||
https://eclipse.org/m2e/[m2eclipse] eclipse plugin for maven support. Other IDEs and tools
|
||||
should also work without issue as long as they use Maven 3.3.3 or better.
|
||||
|
||||
==== Activate the Spring Maven profile
|
||||
Spring Cloud projects require the 'spring' Maven profile to be activated to resolve
|
||||
the spring milestone and snapshot repositories. Use your preferred IDE to set this
|
||||
profile to be active, or you may experience build errors.
|
||||
|
||||
==== Importing into eclipse with m2eclipse
|
||||
We recommend the https://eclipse.org/m2e/[m2eclipse] eclipse plugin when working with
|
||||
eclipse. If you don't already have m2eclipse installed it is available from the "eclipse
|
||||
|
||||
@@ -1 +1 @@
|
||||
NOTE: Spring Cloud is released under the non-restrictive Apache 2.0 license. If you would like to contribute to this section of the documentation or if you find an error, please find the source code and issue trackers in the project at {docslink}[github].
|
||||
NOTE: Spring Cloud is released under the non-restrictive Apache 2.0 license. If you would like to contribute to this section of the documentation or if you find an error, please find the source code and issue trackers in the project at {github-project}[github].
|
||||
@@ -172,8 +172,8 @@ image::https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/{spring
|
||||
|
||||
Go to `File` -> `Settings` -> `Other settings` -> `Checkstyle`. There click on the `+` icon in the `Configuration file` section. There, you'll have to define where the checkstyle rules should be picked from. In the image above, we've picked the rules from the cloned Spring Cloud Build repository. However, you can point to the Spring Cloud Build's GitHub repository (e.g. for the `checkstyle.xml` : `https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-build-tools/src/main/resources/checkstyle.xml`). We need to provide the following variables:
|
||||
|
||||
- `checkstyle.header.file` - please point it to the Spring Cloud Build's, `spring-cloud-build-tools/src/main/resources/checkstyle/checkstyle-header.txt` file either in your cloned repo or via the `https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-build-tools/src/main/resources/checkstyle-header.txt` URL.
|
||||
- `checkstyle.header.file` - please point it to the Spring Cloud Build's, `spring-cloud-build-tools/src/main/resources/checkstyle-header.txt` file either in your cloned repo or via the `https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-build-tools/src/main/resources/checkstyle-header.txt` URL.
|
||||
- `checkstyle.suppressions.file` - default suppressions. Please point it to the Spring Cloud Build's, `spring-cloud-build-tools/src/checkstyle/checkstyle-suppressions.xml` file either in your cloned repo or via the `https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-build-tools/src/checkstyle/checkstyle-suppressions.xml` URL.
|
||||
- `checkstyle.additional.suppressions.file` - this variable corresponds to suppressions in your local project. E.g. you're working on `spring-cloud-contract`. Then point to the `project-root/src/checkstyle/checkstyle-suppressions.xml` folder. Example for `spring-cloud-contract` would be: `/home/username/spring-cloud-contract/src/checkstyle/checkstyle-suppressions.xml`.
|
||||
|
||||
IMPORTANT: Remember to set the `Scan Scope` to `All sources` since we apply checkstyle rules for production and test sources.
|
||||
IMPORTANT: Remember to set the `Scan Scope` to `All sources` since we apply checkstyle rules for production and test sources.
|
||||
|
||||
@@ -4,18 +4,20 @@
|
||||
|
||||
set -e
|
||||
|
||||
export GIT_BIN ROOT_FOLDER COMMIT_CHANGES MAVEN_PATH MAVEN_EXEC REPO_NAME SPRING_CLOUD_STATIC_REPO
|
||||
export GIT_BIN ROOT_FOLDER COMMIT_CHANGES MAVEN_PATH MAVEN_EXEC REPO_NAME SPRING_CLOUD_STATIC_REPO SPRING_CLOUD_STATIC_REPO_DESTINATION
|
||||
export CURRENT_BRANCH PREVIOUS_BRANCH
|
||||
export GITHUB_REPO_USERNAME_ENV="${GITHUB_REPO_USERNAME_ENV:-GITHUB_REPO_USERNAME}"
|
||||
export GITHUB_REPO_PASSWORD_ENV="${GITHUB_REPO_PASSWORD_ENV:-GITHUB_REPO_PASSWORD}"
|
||||
REPO_USER="${!GITHUB_REPO_USERNAME_ENV}"
|
||||
REPO_PASS="${!GITHUB_REPO_PASSWORD_ENV}"
|
||||
export SPRING_CLOUD_STATIC_REPO_DESTINATION="${SPRING_CLOUD_STATIC_REPO_DESTINATION:-$( dirname "$(mktemp)")/}"
|
||||
|
||||
GIT_BIN="${GIT_BIN:-git}"
|
||||
|
||||
# The script should be executed from the root folder
|
||||
ROOT_FOLDER="$( pwd )"
|
||||
echo "Current folder is ${ROOT_FOLDER}"
|
||||
echo "Current folder is [${ROOT_FOLDER}]"
|
||||
echo "Spring Cloud Static repo is [${SPRING_CLOUD_STATIC_REPO_DESTINATION}]"
|
||||
|
||||
# Set default props like MAVEN_PATH, ROOT_FOLDER etc.
|
||||
function set_default_props() {
|
||||
@@ -151,13 +153,21 @@ function add_docs_from_target() {
|
||||
DESTINATION_REPO_FOLDER="${ROOT_FOLDER}"
|
||||
elif [[ "${CLONE}" == "yes" ]]; then
|
||||
mkdir -p "${ROOT_FOLDER}"/target
|
||||
local clonedStatic="${ROOT_FOLDER}"/target/spring-cloud-static
|
||||
local clonedStatic="${SPRING_CLOUD_STATIC_REPO_DESTINATION}"/spring-cloud-static
|
||||
if [[ ! -e "${clonedStatic}/.git" ]]; then
|
||||
echo "Cloning Spring Cloud Static to target"
|
||||
echo "Cloning Spring Cloud Static to [${clonedStatic}]"
|
||||
"${GIT_BIN}" clone "${SPRING_CLOUD_STATIC_REPO}" "${clonedStatic}" && cd "${clonedStatic}" && "${GIT_BIN}" checkout gh-pages
|
||||
else
|
||||
echo "Spring Cloud Static already cloned - will pull changes"
|
||||
cd "${clonedStatic}" && "${GIT_BIN}" checkout gh-pages && "${GIT_BIN}" pull origin gh-pages
|
||||
echo "Spring Cloud Static already cloned to [${clonedStatic}] - will pull changes"
|
||||
local pullSuccessful="false"
|
||||
cd "${clonedStatic}" && "${GIT_BIN}" checkout gh-pages && "${GIT_BIN}" pull origin gh-pages && pullSuccessful="true" || echo "Failed to clone and pull versions - will remove the folder and clone it again"
|
||||
if [[ "${pullSuccessful}" == "false" ]]; then
|
||||
cd "${ROOT_FOLDER}"
|
||||
echo "Removing the [${clonedStatic}] folder"
|
||||
rm -rf "${clonedStatic}"
|
||||
echo "Cloning Spring Cloud Static again"
|
||||
"${GIT_BIN}" clone "${SPRING_CLOUD_STATIC_REPO}" "${clonedStatic}" && cd "${clonedStatic}" && "${GIT_BIN}" checkout gh-pages
|
||||
fi
|
||||
fi
|
||||
if [[ -z "${RELEASE_TRAIN}" ]] ; then
|
||||
DESTINATION_REPO_FOLDER="${clonedStatic}/${REPO_NAME}"
|
||||
|
||||
Regular → Executable
@@ -0,0 +1,152 @@
|
||||
/*
|
||||
* Copyright 2012-2020 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.cloud.internal;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.TreeSet;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.regex.Pattern;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
|
||||
import org.springframework.core.io.Resource;
|
||||
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
|
||||
import org.springframework.util.StreamUtils;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
/**
|
||||
* @author Marcin Grzejszczak
|
||||
*/
|
||||
public class Main {
|
||||
|
||||
public static void main(String... args) {
|
||||
String outputFile = args[0];
|
||||
String inclusionPattern = args.length > 1 ? args[1] : ".*";
|
||||
File parent = new File(outputFile).getParentFile();
|
||||
if (!parent.exists()) {
|
||||
System.out.println("No parent directory [" + parent.toString()
|
||||
+ "] found. Will not generate the configuration properties file");
|
||||
return;
|
||||
}
|
||||
new Generator().generate(outputFile, inclusionPattern);
|
||||
}
|
||||
|
||||
static class Generator {
|
||||
|
||||
void generate(String outputFile, String inclusionPattern) {
|
||||
try {
|
||||
System.out.println("Parsing all configuration metadata");
|
||||
Resource[] resources = getResources();
|
||||
System.out.println("Found [" + resources.length + "] configuration metadata jsons");
|
||||
TreeSet<String> names = new TreeSet<>();
|
||||
Map<String, ConfigValue> descriptions = new HashMap<>();
|
||||
final AtomicInteger count = new AtomicInteger();
|
||||
final AtomicInteger matchingPropertyCount = new AtomicInteger();
|
||||
final AtomicInteger propertyCount = new AtomicInteger();
|
||||
Pattern pattern = Pattern.compile(inclusionPattern);
|
||||
for (Resource resource : resources) {
|
||||
if (resourceNameContainsPattern(resource)) {
|
||||
count.incrementAndGet();
|
||||
byte[] bytes = StreamUtils.copyToByteArray(resource.getInputStream());
|
||||
Map<String, Object> response = new ObjectMapper().readValue(bytes, HashMap.class);
|
||||
List<Map<String, Object>> properties = (List<Map<String, Object>>) response.get("properties");
|
||||
properties.forEach(val -> {
|
||||
propertyCount.incrementAndGet();
|
||||
String name = String.valueOf(val.get("name"));
|
||||
if (!pattern.matcher(name).matches()) {
|
||||
return;
|
||||
}
|
||||
Object description = val.get("description");
|
||||
Object defaultValue = val.get("defaultValue");
|
||||
matchingPropertyCount.incrementAndGet();
|
||||
names.add(name);
|
||||
descriptions.put(name, new ConfigValue(name, description, defaultValue));
|
||||
});
|
||||
}
|
||||
}
|
||||
System.out.println(
|
||||
"Found [" + count + "] Cloud projects configuration metadata jsons. [" + matchingPropertyCount
|
||||
+ "/" + propertyCount + "] were matching the pattern [" + inclusionPattern + "]");
|
||||
System.out.println("Successfully built the description table");
|
||||
if (names.isEmpty()) {
|
||||
System.out.println("Will not update the table, since no configuration properties were found!");
|
||||
return;
|
||||
}
|
||||
Files.write(new File(outputFile).toPath(),
|
||||
("|===\n"
|
||||
+ "|Name | Default | Description\n\n" + names.stream()
|
||||
.map(it -> descriptions.get(it).toString()).collect(Collectors.joining("\n"))
|
||||
+ "\n\n" + "|===").getBytes());
|
||||
System.out.println("Successfully stored the output file");
|
||||
}
|
||||
catch (IOException e) {
|
||||
throw new IllegalStateException(e);
|
||||
}
|
||||
}
|
||||
|
||||
protected boolean resourceNameContainsPattern(Resource resource) {
|
||||
try {
|
||||
return resource.getURL().toString().contains("cloud");
|
||||
}
|
||||
catch (Exception e) {
|
||||
System.out.println("Exception [" + e + "] for resource [" + resource
|
||||
+ "] occurred while trying to retrieve its URL");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
protected Resource[] getResources() throws IOException {
|
||||
return new PathMatchingResourcePatternResolver()
|
||||
.getResources("classpath*:/META-INF/spring-configuration-metadata.json");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static class ConfigValue {
|
||||
|
||||
public String name;
|
||||
|
||||
public String description;
|
||||
|
||||
public String defaultValue;
|
||||
|
||||
ConfigValue() {
|
||||
}
|
||||
|
||||
ConfigValue(String name, Object description, Object defaultValue) {
|
||||
this.name = name;
|
||||
this.description = escapedValue(description);
|
||||
this.defaultValue = escapedValue(defaultValue);
|
||||
}
|
||||
|
||||
private String escapedValue(Object value) {
|
||||
return value != null ? value.toString().replaceAll("\\|", "\\\\|") : "";
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return "|" + name + " | " + (StringUtils.hasText(defaultValue) ? ("`" + defaultValue + "`") : "") + " | " + description;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
+126
@@ -0,0 +1,126 @@
|
||||
/*
|
||||
* Copyright 2012-2020 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.cloud.internal.asciidoctor;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.util.Arrays;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
import org.asciidoctor.ast.Document;
|
||||
import org.asciidoctor.extension.Preprocessor;
|
||||
import org.asciidoctor.extension.PreprocessorReader;
|
||||
|
||||
// taken from https://github.com/hibernate/hibernate-asciidoctor-extensions/blob/1.0.3.Final/src/main/java/org/hibernate/infra/asciidoctor/extensions/savepreprocessed/SavePreprocessedOutputPreprocessor.java
|
||||
/**
|
||||
* Preprocessor used to save the preprocessed output of the asciidoctor conversion. It allows to generate a single file
|
||||
* integrating all the includes.
|
||||
*
|
||||
* @author Guillaume Smet
|
||||
*/
|
||||
class CoalescerPreprocessor extends Preprocessor {
|
||||
|
||||
private final File outputFile;
|
||||
|
||||
private static final List<String> FILTER_LICENSE_MARKERS = Arrays.asList("[preface]", "<<<");
|
||||
|
||||
private static final String COMMENT_MARKER = "//";
|
||||
|
||||
private static final String SOURCE_MARKER = "[source";
|
||||
|
||||
private static final List<String> SECTION_MARKERS = Arrays.asList("----", "....");
|
||||
|
||||
private static final String HEADER = "////\n" + "DO NOT EDIT THIS FILE. IT WAS GENERATED.\n"
|
||||
+ "Manual changes to this file will be lost when it is generated again.\n"
|
||||
+ "Edit the files in the src/main/asciidoc/ directory instead.\n" + "////\n\n";
|
||||
|
||||
CoalescerPreprocessor(File output_file) {
|
||||
outputFile = output_file;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(Document document, PreprocessorReader preprocessorReader) {
|
||||
try {
|
||||
LinkedList<String> filteredLines = filterLines(preprocessorReader.readLines());
|
||||
filteredLines.addFirst(HEADER);
|
||||
Files.write(outputFile.toPath(), filteredLines);
|
||||
}
|
||||
catch (IOException e) {
|
||||
throw new IllegalStateException("Unable to write the preprocessed file " + outputFile, e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* This is used to filter out the license headers that are just after the markers
|
||||
* defined. It also reindents the source code with spaces to be consistent with the
|
||||
* 1.1 spec.
|
||||
*/
|
||||
private LinkedList<String> filterLines(List<String> lines) {
|
||||
LinkedList<String> filteredLines = new LinkedList<>();
|
||||
ParsingState state = ParsingState.NORMAL;
|
||||
int counter = 0;
|
||||
for (String line : lines) {
|
||||
counter++;
|
||||
switch (state) {
|
||||
case NORMAL:
|
||||
if (FILTER_LICENSE_MARKERS.contains(line)) {
|
||||
state = ParsingState.FILTER_LICENSE;
|
||||
}
|
||||
else if (line.startsWith(SOURCE_MARKER)) {
|
||||
state = ParsingState.SOURCE;
|
||||
}
|
||||
break;
|
||||
case SOURCE:
|
||||
if (SECTION_MARKERS.contains(line)) {
|
||||
state = ParsingState.SOURCE_CONTENT;
|
||||
}
|
||||
else {
|
||||
System.err.println("[source] requires to be followed by a section marker and line number [" + counter + "] with content [" + line + "] doesn't have it");
|
||||
}
|
||||
break;
|
||||
case SOURCE_CONTENT:
|
||||
if (SECTION_MARKERS.contains(line)) {
|
||||
state = ParsingState.NORMAL;
|
||||
}
|
||||
else {
|
||||
filteredLines.add(line.replaceAll("\t", " "));
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
case FILTER_LICENSE:
|
||||
if (line.startsWith(COMMENT_MARKER)) {
|
||||
continue;
|
||||
}
|
||||
else {
|
||||
state = ParsingState.NORMAL;
|
||||
}
|
||||
break;
|
||||
}
|
||||
filteredLines.add(line);
|
||||
}
|
||||
return filteredLines;
|
||||
}
|
||||
|
||||
private enum ParsingState {
|
||||
|
||||
NORMAL, FILTER_LICENSE, SOURCE, SOURCE_CONTENT,
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
/*
|
||||
* Copyright 2012-2020 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.cloud.internal.asciidoctor;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
|
||||
import org.asciidoctor.Asciidoctor;
|
||||
import org.asciidoctor.Attributes;
|
||||
import org.asciidoctor.Options;
|
||||
import org.asciidoctor.SafeMode;
|
||||
|
||||
public class ReadmeMain {
|
||||
public static void main(String... args) {
|
||||
File inputFile = new File(args[0]);
|
||||
File outputFile = new File(args[1]);
|
||||
System.out.println("Will do the Readme conversion from [" + inputFile + "] to [" + outputFile + "]");
|
||||
if (!inputFile.exists()) {
|
||||
System.out.println("There's no file [" + inputFile + "], skipping readme generation");
|
||||
return;
|
||||
}
|
||||
new ReadmeMain().convert(inputFile, outputFile);
|
||||
}
|
||||
|
||||
void convert(File input, File output) {
|
||||
Asciidoctor asciidoctor = Asciidoctor.Factory.create();
|
||||
asciidoctor.javaExtensionRegistry().preprocessor(new CoalescerPreprocessor(output));
|
||||
Options options = options(input, output);
|
||||
try {
|
||||
String fileAsString = new String(Files.readAllBytes(input.toPath()));
|
||||
asciidoctor.convert(fileAsString, options);
|
||||
System.out.println("Successfully converted the Readme file!\n");
|
||||
} catch (IOException ex) {
|
||||
throw new IllegalStateException("Failed to convert the file", ex);
|
||||
}
|
||||
}
|
||||
|
||||
private Options options(File input, File output) {
|
||||
Attributes attributes = new Attributes();
|
||||
attributes.setAllowUriRead(true);
|
||||
attributes.setAttribute("project-root", output.getParent());
|
||||
Options options = new Options();
|
||||
options.setSourceDir(input.getParent());
|
||||
options.setBaseDir(input.getParent());
|
||||
options.setAttributes(attributes);
|
||||
options.setSafe(SafeMode.UNSAFE);
|
||||
options.setParseHeaderOnly(true);
|
||||
return options;
|
||||
}
|
||||
}
|
||||
@@ -17,7 +17,10 @@ end
|
||||
file = ARGV[0] if ARGV.length>0
|
||||
|
||||
# Copied from https://github.com/asciidoctor/asciidoctor-extensions-lab/blob/master/scripts/asciidoc-coalescer.rb
|
||||
doc = Asciidoctor.load_file file, safe: :unsafe, header_only: true, attributes: options[:attributes]
|
||||
attributes = {}
|
||||
attributes['project-root'] = File.expand_path("#{base_dir}/../")
|
||||
|
||||
doc = Asciidoctor.load_file file, safe: :unsafe, header_only: true, attributes: attributes
|
||||
header_attr_names = (doc.instance_variable_get :@attributes_modified).to_a
|
||||
header_attr_names.each {|k| doc.attributes[%(#{k}!)] = '' unless doc.attr? k }
|
||||
attrs = doc.attributes
|
||||
|
||||
@@ -20,13 +20,17 @@ if [[ $# -ne 1 ]]; then
|
||||
usage
|
||||
fi
|
||||
|
||||
SHELLCHECK_VERSION="v0.6.0"
|
||||
SHELLCHECK_VERSION="v0.7.0"
|
||||
ARCH="x86_64"
|
||||
if [ "$(uname -m)" == aarch64 ]; then
|
||||
ARCH="aarch64"
|
||||
fi
|
||||
SHELLCHECK_BIN="${ROOT_DIR}/../target/shellcheck-${SHELLCHECK_VERSION}/shellcheck"
|
||||
|
||||
case $1 in
|
||||
download-shellcheck)
|
||||
if [[ "${OSTYPE}" == linux* && ! -z "${SHELLCHECK_BIN}" ]]; then
|
||||
SHELLCHECK_ARCHIVE="shellcheck-${SHELLCHECK_VERSION}.linux.x86_64.tar.xz"
|
||||
SHELLCHECK_ARCHIVE="shellcheck-${SHELLCHECK_VERSION}.linux.${ARCH}.tar.xz"
|
||||
if [[ -x "${ROOT_DIR}/../target/shellcheck-${SHELLCHECK_VERSION}/shellcheck" ]]; then
|
||||
echo "shellcheck already downloaded - skipping..."
|
||||
exit 0
|
||||
@@ -55,6 +59,8 @@ case $1 in
|
||||
exit 0
|
||||
fi
|
||||
git clone https://github.com/bats-core/bats-core.git "${ROOT_DIR}/../target/bats"
|
||||
git clone https://github.com/ztombol/bats-support.git "${ROOT_DIR}/target/test_helper/bats-support"
|
||||
git clone https://github.com/ztombol/bats-assert "${ROOT_DIR}/target/test_helper/bats-assert"
|
||||
;;
|
||||
run-bats)
|
||||
echo "Running bats"
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<parent>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-parent</artifactId>
|
||||
<version>2.2.0.BUILD-SNAPSHOT</version>
|
||||
<version>2.3.12.RELEASE</version>
|
||||
<relativePath/> <!-- lookup parent from repository -->
|
||||
</parent>
|
||||
|
||||
|
||||
@@ -11,15 +11,15 @@
|
||||
<parent>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-parent</artifactId>
|
||||
<version>2.2.0.BUILD-SNAPSHOT</version>
|
||||
<version>2.3.12.RELEASE</version>
|
||||
<relativePath /> <!-- lookup parent from repository -->
|
||||
</parent>
|
||||
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<java.version>1.8</java.version>
|
||||
<spring-cloud.version>Hoxton.BUILD-SNAPSHOT</spring-cloud.version>
|
||||
<spring-cloud-contract.version>2.2.0.BUILD-SNAPSHOT</spring-cloud-contract.version>
|
||||
<spring-cloud.version>Hoxton.SNAPSHOT</spring-cloud.version>
|
||||
<spring-cloud-contract.version>2.2.7.SNAPSHOT</spring-cloud-contract.version>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<parent>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-parent</artifactId>
|
||||
<version>2.2.0.BUILD-SNAPSHOT</version>
|
||||
<version>2.3.12.RELEASE</version>
|
||||
<relativePath/> <!-- lookup parent from repository -->
|
||||
</parent>
|
||||
|
||||
|
||||
@@ -11,15 +11,15 @@
|
||||
<parent>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-parent</artifactId>
|
||||
<version>2.2.0.BUILD-SNAPSHOT</version>
|
||||
<version>2.3.12.RELEASE</version>
|
||||
<relativePath /> <!-- lookup parent from repository -->
|
||||
</parent>
|
||||
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<java.version>1.8</java.version>
|
||||
<spring-cloud.version>Hoxton.BUILD-SNAPSHOT</spring-cloud.version>
|
||||
<spring-cloud-contract.version>2.2.0.BUILD-SNAPSHOT</spring-cloud-contract.version>
|
||||
<spring-cloud.version>Hoxton.SNAPSHOT</spring-cloud.version>
|
||||
<spring-cloud-contract.version>2.2.7.SNAPSHOT</spring-cloud-contract.version>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<parent>
|
||||
<groupId>org.springframework.cloud</groupId>
|
||||
<artifactId>spring-cloud-stream-parent</artifactId>
|
||||
<version>Horsham.BUILD-SNAPSHOT</version>
|
||||
<version>Horsham.SR11</version>
|
||||
</parent>
|
||||
<packaging>pom</packaging>
|
||||
<name>spring-cloud-stream-core-docs</name>
|
||||
|
||||
@@ -4,12 +4,12 @@
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>spring-cloud-stream-parent</artifactId>
|
||||
<version>2.2.0.BUILD-SNAPSHOT</version>
|
||||
<version>2.3.4.BUILD-SNAPSHOT</version>
|
||||
<packaging>pom</packaging>
|
||||
<parent>
|
||||
<groupId>org.springframework.cloud</groupId>
|
||||
<artifactId>spring-cloud-build</artifactId>
|
||||
<version>2.2.0.BUILD-SNAPSHOT</version>
|
||||
<version>2.3.4.BUILD-SNAPSHOT</version>
|
||||
<relativePath/>
|
||||
</parent>
|
||||
<scm>
|
||||
@@ -28,7 +28,7 @@
|
||||
<reactor.version>Californium-SR5</reactor.version>
|
||||
<kryo-shaded.version>3.0.3</kryo-shaded.version>
|
||||
<objenesis.version>2.1</objenesis.version>
|
||||
<spring-cloud-function.version>3.0.0.BUILD-SNAPSHOT</spring-cloud-function.version>
|
||||
<spring-cloud-function.version>3.0.14.SNAPSHOT</spring-cloud-function.version>
|
||||
|
||||
<maven-checkstyle-plugin.failsOnError>true</maven-checkstyle-plugin.failsOnError>
|
||||
<maven-checkstyle-plugin.failsOnViolation>true</maven-checkstyle-plugin.failsOnViolation>
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@
|
||||
<parent>
|
||||
<groupId>org.springframework.cloud</groupId>
|
||||
<artifactId>spring-cloud-stream-parent</artifactId>
|
||||
<version>Horsham.BUILD-SNAPSHOT</version>
|
||||
<version>Horsham.SR11</version>
|
||||
</parent>
|
||||
|
||||
<dependencies>
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@
|
||||
<parent>
|
||||
<groupId>org.springframework.cloud</groupId>
|
||||
<artifactId>spring-cloud-stream-parent</artifactId>
|
||||
<version>Horsham.BUILD-SNAPSHOT</version>
|
||||
<version>Horsham.SR11</version>
|
||||
</parent>
|
||||
|
||||
<dependencies>
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@
|
||||
<parent>
|
||||
<groupId>org.springframework.cloud</groupId>
|
||||
<artifactId>spring-cloud-stream-parent</artifactId>
|
||||
<version>Horsham.BUILD-SNAPSHOT</version>
|
||||
<version>Horsham.SR11</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@
|
||||
<parent>
|
||||
<artifactId>spring-cloud-stream-parent</artifactId>
|
||||
<groupId>org.springframework.cloud</groupId>
|
||||
<version>Horsham.BUILD-SNAPSHOT</version>
|
||||
<version>Horsham.SR11</version>
|
||||
</parent>
|
||||
|
||||
<dependencies>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<parent>
|
||||
<artifactId>spring-cloud-stream-parent</artifactId>
|
||||
<groupId>org.springframework.cloud</groupId>
|
||||
<version>Horsham.BUILD-SNAPSHOT</version>
|
||||
<version>Horsham.SR11</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@
|
||||
<parent>
|
||||
<groupId>org.springframework.cloud</groupId>
|
||||
<artifactId>spring-cloud-stream-parent</artifactId>
|
||||
<version>Horsham.BUILD-SNAPSHOT</version>
|
||||
<version>Horsham.SR11</version>
|
||||
</parent>
|
||||
<artifactId>spring-cloud-stream-test-support-internal</artifactId>
|
||||
<description>Set of classes and utility code that may assist in testing both
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@
|
||||
<parent>
|
||||
<groupId>org.springframework.cloud</groupId>
|
||||
<artifactId>spring-cloud-stream-parent</artifactId>
|
||||
<version>Horsham.BUILD-SNAPSHOT</version>
|
||||
<version>Horsham.SR11</version>
|
||||
</parent>
|
||||
<artifactId>spring-cloud-stream-test-support</artifactId>
|
||||
<description>A set of classes to ease testing of Spring Cloud Stream modules.
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<version>2.2.0.BUILD-SNAPSHOT</version>
|
||||
<version>2.3.4.BUILD-SNAPSHOT</version>
|
||||
<parent>
|
||||
<groupId>org.springframework.cloud</groupId>
|
||||
<artifactId>spring-cloud-build</artifactId>
|
||||
<version>2.2.0.BUILD-SNAPSHOT</version>
|
||||
<version>2.3.4.BUILD-SNAPSHOT</version>
|
||||
<relativePath />
|
||||
</parent>
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
<parent>
|
||||
<groupId>org.springframework.cloud</groupId>
|
||||
<artifactId>spring-cloud-stream-parent</artifactId>
|
||||
<version>Horsham.BUILD-SNAPSHOT</version>
|
||||
<version>Horsham.SR11</version>
|
||||
</parent>
|
||||
|
||||
<dependencies>
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
#!/usr/bin/env bats
|
||||
|
||||
load 'test_helper'
|
||||
load 'test_helper/bats-support/load'
|
||||
load 'test_helper/bats-assert/load'
|
||||
load '../../../target/test_helper/bats-support/load'
|
||||
load '../../../target/test_helper/bats-assert/load'
|
||||
|
||||
setup() {
|
||||
export TEMP_DIR="$( mktemp -d )"
|
||||
@@ -17,6 +17,7 @@ setup() {
|
||||
export SOURCE_FUNCTIONS="true"
|
||||
export GITHUB_REPO_USERNAME_ENV="MY_REPO_USERNAME"
|
||||
export GITHUB_REPO_PASSWORD_ENV="MY_REPO_PASSWORD"
|
||||
export SPRING_CLOUD_STATIC_REPO_DESTINATION="${TEMP_DIR}"
|
||||
}
|
||||
|
||||
teardown() {
|
||||
@@ -83,6 +84,7 @@ export -f printing_git_with_remotes
|
||||
export -f stubbed_git
|
||||
|
||||
@test "should upload the built docs to the root of gh-pages for snapshot versions" {
|
||||
export BRANCH=master
|
||||
export GIT_BIN="stubbed_git"
|
||||
export SOURCE_FUNCTIONS=""
|
||||
export RELEASER_GIT_OAUTH_TOKEN="mytoken"
|
||||
@@ -93,6 +95,7 @@ export -f stubbed_git
|
||||
run "${SOURCE_DIR}"/ghpages.sh
|
||||
|
||||
assert_success
|
||||
assert_output --partial "Spring Cloud Static repo is [${TEMP_DIR}]"
|
||||
assert_output --partial "git remote set-url --push origin https://mytoken@example1.example2/example3.git"
|
||||
assert_output --partial "git fetch -q"
|
||||
assert_output --partial "git checkout master"
|
||||
@@ -109,6 +112,7 @@ export -f stubbed_git
|
||||
}
|
||||
|
||||
@test "should upload the built docs to spring-cloud-static gh-pages branch for non-snapshot versions" {
|
||||
export BRANCH=master
|
||||
export GIT_BIN="stubbed_git"
|
||||
export SOURCE_FUNCTIONS=""
|
||||
export RELEASER_GIT_OAUTH_TOKEN="mytoken"
|
||||
@@ -122,6 +126,7 @@ export -f stubbed_git
|
||||
run "${SOURCE_DIR}"/ghpages.sh
|
||||
|
||||
assert_success
|
||||
assert_output --partial "Spring Cloud Static repo is [${TEMP_DIR}]"
|
||||
assert_output --partial "git remote set-url --push origin https://mytoken@example1.example2/example3.git"
|
||||
assert_output --partial "git remote set-branches --add origin gh-pages"
|
||||
assert_output --partial "git fetch -q"
|
||||
@@ -142,6 +147,7 @@ export -f stubbed_git
|
||||
}
|
||||
|
||||
@test "should upload the release train docs to spring-cloud-static under the release train folder" {
|
||||
export BRANCH=master
|
||||
export GIT_BIN="stubbed_git"
|
||||
export SOURCE_FUNCTIONS=""
|
||||
export RELEASER_GIT_OAUTH_TOKEN="mytoken"
|
||||
@@ -214,6 +220,7 @@ export -f stubbed_git
|
||||
}
|
||||
|
||||
@test "should retrieve the name of the current branch" {
|
||||
export BRANCH=master
|
||||
export GIT_BIN="stubbed_git"
|
||||
cd "${TEMP_DIR}/spring-cloud-stream/"
|
||||
source "${SOURCE_DIR}"/ghpages.sh
|
||||
|
||||
Submodule docs/src/test/bats/test_helper/bats-assert deleted from 9f88b4207d
Submodule docs/src/test/bats/test_helper/bats-support deleted from 004e707638
@@ -1,8 +1,8 @@
|
||||
#!/usr/bin/env bats
|
||||
|
||||
load 'test_helper'
|
||||
load 'test_helper/bats-support/load'
|
||||
load 'test_helper/bats-assert/load'
|
||||
load '../../../target/test_helper/bats-support/load'
|
||||
load '../../../target/test_helper/bats-assert/load'
|
||||
|
||||
setup() {
|
||||
export TEMP_DIR="$( mktemp -d )"
|
||||
|
||||
@@ -0,0 +1,116 @@
|
||||
/*
|
||||
* Copyright 2013-2019 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.cloud.internal;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.net.URISyntaxException;
|
||||
import java.net.URL;
|
||||
import java.nio.file.Files;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.core.io.FileSystemResource;
|
||||
import org.springframework.core.io.Resource;
|
||||
|
||||
import static org.assertj.core.api.BDDAssertions.then;
|
||||
|
||||
class GeneratorTests {
|
||||
|
||||
URL root = GeneratorTests.class.getResource(".");
|
||||
|
||||
@Test
|
||||
void should_not_create_a_file_when_no_properties_were_found()
|
||||
throws URISyntaxException {
|
||||
Main.Generator generator = new Main.Generator() {
|
||||
@Override
|
||||
protected Resource[] getResources() {
|
||||
return new Resource[0];
|
||||
}
|
||||
};
|
||||
File file = new File(root.toURI().toString(), "output.adoc");
|
||||
String inclusionPattern = ".*";
|
||||
|
||||
generator.generate(file.getAbsolutePath(), inclusionPattern);
|
||||
|
||||
then(file).doesNotExist();
|
||||
}
|
||||
|
||||
@Test
|
||||
void should_create_a_file_when_cloud_file_was_found() {
|
||||
Main.Generator generator = new Main.Generator() {
|
||||
@Override
|
||||
protected Resource[] getResources() {
|
||||
return new Resource[] { resource("/not-matching-name.json"),
|
||||
resource("/with-cloud-in-name.json") };
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean resourceNameContainsPattern(Resource resource) {
|
||||
try {
|
||||
return resource.getURI().toString().contains("with-cloud");
|
||||
}
|
||||
catch (IOException ex) {
|
||||
throw new IllegalStateException(ex);
|
||||
}
|
||||
}
|
||||
};
|
||||
File file = new File(root.getFile().toString(), "output.adoc");
|
||||
String inclusionPattern = ".*";
|
||||
|
||||
generator.generate(file.getAbsolutePath(), inclusionPattern);
|
||||
|
||||
then(file).exists();
|
||||
then(asString(file)).contains("spring.first-property")
|
||||
.contains("unmatched.second-property")
|
||||
.doesNotContain("example1.first-property");
|
||||
}
|
||||
|
||||
@Test
|
||||
void should_create_a_file_when_spring_property_was_found() {
|
||||
Main.Generator generator = new Main.Generator() {
|
||||
@Override
|
||||
protected Resource[] getResources() {
|
||||
return new Resource[] { resource("/not-matching-name.json"),
|
||||
resource("/with-cloud-in-name.json") };
|
||||
}
|
||||
};
|
||||
File file = new File(root.getFile().toString(), "output.adoc");
|
||||
String inclusionPattern = "spring.*";
|
||||
|
||||
generator.generate(file.getAbsolutePath(), inclusionPattern);
|
||||
|
||||
then(file).exists();
|
||||
then(asString(file)).contains("spring.first-property")
|
||||
.doesNotContain("example1.first-property")
|
||||
.doesNotContain("unmatched.second-property");
|
||||
}
|
||||
|
||||
static String asString(File file) {
|
||||
try {
|
||||
return new String(Files.readAllBytes(file.toPath()));
|
||||
}
|
||||
catch (IOException ex) {
|
||||
throw new IllegalStateException(ex);
|
||||
}
|
||||
}
|
||||
|
||||
static Resource resource(String path) {
|
||||
return new FileSystemResource(GeneratorTests.class.getResource(path).getFile());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
/*
|
||||
* Copyright 2013-2019 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.cloud.internal;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import static org.assertj.core.api.BDDAssertions.then;
|
||||
|
||||
class MainTests {
|
||||
|
||||
@Test
|
||||
void should_do_nothing_when_parent_dir_is_not_found() {
|
||||
File nonExistantFile = new File("/this/file/does/not/exist");
|
||||
|
||||
Main.main(nonExistantFile.getAbsolutePath());
|
||||
|
||||
then(nonExistantFile).doesNotExist();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"properties": [
|
||||
{
|
||||
"defaultValue": "false",
|
||||
"name": "example1.first-property",
|
||||
"description": "First Description",
|
||||
"type": "java.lang.Boolean"
|
||||
},
|
||||
{
|
||||
"defaultValue": "true",
|
||||
"name": "example2.second-property",
|
||||
"description": "Second Description",
|
||||
"type": "java.lang.Boolean"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"properties": [
|
||||
{
|
||||
"defaultValue": "false",
|
||||
"name": "spring.first-property",
|
||||
"description": "First Description",
|
||||
"type": "java.lang.Boolean"
|
||||
},
|
||||
{
|
||||
"defaultValue": "true",
|
||||
"name": "unmatched.second-property",
|
||||
"description": "Second Description",
|
||||
"type": "java.lang.Boolean"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -5,7 +5,7 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.springframework.cloud</groupId>
|
||||
<artifactId>spring-cloud-build</artifactId>
|
||||
<version>2.2.0.M4</version>
|
||||
<version>2.3.5.RELEASE</version>
|
||||
<packaging>pom</packaging>
|
||||
<name>Spring Cloud Parent</name>
|
||||
<description>Spring Cloud parent pom, managing plugins and dependencies for Spring
|
||||
@@ -28,19 +28,20 @@
|
||||
<maven.compiler.target>${java.version}</maven.compiler.target>
|
||||
<main.basedir>${basedir}</main.basedir>
|
||||
<docs.main>${project.artifactId}</docs.main>
|
||||
<spring-boot.version>2.2.0.M5</spring-boot.version>
|
||||
<spring-cloud-build.version>2.2.0.M4</spring-cloud-build.version>
|
||||
<spring-boot.version>2.3.12.RELEASE</spring-boot.version>
|
||||
<spring-cloud-build.version>2.3.5.RELEASE</spring-cloud-build.version>
|
||||
<docs.resources.dir>${project.build.directory}/build-docs</docs.resources.dir>
|
||||
<docs.classes.dir>${project.build.directory}/build-docs-classes</docs.classes.dir>
|
||||
<refdocs.build.directory>${project.build.directory}/refdocs/</refdocs.build.directory>
|
||||
<spring-doc-resources.version>0.1.0.RELEASE</spring-doc-resources.version>
|
||||
<spring-asciidoctor-extensions.version>0.1.3.RELEASE
|
||||
<spring-doc-resources.version>0.2.2.RELEASE</spring-doc-resources.version>
|
||||
<spring-asciidoctor-extensions.version>0.2.0.RELEASE
|
||||
</spring-asciidoctor-extensions.version>
|
||||
<asciidoctorj-pdf.version>1.5.0-alpha.18</asciidoctorj-pdf.version>
|
||||
<asciidoctorj-diagram.version>1.5.18</asciidoctorj-diagram.version>
|
||||
<asciidoctorj-diagram.version>2.0.2</asciidoctorj-diagram.version>
|
||||
<guides-project.version>${project.version}</guides-project.version>
|
||||
<guides-update.phase>deploy</guides-update.phase>
|
||||
<revision>${project.version}</revision>
|
||||
<asciidoctorj.version>1.5.8</asciidoctorj.version>
|
||||
<asciidoctorj.version>2.1.0</asciidoctorj.version>
|
||||
<jruby-complete.version>9.2.7.0</jruby-complete.version>
|
||||
|
||||
<!-- Sonar -->
|
||||
@@ -71,7 +72,7 @@
|
||||
<maven-enforcer-plugin.version>3.0.0-M2</maven-enforcer-plugin.version>
|
||||
<maven-gpg-plugin.version>1.6</maven-gpg-plugin.version>
|
||||
<maven-dependency-plugin.version>3.1.1</maven-dependency-plugin.version>
|
||||
<asciidoctor-maven-plugin.version>1.5.7.1</asciidoctor-maven-plugin.version>
|
||||
<asciidoctor-maven-plugin.version>1.6.0</asciidoctor-maven-plugin.version>
|
||||
<build-helper-maven-plugin.version>3.0.0</build-helper-maven-plugin.version>
|
||||
<artifactory-maven-plugin.version>2.2.1</artifactory-maven-plugin.version>
|
||||
<license-maven-plugin.version>1.16</license-maven-plugin.version>
|
||||
@@ -98,6 +99,20 @@
|
||||
<disable.nohttp.checks>true</disable.nohttp.checks>
|
||||
<antelopetasks.version>3.2.10</antelopetasks.version>
|
||||
<ant-nodeps.version>1.8.1</ant-nodeps.version>
|
||||
<configprops.path>${project.basedir}/src/main/asciidoc/_configprops.adoc</configprops.path>
|
||||
<configprops.inclusionPattern>.*</configprops.inclusionPattern>
|
||||
<maven-dependency-plugin-for-docs.phase>generate-resources</maven-dependency-plugin-for-docs.phase>
|
||||
<maven-dependency-plugin-for-docs-classes.phase>generate-resources</maven-dependency-plugin-for-docs-classes.phase>
|
||||
<maven-dependency-plugin-for-guides.phase>generate-resources</maven-dependency-plugin-for-guides.phase>
|
||||
<generated-docs-multipage-output.dir>${project.build.directory}/generated-docs/reference/html</generated-docs-multipage-output.dir>
|
||||
<generated-docs-singlepage-output.dir>${project.build.directory}/generated-docs/reference/htmlsingle</generated-docs-singlepage-output.dir>
|
||||
<generated-docs-pdf-output.dir>${project.build.directory}/generated-docs/reference/pdf</generated-docs-pdf-output.dir>
|
||||
<maven-deploy-plugin.version>2.7</maven-deploy-plugin.version>
|
||||
<maven-deploy-plugin.deployZipRepositoryId>repo.spring.io</maven-deploy-plugin.deployZipRepositoryId>
|
||||
<maven-deploy-plugin.deployZipUrl>https://repo.spring.io/libs-snapshot-local</maven-deploy-plugin.deployZipUrl>
|
||||
<upload-docs-zip.phase>none</upload-docs-zip.phase>
|
||||
<readme.main.classpath>${docs.classes.dir}</readme.main.classpath>
|
||||
<readme.class.path>readme.class.path</readme.class.path>
|
||||
</properties>
|
||||
<dependencyManagement>
|
||||
<dependencies>
|
||||
@@ -249,42 +264,33 @@
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<!--<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>flatten-maven-plugin</artifactId>
|
||||
<version>1.0.0</version>
|
||||
<inherited>true</inherited>
|
||||
<configuration>
|
||||
<updatePomFile>true</updatePomFile>
|
||||
<flattenMode>oss</flattenMode>
|
||||
<pomElements>
|
||||
<parent>expand</parent>
|
||||
<distributionManagement>remove</distributionManagement>
|
||||
<repositories>remove</repositories>
|
||||
</pomElements>
|
||||
</configuration>
|
||||
<executions>
|
||||
<!– enable flattening –>
|
||||
<execution>
|
||||
<id>flatten</id>
|
||||
<phase>process-resources</phase>
|
||||
<goals>
|
||||
<goal>flatten</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
<!– ensure proper cleanup –>
|
||||
<execution>
|
||||
<id>flatten.clean</id>
|
||||
<phase>clean</phase>
|
||||
<goals>
|
||||
<goal>clean</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>-->
|
||||
</plugins>
|
||||
<pluginManagement>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>flatten-maven-plugin</artifactId>
|
||||
<inherited>true</inherited>
|
||||
<executions>
|
||||
<execution>
|
||||
<!-- Tidy up all POMs before they are published -->
|
||||
<id>flatten</id>
|
||||
<phase>process-resources</phase>
|
||||
<goals>
|
||||
<goal>flatten</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<updatePomFile>true</updatePomFile>
|
||||
<flattenMode>oss</flattenMode>
|
||||
<pomElements>
|
||||
<parent>expand</parent>
|
||||
<distributionManagement>remove</distributionManagement>
|
||||
<repositories>remove</repositories>
|
||||
</pomElements>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<!-- Apply more sensible defaults for user projects -->
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
@@ -439,7 +445,6 @@
|
||||
checkstyle.additional.suppressions.file=${checkstyle.additional.suppressions.file}
|
||||
</propertyExpansion>
|
||||
<consoleOutput>true</consoleOutput>
|
||||
<!-- TODO: Start fixing the errors -->
|
||||
<includeTestSourceDirectory>
|
||||
${maven-checkstyle-plugin.includeTestSourceDirectory}
|
||||
</includeTestSourceDirectory>
|
||||
@@ -489,6 +494,7 @@
|
||||
${project.build.outputDirectory}/git.properties
|
||||
</generateGitPropertiesFilename>
|
||||
<skipPoms>false</skipPoms>
|
||||
<useNativeGit>true</useNativeGit>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<!-- Support our own plugin -->
|
||||
@@ -709,11 +715,6 @@
|
||||
<enabled>false</enabled>
|
||||
</snapshots>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>spring-plugins</id>
|
||||
<name>Spring Maven Plugins Repository</name>
|
||||
<url>https://repo.spring.io/plugins-release</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
<pluginRepositories>
|
||||
<pluginRepository>
|
||||
@@ -754,6 +755,9 @@
|
||||
<url>https://repo.spring.io/libs-milestone-local</url>
|
||||
</repository>
|
||||
</distributionManagement>
|
||||
<properties>
|
||||
<maven-deploy-plugin.deployZipUrl>https://repo.spring.io/libs-milestone-local</maven-deploy-plugin.deployZipUrl>
|
||||
</properties>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>bintray</id>
|
||||
@@ -787,6 +791,9 @@
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
<properties>
|
||||
<maven-deploy-plugin.deployZipUrl>https://repo.spring.io/libs-release-local</maven-deploy-plugin.deployZipUrl>
|
||||
</properties>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>guides</id>
|
||||
@@ -799,7 +806,7 @@
|
||||
<executions>
|
||||
<execution>
|
||||
<id>unpack-docs</id>
|
||||
<phase>generate-resources</phase>
|
||||
<phase>${maven-dependency-plugin-for-guides.phase}</phase>
|
||||
<goals>
|
||||
<goal>unpack</goal>
|
||||
</goals>
|
||||
@@ -863,6 +870,23 @@
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>java11</id>
|
||||
<activation>
|
||||
<jdk>[1.11,)</jdk>
|
||||
</activation>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-javadoc-plugin</artifactId>
|
||||
<configuration>
|
||||
<!-- https://bugs.java.com/bugdatabase/view_bug.do?bug_id=8212233 -->
|
||||
<source>8</source>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
<profile>
|
||||
<!-- TODO: remove this (it's covered with checkstyle, but not all projects use that yet -->
|
||||
<id>imports</id>
|
||||
@@ -925,7 +949,7 @@
|
||||
<executions>
|
||||
<execution>
|
||||
<id>unpack-docs</id>
|
||||
<phase>generate-resources</phase>
|
||||
<phase>${maven-dependency-plugin-for-docs.phase}</phase>
|
||||
<goals>
|
||||
<goal>unpack</goal>
|
||||
</goals>
|
||||
@@ -940,13 +964,37 @@
|
||||
</version>
|
||||
<classifier>sources</classifier>
|
||||
<type>jar</type>
|
||||
<overWrite>false</overWrite>
|
||||
<overWrite>true</overWrite>
|
||||
<outputDirectory>${docs.resources.dir}
|
||||
</outputDirectory>
|
||||
</artifactItem>
|
||||
</artifactItems>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>unpack-classes</id>
|
||||
<phase>${maven-dependency-plugin-for-docs-classes.phase}</phase>
|
||||
<goals>
|
||||
<goal>unpack</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<artifactItems>
|
||||
<artifactItem>
|
||||
<groupId>org.springframework.cloud
|
||||
</groupId>
|
||||
<artifactId>spring-cloud-build-docs
|
||||
</artifactId>
|
||||
<version>${spring-cloud-build.version}
|
||||
</version>
|
||||
<classifier>jar-with-dependencies</classifier>
|
||||
<type>jar</type>
|
||||
<overWrite>true</overWrite>
|
||||
<outputDirectory>${docs.classes.dir}
|
||||
</outputDirectory>
|
||||
</artifactItem>
|
||||
</artifactItems>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>unpack-docs-resources</id>
|
||||
<phase>generate-resources</phase>
|
||||
@@ -992,6 +1040,41 @@
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>exec-maven-plugin</artifactId>
|
||||
<version>${exec-maven-plugin.version}</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>generate-configprops</id>
|
||||
<phase>prepare-package</phase>
|
||||
<goals>
|
||||
<goal>java</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.springframework.cloud
|
||||
</groupId>
|
||||
<artifactId>spring-cloud-build-docs
|
||||
</artifactId>
|
||||
<version>${spring-cloud-build.version}
|
||||
</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<configuration>
|
||||
<includePluginDependencies>
|
||||
true
|
||||
</includePluginDependencies>
|
||||
<mainClass>org.springframework.cloud.internal.Main</mainClass>
|
||||
<arguments>
|
||||
<argument>${configprops.path}</argument>
|
||||
<argument>${configprops.inclusionPattern}</argument>
|
||||
</arguments>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.asciidoctor</groupId>
|
||||
<artifactId>asciidoctor-maven-plugin</artifactId>
|
||||
@@ -1031,31 +1114,37 @@
|
||||
<toc>left</toc>
|
||||
<toc-levels>4</toc-levels>
|
||||
<sectlinks>true</sectlinks>
|
||||
<sources-root>${project.basedir}/src</sources-root>
|
||||
<asciidoc-sources-root>${project.basedir}/src/main/asciidoc</asciidoc-sources-root>
|
||||
<generated-resources-root>${project.basedir}/target/generated-resources
|
||||
<sources-root>${project.basedir}/src@</sources-root>
|
||||
<asciidoc-sources-root>${project.basedir}/src/main/asciidoc@</asciidoc-sources-root>
|
||||
<generated-resources-root>${project.basedir}/target/generated-resources@
|
||||
</generated-resources-root>
|
||||
<!-- Use this attribute the reference code from another module -->
|
||||
<project-root>${maven.multiModuleProjectDirectory}</project-root>
|
||||
<!-- Note the @ at the end, lowering the precedence of the attribute -->
|
||||
<project-root>${maven.multiModuleProjectDirectory}@</project-root>
|
||||
<!-- It's mandatory for you to pass the docs.main property -->
|
||||
<github-repo>${docs.main}</github-repo>
|
||||
<github-raw>https://raw.githubusercontent.com/spring-cloud/${docs.main}/${github-tag}</github-raw>
|
||||
<github-code>https://github.com/spring-cloud/${docs.main}/tree/${github-tag}</github-code>
|
||||
<github-issues>https://github.com/spring-cloud/${docs.main}/issues/</github-issues>
|
||||
<github-wiki>https://github.com/spring-cloud/${docs.main}/wiki</github-wiki>
|
||||
<github-master-code>https://github.com/spring-cloud/${docs.main}/tree/master</github-master-code>
|
||||
<index-link>${index-link}</index-link>
|
||||
<github-repo>${docs.main}@</github-repo>
|
||||
<github-project>https://github.com/spring-cloud/${docs.main}@</github-project>
|
||||
<github-raw>
|
||||
https://raw.githubusercontent.com/spring-cloud/${docs.main}/${github-tag}@
|
||||
</github-raw>
|
||||
<github-code>https://github.com/spring-cloud/${docs.main}/tree/${github-tag}@
|
||||
</github-code>
|
||||
<github-issues>https://github.com/spring-cloud/${docs.main}/issues/@</github-issues>
|
||||
<github-wiki>https://github.com/spring-cloud/${docs.main}/wiki@</github-wiki>
|
||||
<github-master-code>https://github.com/spring-cloud/${docs.main}/tree/master@
|
||||
</github-master-code>
|
||||
<index-link>${index-link}@</index-link>
|
||||
|
||||
<!-- Spring Cloud specific -->
|
||||
<!-- for backward compatibility -->
|
||||
<spring-cloud-version>${project.version}</spring-cloud-version>
|
||||
<project-version>${project.version}</project-version>
|
||||
<github-tag>${github-tag}</github-tag>
|
||||
<version-type>${version-type}</version-type>
|
||||
<docs-url>${docs-url}</docs-url>
|
||||
<raw-docs-url>${raw-docs-url}</raw-docs-url>
|
||||
<project-version>${project.version}</project-version>
|
||||
<project-name>${docs.main}</project-name>
|
||||
<spring-cloud-version>${project.version}@</spring-cloud-version>
|
||||
<project-version>${project.version}@</project-version>
|
||||
<github-tag>${github-tag}@</github-tag>
|
||||
<version-type>${version-type}@</version-type>
|
||||
<docs-url>https://docs.spring.io/${docs.main}/docs/${project.version}@</docs-url>
|
||||
<raw-docs-url>${github-raw}@</raw-docs-url>
|
||||
<project-version>${project.version}@</project-version>
|
||||
<project-name>${docs.main}@</project-name>
|
||||
</attributes>
|
||||
<!-- end::attributes[] -->
|
||||
<requires>
|
||||
@@ -1075,18 +1164,19 @@
|
||||
<sourceDocumentExtension>.adoc</sourceDocumentExtension>
|
||||
<sourceDocumentExtension>.htmladoc</sourceDocumentExtension>
|
||||
</sourceDocumentExtensions>
|
||||
<outputDirectory>${project.build.directory}/generated-docs/reference/html
|
||||
<outputDirectory>${generated-docs-multipage-output.dir}
|
||||
</outputDirectory>
|
||||
<sourceHighlighter>highlight.js</sourceHighlighter>
|
||||
<doctype>book</doctype>
|
||||
<attributes>
|
||||
<highlightjsdir>js/highlight</highlightjsdir>
|
||||
<highlightjs-theme>atom-one-dark-reasonable</highlightjs-theme>
|
||||
<linkcss>true</linkcss>
|
||||
<imagesdir>./images</imagesdir>
|
||||
<icons>font</icons>
|
||||
<docinfo>shared</docinfo>
|
||||
<stylesdir>css/</stylesdir>
|
||||
<stylesheet>spring.css</stylesheet>
|
||||
<linkcss>true</linkcss>
|
||||
<icons>font</icons>
|
||||
<highlightjsdir>js/highlight</highlightjsdir>
|
||||
<highlightjs-theme>github</highlightjs-theme>
|
||||
<imagesdir>./images</imagesdir>
|
||||
<attribute-missing>warn</attribute-missing>
|
||||
</attributes>
|
||||
<logHandler>
|
||||
@@ -1109,18 +1199,19 @@
|
||||
<sourceDocumentExtension>.htmlsingleadoc</sourceDocumentExtension>
|
||||
</sourceDocumentExtensions>
|
||||
<outputDirectory>
|
||||
${project.build.directory}/generated-docs/reference/htmlsingle
|
||||
${generated-docs-singlepage-output.dir}
|
||||
</outputDirectory>
|
||||
<sourceHighlighter>highlight.js</sourceHighlighter>
|
||||
<doctype>book</doctype>
|
||||
<attributes>
|
||||
<highlightjsdir>js/highlight</highlightjsdir>
|
||||
<highlightjs-theme>atom-one-dark-reasonable</highlightjs-theme>
|
||||
<linkcss>true</linkcss>
|
||||
<imagesdir>./images</imagesdir>
|
||||
<icons>font</icons>
|
||||
<docinfo>shared</docinfo>
|
||||
<stylesdir>css/</stylesdir>
|
||||
<stylesheet>spring.css</stylesheet>
|
||||
<linkcss>true</linkcss>
|
||||
<icons>font</icons>
|
||||
<highlightjsdir>js/highlight</highlightjsdir>
|
||||
<highlightjs-theme>github</highlightjs-theme>
|
||||
<imagesdir>./images</imagesdir>
|
||||
</attributes>
|
||||
</configuration>
|
||||
</execution>
|
||||
@@ -1135,7 +1226,7 @@
|
||||
<sourceDocumentExtensions>
|
||||
<sourceDocumentExtension>.pdfadoc</sourceDocumentExtension>
|
||||
</sourceDocumentExtensions>
|
||||
<outputDirectory>${project.build.directory}/generated-docs/reference/pdf
|
||||
<outputDirectory>${generated-docs-pdf-output.dir}
|
||||
</outputDirectory>
|
||||
<resources>
|
||||
<resource>
|
||||
@@ -1189,16 +1280,20 @@
|
||||
<executions>
|
||||
<execution>
|
||||
<id>readme</id>
|
||||
<phase>process-resources</phase>
|
||||
<phase>prepare-package</phase>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<target>
|
||||
<java classname="org.jruby.Main"
|
||||
failonerror="yes">
|
||||
<arg value="${docs.resources.dir}/ruby/generate_readme.sh"/>
|
||||
<arg value="-o"/>
|
||||
<path id="readme.class.path">
|
||||
<pathelement location="${readme.main.classpath}"/>
|
||||
</path>
|
||||
<java classname="org.springframework.cloud.internal.asciidoctor.ReadmeMain"
|
||||
failonerror="yes" classpathref="${readme.class.path}">
|
||||
<!-- Input -->
|
||||
<arg value="${project.basedir}/src/main/asciidoc/README.adoc"/>
|
||||
<!-- Output -->
|
||||
<arg value="${main.basedir}/README.adoc"/>
|
||||
</java>
|
||||
</target>
|
||||
@@ -1247,7 +1342,7 @@
|
||||
</execution>
|
||||
<execution>
|
||||
<id>setup-maven-properties</id>
|
||||
<phase>validate</phase>
|
||||
<phase>initialize</phase>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
@@ -1267,66 +1362,18 @@
|
||||
<propertyregex property="version-type" override="true"
|
||||
input="${version-type}" regexp="BUILD-(.*)"
|
||||
replace="SNAPSHOT"/>
|
||||
<stringutil string="${version-type}" property="spring-boot-repo">
|
||||
<stringutil string="${version-type}" property="spring-cloud-repo">
|
||||
<lowercase/>
|
||||
</stringutil>
|
||||
<propertyregex property="git.branch" override="true"
|
||||
input="${git.branch}" regexp="origin/(.*)"
|
||||
replace="\1"/>
|
||||
<var name="github-tag" value="${git.branch}"/>
|
||||
<condition property="docs-url"
|
||||
value="https://cloud.spring.io/${docs.main}/">
|
||||
<and>
|
||||
<equals arg1="${version-type}" arg2="SNAPSHOT"/>
|
||||
<equals arg1="${git.branch}" arg2="master"/>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="docs-url"
|
||||
value="https://cloud.spring.io/${docs.main}/${git.branch}/">
|
||||
<and>
|
||||
<equals arg1="${version-type}" arg2="SNAPSHOT"/>
|
||||
<not>
|
||||
<equals arg1="${git.branch}" arg2="master"/>
|
||||
</not>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="docs-url"
|
||||
value="https://cloud.spring.io/spring-cloud-static/${docs.main}/${project.version}">
|
||||
<and>
|
||||
<not>
|
||||
<equals arg1="${version-type}" arg2="SNAPSHOT"/>
|
||||
</not>
|
||||
</and>
|
||||
</condition>
|
||||
<propertyregex property="raw-docs-url" override="true"
|
||||
input="${docs-url}" regexp="https://cloud.spring.io/(.*)"
|
||||
replace="https://raw.githubusercontent.com/\1"/>
|
||||
</target>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>build-helper-maven-plugin</artifactId>
|
||||
<version>${build-helper-maven-plugin.version}</version>
|
||||
<inherited>false</inherited>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>attach-zip</id>
|
||||
<goals>
|
||||
<goal>attach-artifact</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<artifacts>
|
||||
<artifact>
|
||||
<file>
|
||||
${project.build.directory}/${project.artifactId}-${project.version}.zip
|
||||
</file>
|
||||
<type>zip</type>
|
||||
</artifact>
|
||||
</artifacts>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.jfrog.buildinfo</groupId>
|
||||
<artifactId>artifactory-maven-plugin</artifactId>
|
||||
@@ -1353,6 +1400,29 @@
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-deploy-plugin</artifactId>
|
||||
<version>${maven-deploy-plugin.version}</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>upload-docs-zip</id>
|
||||
<phase>${upload-docs-zip.phase}</phase>
|
||||
<goals>
|
||||
<goal>deploy-file</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<generatePom>false</generatePom>
|
||||
<groupId>${project.groupId}</groupId>
|
||||
<artifactId>${project.artifactId}</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<repositoryId>${maven-deploy-plugin.deployZipRepositoryId}</repositoryId>
|
||||
<url>${maven-deploy-plugin.deployZipUrl}</url>
|
||||
<file>${project.build.directory}/${project.artifactId}-${project.version}.zip</file>
|
||||
<packaging>zip;zip.type=docs;zip.deployed=false;</packaging>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</pluginManagement>
|
||||
</build>
|
||||
|
||||
Executable
+4
@@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
|
||||
./mvnw clean install -B -Pdocs ${@}
|
||||
#./mvnw clean install -B -DskipTests ${@}
|
||||
@@ -5,7 +5,7 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.springframework.cloud</groupId>
|
||||
<artifactId>spring-cloud-build-dependencies</artifactId>
|
||||
<version>2.2.0.M4</version>
|
||||
<version>2.3.5.RELEASE</version>
|
||||
<name>spring-cloud-build-dependencies</name>
|
||||
<packaging>pom</packaging>
|
||||
<description>Spring Cloud Build Dependencies: an internal BOM for use with Spring
|
||||
@@ -14,13 +14,49 @@
|
||||
<parent>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-dependencies</artifactId>
|
||||
<version>2.2.0.M5</version>
|
||||
<version>2.3.12.RELEASE</version>
|
||||
<relativePath/>
|
||||
</parent>
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<spring-boot.version>2.2.0.M5</spring-boot.version>
|
||||
<spring-boot.version>2.3.12.RELEASE</spring-boot.version>
|
||||
</properties>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>flatten-maven-plugin</artifactId>
|
||||
<inherited>false</inherited>
|
||||
<executions>
|
||||
<execution>
|
||||
<!-- Flatten and simplify our own POM for install/deploy -->
|
||||
<id>flatten</id>
|
||||
<phase>process-resources</phase>
|
||||
<goals>
|
||||
<goal>flatten</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<updatePomFile>true</updatePomFile>
|
||||
<flattenMode>bom</flattenMode>
|
||||
<pomElements>
|
||||
<parent>expand</parent>
|
||||
<pluginManagement>keep</pluginManagement>
|
||||
<properties>keep</properties>
|
||||
<repositories>remove</repositories>
|
||||
</pomElements>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>flatten-clean</id>
|
||||
<phase>clean</phase>
|
||||
<goals>
|
||||
<goal>clean</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
<distributionManagement>
|
||||
<downloadUrl>https://github.com/spring-cloud</downloadUrl>
|
||||
<site>
|
||||
@@ -83,6 +119,7 @@
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-gpg-plugin</artifactId>
|
||||
<version>1.6</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>sign-artifacts</id>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<parent>
|
||||
<groupId>org.springframework.cloud</groupId>
|
||||
<artifactId>spring-cloud-build</artifactId>
|
||||
<version>2.2.0.M4</version>
|
||||
<version>2.3.5.RELEASE</version>
|
||||
</parent>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
<suppress files=".*example.*" checks="(Javadoc*|HideUtility*)"/>
|
||||
<suppress files=".*integration-tests.*" checks="(Javadoc*|HideUtility*)"/>
|
||||
<suppress files="(.*Tests\.java|.*Tests\.groovy)" checks="Javadoc*"/>
|
||||
<suppress files=".*src.test.java.*" checks="Javadoc*"/>
|
||||
<suppress files="generated-sources" checks="[a-zA-Z0-9]*"/>
|
||||
<suppress files=".*target.*" checks="[a-zA-Z0-9]*"/>
|
||||
<suppress files=".*build.*" checks="[a-zA-Z0-9]*"/>
|
||||
|
||||
@@ -24,6 +24,6 @@
|
||||
<!-- Configure checker to run on files with these extensions -->
|
||||
<property name="fileExtensions" value=""/>
|
||||
<!-- For detailed checkstyle configuration, see https://github.com/spring-io/nohttp/tree/master/nohttp-checkstyle -->
|
||||
<module name="io.spring.nohttp.checkstyle.check.NoHttpCheck">
|
||||
</module>
|
||||
<!--<module name="io.spring.nohttp.checkstyle.check.NoHttpCheck">
|
||||
</module>-->
|
||||
</module>
|
||||
@@ -4,7 +4,7 @@
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.springframework.cloud</groupId>
|
||||
<version>2.2.0.M4</version>
|
||||
<version>2.3.5.RELEASE</version>
|
||||
<artifactId>spring-cloud-dependencies-parent</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<name>spring-cloud-dependencies-parent</name>
|
||||
@@ -130,9 +130,43 @@
|
||||
</distributionManagement>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>flatten-maven-plugin</artifactId>
|
||||
<inherited>true</inherited>
|
||||
<executions>
|
||||
<execution>
|
||||
<!-- Flatten and simplify our own POM for install/deploy -->
|
||||
<id>flatten</id>
|
||||
<phase>process-resources</phase>
|
||||
<goals>
|
||||
<goal>flatten</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<updatePomFile>true</updatePomFile>
|
||||
<flattenMode>bom</flattenMode>
|
||||
<pomElements>
|
||||
<parent>expand</parent>
|
||||
<pluginManagement>keep</pluginManagement>
|
||||
<properties>keep</properties>
|
||||
<repositories>remove</repositories>
|
||||
<profiles>keep</profiles>
|
||||
</pomElements>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>flatten-clean</id>
|
||||
<phase>clean</phase>
|
||||
<goals>
|
||||
<goal>clean</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-gpg-plugin</artifactId>
|
||||
<version>1.6</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>sign-artifacts</id>
|
||||
@@ -195,41 +229,6 @@
|
||||
</profile>
|
||||
</profiles>
|
||||
<build>
|
||||
<plugins>
|
||||
<!--<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>flatten-maven-plugin</artifactId>
|
||||
<version>1.0.0</version>
|
||||
<inherited>true</inherited>
|
||||
<configuration>
|
||||
<updatePomFile>true</updatePomFile>
|
||||
<flattenMode>oss</flattenMode>
|
||||
<pomElements>
|
||||
<parent>expand</parent>
|
||||
<distributionManagement>remove</distributionManagement>
|
||||
<repositories>remove</repositories>
|
||||
</pomElements>
|
||||
</configuration>
|
||||
<executions>
|
||||
<!– enable flattening –>
|
||||
<execution>
|
||||
<id>flatten</id>
|
||||
<phase>process-resources</phase>
|
||||
<goals>
|
||||
<goal>flatten</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
<!– ensure proper cleanup –>
|
||||
<execution>
|
||||
<id>flatten.clean</id>
|
||||
<phase>clean</phase>
|
||||
<goals>
|
||||
<goal>clean</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>-->
|
||||
</plugins>
|
||||
<pluginManagement>
|
||||
<plugins>
|
||||
<plugin>
|
||||
|
||||
Reference in New Issue
Block a user