Compare commits

...
Author SHA1 Message Date
buildmaster f8872365f7 Update SNAPSHOT to 3.0.0-M2 2020-05-29 18:11:25 +00:00
Marcin Grzejszczak 9f47b8e8c8 Fixed setting null as default value for config props 2020-05-28 13:18:23 +02:00
buildmaster 6b64579beb Bumping versions 2020-05-28 07:12:36 +00:00
Marcin Grzejszczak 61c967228a Fixed the root url link for docs 2020-05-27 09:22:02 +02:00
buildmaster 216681310e Bumping versions 2020-05-26 14:13:25 +00:00
Marcin Grzejszczak 355a18d5fa Fixed new lines in the config properties generation 2020-05-26 14:01:24 +02:00
Marcin Grzejszczak e2019664e2 Fixed improper packaging and config props parsing 2020-05-26 13:56:43 +02:00
Marcin Grzejszczak bdd2ae3ed3 Migrated the configprops parsing to Java due to constant issues with Groovy versions 2020-05-26 13:45:03 +02:00
Marcin Grzejszczak 95688d5c8e Don't generate a pom for uploaded zip with docs 2020-05-25 15:57:07 +02:00
Marcin Grzejszczak 59d1129b4b Fixed the way jar with sc-build-docs gets deployed 2020-05-25 15:18:30 +02:00
Marcin Grzejszczak 114b30af71 Removed unnecessary property setup in the plugin 2020-05-25 13:54:46 +02:00
Marcin Grzejszczak 25c19bbda1 Moved the phase property to the module 2020-05-25 13:52:13 +02:00
Marcin Grzejszczak c542d67ce7 Setting up repository for docs.spring.io migration 2020-05-25 13:40:42 +02:00
Marcin Grzejszczak a744025d26 Disabling docs zip publishing for all modules other than the docs module 2020-05-25 13:26:55 +02:00
Marcin Grzejszczak 2355cbdc6e Improved the way the zipped docs are pushed; fixes gh-166 2020-05-25 12:18:20 +02:00
buildmaster 4a5bbcd936 Bumping versions 2020-05-22 07:12:30 +00:00
spencergibb 501a33c65a Merge branch '2.3.x' 2020-05-21 16:20:09 -04:00
spencergibb bd26a5a184 Bumps boot to version to 2.3.0.BUILD-SNAPSHOT 2020-05-14 15:53:28 -04:00
spencergibb 2f1a258497 Merge branch '2.3.x' 2020-05-08 13:54:45 -04:00
Olga Maciaszek-Sharma 2417705160 Merge pull request #151 from spring-cloud/dependabot/maven/com.puppycrawl.tools-checkstyle-8.29
Bump checkstyle from 8.18 to 8.29
2020-04-23 18:01:21 +02:00
Olga Maciaszek-Sharma b6c617e7e4 Suppress javadoc check for files in test directory. 2020-04-23 16:54:41 +02:00
Spencer Gibb a3c351ebdb Merge branch '2.3.x' 2020-04-22 10:54:11 -04:00
buildmaster a2532c63b0 Bumping versions 2020-04-16 22:31:47 +00:00
buildmaster 8ad6ecd490 Bumping versions 2020-04-16 21:55:02 +00:00
Spencer Gibb ce18c35b9b Updates version to 3.0.0-SNAPSHOT 2020-04-16 17:51:18 -04:00
buildmaster e67ca1d250 Bumping versions 2020-04-16 20:59:34 +00:00
Spencer Gibb bb7f805da5 Updates version to 3.0.0-SNAPSHOT 2020-04-16 16:31:36 -04:00
buildmaster 3fcf51db80 Bumping versions 2020-04-07 07:12:50 +00:00
Ryan Baxter d27e082b86 Revert "Version changes for 3.0.0.M1 release"
This reverts commit d2c32c296f.
2020-04-06 10:43:35 -04:00
Ryan Baxter d2c32c296f Version changes for 3.0.0.M1 release 2020-04-06 10:41:30 -04:00
Marcin Grzejszczak cf97faac76 Downgraded Groovy to 2.5.10 2020-04-06 12:39:31 +02:00
Marcin Grzejszczak 7e0af58be1 Added missing ; at the end of type in the maven-deploy 2020-04-06 08:40:15 +02:00
buildmaster af64b39551 Bumping versions 2020-04-04 07:12:35 +00:00
Spencer Gibb cb4e0f2e1f Merge branch '2.3.x' 2020-04-03 10:25:24 -04:00
Marcin Grzejszczak 14829d4e67 Bumped Groovy for jdk14 to work 2020-04-02 14:38:23 +02:00
Marcin Grzejszczak c91c5d3146 Updated docs theme to github 2020-04-02 09:44:01 +02:00
Marcin Grzejszczak 62708fe5b0 Upgraded doc libraries 2020-04-01 18:42:16 +02:00
Marcin Grzejszczak 126d39dd11 Added one more prop for the .md5 extension to be added to that one instead of docs.deployed 2020-04-01 18:21:15 +02:00
Marcin Grzejszczak 21f60d469e Updated type with zip 2020-04-01 12:34:22 +02:00
Marcin Grzejszczak aa8e68f719 Describes how to attach the zip with docs 2020-04-01 10:18:50 +02:00
Marcin Grzejszczak 3b444ac772 Fixed the failure flag 2020-03-30 16:03:02 +02:00
Marcin Grzejszczak 57ee494b9d Fixed setup for failing on errors / warnings with javadocs 2020-03-30 09:57:13 +02:00
Marcin Grzejszczak 199c1405bf Externalized javadoc.failOnError 2020-03-30 08:40:54 +02:00
Marcin Grzejszczak 423db03218 Don't fail the build if there are no mutations 2020-03-27 10:42:48 +01:00
Marcin Grzejszczak c271a4eb9f Added pitest integration; fixes gh-154 (#155) 2020-03-26 13:41:00 +01:00
Olga Maciaszek-Sharma 6920b32ef7 Remove deprecated checkstyle property. 2020-02-07 13:52:28 +01:00
Dave Syer fb26806aa8 Update versions for checkstyle and puppy thing (#152)
Avoid nag by github security alert
2020-02-07 06:24:24 -05:00
dependabot[bot] d5a7b82b2a Bump checkstyle from 8.18 to 8.29
Bumps [checkstyle](https://github.com/checkstyle/checkstyle) from 8.18 to 8.29.
- [Release notes](https://github.com/checkstyle/checkstyle/releases)
- [Commits](https://github.com/checkstyle/checkstyle/compare/checkstyle-8.18...checkstyle-8.29)

Signed-off-by: dependabot[bot] <support@github.com>
2020-01-31 18:01:11 +00:00
buildmaster 7132df33e9 Bumping versions 2020-01-30 07:12:20 +00:00
Marcin Grzejszczak a12aafd666 Fixing Groovy 2020-01-29 21:23:30 +01:00
Marcin Grzejszczak 1e1a69d5e7 Merge branch '2.2.x' 2020-01-29 21:04:44 +01:00
buildmaster 2d6fba3980 Bumping versions 2020-01-21 17:56:12 +00:00
buildmaster b17c65538a Bumping versions 2020-01-21 07:12:29 +00:00
buildmaster 5c90e0fae5 Bumping versions 2020-01-20 13:08:57 +00:00
buildmaster 3ed6df3056 Bumping versions 2020-01-18 07:12:34 +00:00
Spencer Gibb e512de74b8 Updates to 3.0.0.BUILD-SNAPSHOT
Bumps boot to 2.3.0.BUILD-SNAPSHOT
2020-01-17 14:46:06 -05:00
13 changed files with 355 additions and 389 deletions
+52 -46
View File
@@ -235,12 +235,12 @@ In order to add it, add the `org.codehaus.mojo:flatten-maven-plugin` to your `po
[source,xml]
----
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>flatten-maven-plugin</artifactId>
</plugin>
</plugins>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>flatten-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
----
@@ -253,46 +253,54 @@ approach of generating documentation just add these plugins to your `docs` modul
[source,xml]
----
<properties>
<upload-docs-zip.phase>deploy</upload-docs-zip.phase> <8>
</properties>
<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>
<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>
<plugin>
<artifactId>maven-deploy-plugin</artifactId> <7>
</plugin>
</plugins>
</build>
</profile>
</profiles>
----
<2> This plugin downloads sets up all the git information of the project
<1> 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 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
<7> This plugin ensures that the generated zip docs will get published
<8> This property turns on the "deploy" phase for <7>
IMPORTANT: The order of plugin declaration is important!
@@ -337,10 +345,8 @@ Spring Cloud Build Docs comes with a set of attributes for asciidoctor that you
<project-version>${project.version}@</project-version>
<github-tag>${github-tag}@</github-tag>
<version-type>${version-type}@</version-type>
<!-- Once we go to docs.spring.io should be changed to -->
<!-- https://docs.spring.io/${docs.main}/${project.version} -->
<docs-url>${docs-url}@</docs-url>
<raw-docs-url>${raw-docs-url}@</raw-docs-url>
<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>
@@ -353,9 +359,9 @@ We assume that your project contains guides under the `guides` folder.
```
.
└── guides
├── gs-guide1
├── gs-guide2
└── gs-guide3
├── gs-guide1
├── gs-guide2
└── gs-guide3
```
This means that the project contains 3 guides that would
+12 -98
View File
@@ -10,20 +10,17 @@
<parent>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-build</artifactId>
<version>2.3.0.BUILD-SNAPSHOT</version>
<version>3.0.0-M2</version>
</parent>
<properties>
<docs.main>spring-cloud-build</docs.main>
<!-- Comma separated list of whitelisted branches -->
<docs.whitelisted.branches>2.1.x,2.2.x</docs.whitelisted.branches>
<main.basedir>${basedir}/..</main.basedir>
<gmavenplus-plugin.version>1.8.1</gmavenplus-plugin.version>
<groovy.version>2.5.10</groovy.version>
<!-- For the Groovy plugin -->
<groovyVersion>${groovy.version}</groovyVersion>
<!-- We don't want to downloaded sources of our own project-->
<maven-dependency-plugin-for-docs.phase>none</maven-dependency-plugin-for-docs.phase>
<docs.resources.dir>${project.basedir}/src/main/</docs.resources.dir>
<upload-docs-zip.phase>deploy</upload-docs-zip.phase>
</properties>
<dependencies>
<!-- Script -->
@@ -39,63 +36,8 @@
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>${groovy.version}</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy</artifactId>
<version>${groovy.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-xml</artifactId>
<version>${groovy.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-datetime</artifactId>
<version>${groovy.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-nio</artifactId>
<version>${groovy.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-json</artifactId>
<version>${groovy.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-jsr223</artifactId>
<version>${groovy.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-macro</artifactId>
<version>${groovy.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-sql</artifactId>
<version>${groovy.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-swing</artifactId>
<version>${groovy.version}</version>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<scope>compile</scope>
</dependency>
<dependency>
@@ -109,46 +51,11 @@
<resource>
<directory>src/main</directory>
<excludes>
<exclude>groovy/**/*.*</exclude>
<exclude>java/**/*.*</exclude>
</excludes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>${build-helper-maven-plugin.version}</version>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>src/main/groovy</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.gmavenplus</groupId>
<artifactId>gmavenplus-plugin</artifactId>
<version>${gmavenplus-plugin.version}</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>addSources</goal>
<goal>generateStubs</goal>
<goal>generateTestStubs</goal>
<goal>groovydoc-jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
@@ -184,6 +91,13 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<goals>
<goal>deploy</goal>
<goal>deploy-file</goal>
</goals>
</plugin>
</plugins>
</build>
</profile>
+51 -43
View File
@@ -51,12 +51,12 @@ In order to add it, add the `org.codehaus.mojo:flatten-maven-plugin` to your `po
[source,xml]
----
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>flatten-maven-plugin</artifactId>
</plugin>
</plugins>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>flatten-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
----
@@ -69,46 +69,54 @@ approach of generating documentation just add these plugins to your `docs` modul
[source,xml]
----
<properties>
<upload-docs-zip.phase>deploy</upload-docs-zip.phase> <8>
</properties>
<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>
<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>
<plugin>
<artifactId>maven-deploy-plugin</artifactId> <7>
</plugin>
</plugins>
</build>
</profile>
</profiles>
----
<2> This plugin downloads sets up all the git information of the project
<1> 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 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
<7> This plugin ensures that the generated zip docs will get published
<8> This property turns on the "deploy" phase for <7>
IMPORTANT: The order of plugin declaration is important!
@@ -130,9 +138,9 @@ We assume that your project contains guides under the `guides` folder.
```
.
└── guides
├── gs-guide1
├── gs-guide2
└── gs-guide3
├── gs-guide1
├── gs-guide2
└── gs-guide3
```
This means that the project contains 3 guides that would
@@ -152,4 +160,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`).
@@ -1,112 +0,0 @@
package org.springframework.cloud.internal
import java.util.regex.Pattern
import groovy.json.JsonSlurper
import groovy.transform.CompileStatic
import org.springframework.core.io.Resource
import org.springframework.core.io.support.PathMatchingResourcePatternResolver
/**
* @author Marcin Grzejszczak
*/
class Main {
@CompileStatic
static void main(String... args) {
String outputFile = args[0]
String inclusionPattern = args.length > 1 ? args[1] : ".*"
File parent = new File(outputFile).parentFile
if (!parent.exists()) {
println "No parent directory [${parent.toString()}] found. Won't generate the configuration properties file"
return
}
new Generator().generate(outputFile, inclusionPattern)
}
static class Generator {
void generate(String outputFile, String inclusionPattern) {
println "Parsing all configuration metadata"
Resource[] resources = getResources()
println "Found [${resources.length}] configuration metadata jsons"
TreeSet names = new TreeSet()
def descriptions = [:]
int count = 0
int matchingPropertyCount = 0
int propertyCount = 0
Pattern pattern = Pattern.compile(inclusionPattern)
resources.each { Resource resource ->
if (resourceNameContainsPattern(resource)) {
count++
def slurper = new JsonSlurper()
slurper.parseText(resource.inputStream.text).properties.each { val ->
propertyCount++
if (!pattern.matcher(val.name).matches()) {
return
}
matchingPropertyCount++
names.add val.name
descriptions[val.name] = new ConfigValue(val.name, val.description, val.defaultValue)
}
}
}
println "Found [${count}] Cloud projects configuration metadata jsons. [${matchingPropertyCount}/${propertyCount}] were matching the pattern [${inclusionPattern}]"
println "Successfully built the description table"
if (names.empty) {
println("Will not update the table, since no configuration properties were found!")
return
}
new File(outputFile).text = """\
|===
|Name | Default | Description
${names.collect { it -> return descriptions[it] }.join("\n")}
|===
"""
println "Successfully stored the output file"
}
protected boolean resourceNameContainsPattern(Resource resource) {
try {
return resource.getURL().toString().contains("cloud")
}
catch (Exception e) {
println("Exception [${e}] for resource [${resource}] occurred while trying to retrieve its URL")
return false
}
}
protected Resource[] getResources() {
return new PathMatchingResourcePatternResolver()
.getResources("classpath*:/META-INF/spring-configuration-metadata.json")
}
}
@CompileStatic
static class ConfigValue {
String name
String description
Object defaultValue
ConfigValue() {}
ConfigValue(String name, String 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('\\|', '\\\\|') : ''
}
String toString() {
"|${name} | ${defaultValue} | ${description}"
}
}
}
@@ -0,0 +1,135 @@
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;
/**
* @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;
}
String description = String.valueOf(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 Object defaultValue;
ConfigValue() {
}
ConfigValue(String name, String 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 + " | " + defaultValue + " | " + description;
}
}
}
@@ -23,6 +23,9 @@
<profiles>
<profile>
<id>docs</id>
<properties>
<upload-docs-zip.phase>deploy</upload-docs-zip.phase>
</properties>
<build>
<plugins>
<plugin>
@@ -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.2.BUILD-SNAPSHOT</version>
<version>3.0.0-SNAPSHOT</version>
<packaging>pom</packaging>
<parent>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-build</artifactId>
<version>2.2.2.BUILD-SNAPSHOT</version>
<version>3.0.0-SNAPSHOT</version>
<relativePath/>
</parent>
<scm>
@@ -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.2.BUILD-SNAPSHOT</version>
<version>3.0.0-SNAPSHOT</version>
<parent>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-build</artifactId>
<version>2.2.2.BUILD-SNAPSHOT</version>
<version>3.0.0-SNAPSHOT</version>
<relativePath />
</parent>
+95 -78
View File
@@ -5,7 +5,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-build</artifactId>
<version>2.3.0.BUILD-SNAPSHOT</version>
<version>3.0.0-M2</version>
<packaging>pom</packaging>
<name>Spring Cloud Parent</name>
<description>Spring Cloud parent pom, managing plugins and dependencies for Spring
@@ -29,11 +29,11 @@
<main.basedir>${basedir}</main.basedir>
<docs.main>${project.artifactId}</docs.main>
<spring-boot.version>2.3.0.RELEASE</spring-boot.version>
<spring-cloud-build.version>2.3.0.BUILD-SNAPSHOT</spring-cloud-build.version>
<spring-cloud-build.version>3.0.0-M2</spring-cloud-build.version>
<docs.resources.dir>${project.build.directory}/build-docs</docs.resources.dir>
<refdocs.build.directory>${project.build.directory}/refdocs/</refdocs.build.directory>
<spring-doc-resources.version>0.2.1.RELEASE</spring-doc-resources.version>
<spring-asciidoctor-extensions.version>0.1.3.RELEASE
<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>
@@ -55,7 +55,7 @@
<maven-eclipse-plugin.version>2.10</maven-eclipse-plugin.version>
<!-- for backwards compatibility, use maven-checkstyle-plugin.version -->
<checkstyle.version>${maven-checkstyle-plugin.version}</checkstyle.version>
<puppycrawl-tools-checkstyle.version>8.18</puppycrawl-tools-checkstyle.version>
<puppycrawl-tools-checkstyle.version>8.29</puppycrawl-tools-checkstyle.version>
<spring-javaformat.version>0.0.9</spring-javaformat.version>
<maven-failsafe-plugin.version>2.22.1</maven-failsafe-plugin.version>
<maven-javadoc-plugin.version>3.1.0</maven-javadoc-plugin.version>
@@ -76,7 +76,9 @@
<artifactory-maven-plugin.version>2.2.1</artifactory-maven-plugin.version>
<license-maven-plugin.version>1.16</license-maven-plugin.version>
<spring-javaformat-checkstyle.version>0.0.7</spring-javaformat-checkstyle.version>
<maven-checkstyle-plugin.version>3.0.0</maven-checkstyle-plugin.version>
<maven-checkstyle-plugin.version>3.1.0</maven-checkstyle-plugin.version>
<pitest-maven.version>1.5.0</pitest-maven.version>
<pitest-junit5-plugin.version>0.12</pitest-junit5-plugin.version>
<disable.checks>false</disable.checks>
<maven-checkstyle-plugin.failsOnError>true</maven-checkstyle-plugin.failsOnError>
<maven-checkstyle-plugin.failOnViolation>true
@@ -105,6 +107,12 @@
<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>
<javadoc.failOnError>false</javadoc.failOnError>
<javadoc.failOnWarnings>false</javadoc.failOnWarnings>
<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>
</properties>
<dependencyManagement>
<dependencies>
@@ -238,9 +246,8 @@
</execution>
</executions>
<configuration>
<!-- TODO: We need to patch the javadocs instead of disabling this -->
<failOnError>false</failOnError>
<quiet>true</quiet>
<failOnError>${javadoc.failOnError}</failOnError>
<failOnWarnings>${javadoc.failOnWarnings}</failOnWarnings>
</configuration>
</plugin>
<plugin>
@@ -437,7 +444,6 @@
checkstyle.additional.suppressions.file=${checkstyle.additional.suppressions.file}
</propertyExpansion>
<consoleOutput>true</consoleOutput>
<!-- TODO: Start fixing the errors -->
<includeTestSourceDirectory>
${maven-checkstyle-plugin.includeTestSourceDirectory}
</includeTestSourceDirectory>
@@ -752,6 +758,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>
@@ -785,6 +794,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>
@@ -1107,8 +1119,8 @@
<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>
<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>
@@ -1135,13 +1147,14 @@
<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>
@@ -1169,13 +1182,14 @@
<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>
@@ -1329,68 +1343,11 @@
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"/>
<or>
<equals arg1="${git.branch}" arg2="master"/>
<equals arg1="${git.branch}" arg2="origin/master"/>
</or>
</and>
</condition>
<condition property="docs-url"
value="https://cloud.spring.io/${docs.main}/${git.branch}">
<and>
<equals arg1="${version-type}" arg2="SNAPSHOT"/>
<not>
<or>
<equals arg1="${git.branch}" arg2="master"/>
<equals arg1="${git.branch}" arg2="origin/master"/>
</or>
</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>
@@ -1417,6 +1374,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>
@@ -1498,5 +1478,42 @@
<checkstyle.skip>true</checkstyle.skip>
</properties>
</profile>
<profile>
<id>mutation</id>
<build>
<plugins>
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>${pitest-maven.version}</version>
<configuration>
<!-- generate line coverage -->
<exportLineCoverage>true</exportLineCoverage>
<!-- in the "right" format -->
<outputFormats><value>XML</value></outputFormats>
<!-- and write reports where report-aggregate-module expects to find it -->
<timestampedReports>false</timestampedReports>
<!-- There are modules that don't have tests -->
<failWhenNoMutations>false</failWhenNoMutations>
</configuration>
<executions>
<execution>
<id>mutationCoverage</id>
<goals>
<goal>mutationCoverage</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.pitest</groupId>
<artifactId>pitest-junit5-plugin</artifactId>
<version>${pitest-junit5-plugin.version}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>
+1 -1
View File
@@ -5,7 +5,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-build-dependencies</artifactId>
<version>2.3.0.BUILD-SNAPSHOT</version>
<version>3.0.0-M2</version>
<name>spring-cloud-build-dependencies</name>
<packaging>pom</packaging>
<description>Spring Cloud Build Dependencies: an internal BOM for use with Spring
+1 -1
View File
@@ -10,7 +10,7 @@
<parent>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-build</artifactId>
<version>2.3.0.BUILD-SNAPSHOT</version>
<version>3.0.0-M2</version>
</parent>
<dependencies>
<dependency>
@@ -122,11 +122,6 @@
<property name="excludeScope" value="package"/>
<property name="authorFormat" value=".+\s.+"/>
</module>
<module name="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocMethodCheck">
<property name="scope" value="public"/>
<property name="excludeScope" value="package"/>
<property name="allowMissingJavadoc" value="true"/>
</module>
<module name="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocVariableCheck">
<property name="scope" value="public"/>
</module>
+1 -1
View File
@@ -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.3.0.BUILD-SNAPSHOT</version>
<version>3.0.0-M2</version>
<artifactId>spring-cloud-dependencies-parent</artifactId>
<packaging>pom</packaging>
<name>spring-cloud-dependencies-parent</name>