MEECROWAVE-186 fix gradle plugin name and doc

git-svn-id: https://svn.apache.org/repos/asf/openwebbeans/meecrowave/trunk@1855375 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/meecrowave-doc/src/main/java/org/apache/meecrowave/doc/JBake.java b/meecrowave-doc/src/main/java/org/apache/meecrowave/doc/JBake.java
index 27703e1..7dd8328 100755
--- a/meecrowave-doc/src/main/java/org/apache/meecrowave/doc/JBake.java
+++ b/meecrowave-doc/src/main/java/org/apache/meecrowave/doc/JBake.java
@@ -49,6 +49,7 @@
 import org.apache.meecrowave.doc.generator.CliConfiguration;

 import org.apache.meecrowave.doc.generator.Configuration;

 import org.apache.meecrowave.doc.generator.Downloads;

+import org.apache.meecrowave.doc.generator.GradleConfiguration;

 import org.apache.meecrowave.doc.generator.LetsEncryptConfiguration;

 import org.apache.meecrowave.doc.generator.MavenConfiguration;

 import org.apache.meecrowave.doc.generator.OAuth2Configuration;

@@ -81,6 +82,7 @@
         new MavenConfiguration().run();

         new OAuth2Configuration().run();

         new LetsEncryptConfiguration().run();

+        new GradleConfiguration().run();

 

         if (updateDownloads) {

             final ByteArrayOutputStream tableContent = new ByteArrayOutputStream();

diff --git a/meecrowave-doc/src/main/java/org/apache/meecrowave/doc/generator/GradleConfiguration.java b/meecrowave-doc/src/main/java/org/apache/meecrowave/doc/generator/GradleConfiguration.java
new file mode 100644
index 0000000..c195f75
--- /dev/null
+++ b/meecrowave-doc/src/main/java/org/apache/meecrowave/doc/generator/GradleConfiguration.java
@@ -0,0 +1,70 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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
+ *
+ * http://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.apache.meecrowave.doc.generator;
+
+import static java.util.Comparator.comparing;
+import static java.util.stream.Collectors.joining;
+
+import java.lang.reflect.Field;
+import java.util.stream.Stream;
+
+import org.apache.meecrowave.Meecrowave;
+import org.apache.meecrowave.gradle.MeecrowaveExtension;
+import org.apache.meecrowave.runner.cli.CliOption;
+
+public class GradleConfiguration extends BaseGenerator {
+    private final MeecrowaveExtension defaults = new MeecrowaveExtension();
+
+    @Override
+    protected String generate() {
+        return super.tableConfig() + "|===\n|Name|Default|Description\n" +
+                Stream.of(MeecrowaveExtension.class.getDeclaredFields())
+                    .sorted(comparing(Field::getName))
+                    .map(this::toLine)
+                    .collect(joining("\n")) + "\n|===\n";
+    }
+
+    private String toLine(final Field opt) {
+        opt.setAccessible(true);
+        try {
+            return '|' + opt.getName() + '|' + opt.get(defaults) + '|' + findDescription(opt.getName());
+        } catch (final IllegalAccessException e) {
+            throw new IllegalStateException(e);
+        }
+    }
+
+    private String findDescription(final String opt) {
+        switch (opt) {
+            case "skipMavenCentral":
+                return "Don't add to repositories `mavenCentral()`";
+            case "context":
+                return "Default context name";
+            case "webapp":
+                return "Webapp to deploy";
+            case "skip":
+                return "Should the extension be skipped completely";
+            default:
+                try {
+                    return Meecrowave.Builder.class.getDeclaredField(opt).getAnnotation(CliOption.class).description();
+                } catch (final NoSuchFieldException e) {
+                    throw new IllegalArgumentException("option " + opt + " not found");
+                }
+        }
+    }
+}
diff --git a/meecrowave-doc/src/main/jbake/content/meecrowave-gradle/index.adoc b/meecrowave-doc/src/main/jbake/content/meecrowave-gradle/index.adoc
index 206faa9..3c97cf1 100755
--- a/meecrowave-doc/src/main/jbake/content/meecrowave-gradle/index.adoc
+++ b/meecrowave-doc/src/main/jbake/content/meecrowave-gradle/index.adoc
@@ -22,7 +22,7 @@
 version '1.0-SNAPSHOT'
 
 apply plugin: 'java'
-apply plugin: 'org.apache.meecrowave.meecrowave'
+apply plugin: 'org.apache.meecrowave'
 
 meecrowave {
     httpPort = 9090
@@ -31,4 +31,9 @@
 
 ----
 
-More coming soon, for now use gradle IDE integration or configuration documentation please.
+IMPORTANT: until version `1.2.7` the plugin id was `org.apache.microwave.microwave` so you had to use `apply plugin: 'org.apache.microwave.microwave'`.
+Alternatively you can use plugin class: `apply plugin: org.apache.meecrowave.gradle.MeecrowavePlugin`.
+
+== Configuration
+
+include::../../../../../target/generated-doc/GradleConfiguration.adoc[]