diff --git a/docs/pom.xml b/docs/pom.xml
index 8095c903..45bca305 100644
--- a/docs/pom.xml
+++ b/docs/pom.xml
@@ -17,10 +17,6 @@
2.1.x,2.2.x
${basedir}/..
- 1.8.1
- 2.5.10
-
- ${groovy.version}
none
${project.basedir}/src/main/
@@ -40,143 +36,10 @@
compile
- org.codehaus.groovy
- groovy-all
- ${groovy.version}
- pom
-
-
- org.codehaus.groovy
- groovy
- ${groovy.version}
+ com.fasterxml.jackson.core
+ jackson-databind
compile
-
- org.codehaus.groovy
- groovy-xml
- ${groovy.version}
- compile
-
-
- org.codehaus.groovy
- groovy-datetime
- ${groovy.version}
- compile
-
-
- org.codehaus.groovy
- groovy-nio
- ${groovy.version}
- compile
-
-
- org.codehaus.groovy
- groovy-json
- ${groovy.version}
- compile
-
-
- org.codehaus.groovy
- groovy-jsr223
- ${groovy.version}
- compile
-
-
- org.codehaus.groovy
- groovy-macro
- ${groovy.version}
- compile
-
-
- org.codehaus.groovy
- groovy-sql
- ${groovy.version}
- compile
-
-
- org.codehaus.groovy
- groovy-swing
- ${groovy.version}
- compile
-
-
- org.codehaus.groovy
- groovy-cli-picocli
- ${groovy.version}
- compile
-
-
- org.codehaus.groovy
- groovy-ant
- ${groovy.version}
- compile
-
-
-
- org.codehaus.groovy
- groovy-console
- ${groovy.version}
- compile
-
-
- org.codehaus.groovy
- groovy-docgenerator
- ${groovy.version}
- compile
-
-
- org.codehaus.groovy
- groovy-groovydoc
- ${groovy.version}
- compile
-
-
- org.codehaus.groovy
- groovy-groovysh
- ${groovy.version}
- compile
-
-
- org.codehaus.groovy
- groovy-jmx
- ${groovy.version}
- compile
-
-
- org.codehaus.groovy
- groovy-servlet
- ${groovy.version}
- compile
-
-
- org.codehaus.groovy
- groovy-templates
- ${groovy.version}
- compile
-
-
- org.codehaus.groovy
- groovy-test
- ${groovy.version}
- test
-
-
- org.codehaus.groovy
- groovy-test-junit5
- ${groovy.version}
- test
-
-
- org.codehaus.groovy
- groovy-testng
- ${groovy.version}
- test
-
org.springframework.boot
spring-boot-starter-test
@@ -184,60 +47,7 @@
-
-
- src/main
-
- groovy/**/*.*
-
-
-
-
- org.codehaus.mojo
- build-helper-maven-plugin
- ${build-helper-maven-plugin.version}
-
-
- add-source
- generate-sources
-
- add-source
-
-
-
- src/main/groovy
-
-
-
-
-
-
- org.codehaus.gmavenplus
- gmavenplus-plugin
- ${gmavenplus-plugin.version}
-
-
-
- compile
- addSources
- generateStubs
- generateTestStubs
- groovydoc-jar
-
-
-
-
-
- org.codehaus.groovy
- groovy-all
-
- ${groovy.version}
- runtime
- pom
-
-
-
maven-deploy-plugin
2.8.2
diff --git a/docs/src/main/groovy/org/springframework/cloud/internal/Main.groovy b/docs/src/main/groovy/org/springframework/cloud/internal/Main.groovy
deleted file mode 100644
index 7b07ffb4..00000000
--- a/docs/src/main/groovy/org/springframework/cloud/internal/Main.groovy
+++ /dev/null
@@ -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}"
- }
- }
-}
diff --git a/docs/src/main/java/org/springframework/cloud/internal/Main.java b/docs/src/main/java/org/springframework/cloud/internal/Main.java
new file mode 100644
index 00000000..bbbad590
--- /dev/null
+++ b/docs/src/main/java/org/springframework/cloud/internal/Main.java
@@ -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 {
+
+ 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 names = new TreeSet<>();
+ Map 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 response = new ObjectMapper().readValue(bytes, HashMap.class);
+ List