This is an automated email from the ASF dual-hosted git repository.
jamesbognar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/juneau.git
The following commit(s) were added to refs/heads/master by this push:
new 3d77770 Javadocs
3d77770 is described below
commit 3d777700bbeba4a1bc31794f74719727e8b9e95b
Author: JamesBognar <[email protected]>
AuthorDate: Fri May 15 09:33:26 2020 -0400
Javadocs
---
.../main/ConfigurablePropertyCodeGenerator.java | 55 +++++++++++++++-------
.../juneau/rest/client2/RestClientBuilder.java | 37 +++++++++------
2 files changed, 60 insertions(+), 32 deletions(-)
diff --git
a/juneau-releng/juneau-all/src/java/main/ConfigurablePropertyCodeGenerator.java
b/juneau-releng/juneau-all/src/java/main/ConfigurablePropertyCodeGenerator.java
index 24ae0ab..c6b85a7 100644
---
a/juneau-releng/juneau-all/src/java/main/ConfigurablePropertyCodeGenerator.java
+++
b/juneau-releng/juneau-all/src/java/main/ConfigurablePropertyCodeGenerator.java
@@ -182,6 +182,21 @@ public class ConfigurablePropertyCodeGenerator {
System.err.println("Processing " + f.getName());
String s = IOUtils.read(f);
+ int i1 = s.indexOf("<CONFIGURATION-PROPERTIES>"), i2 =
s.indexOf("</CONFIGURATION-PROPERTIES>");
+ String cpSection = null;
+ if (i1 != -1 && i2 != -1) {
+ cpSection = s.substring(i1+26, i2);
+ } else {
+ System.err.println("...skipped " + f.getName());
+ continue;
+ }
+
+ Map<String,String> docs =
Stream.of(cpSection.split("[\n]{2,}"))
+ .map(x -> x.trim())
+ .filter(x -> x.startsWith("/*"))
+ .map(x -> x.split("(?s)\\*\\/.*public"))
+ .collect(Collectors.toMap(x ->
("\n\tpublic"+x[1].substring(0, x[1].indexOf("\n"))), x -> ("\t"+x[0]+"*/\n")));
+
StringBuilder sb = new StringBuilder();
for (ClassInfo pc :
ClassInfo.of(c).getParentsParentFirst()) {
Class<?> pcc = pc.inner();
@@ -190,8 +205,26 @@ public class ConfigurablePropertyCodeGenerator {
if (ms != null) {
for (Method m : ms) {
+ StringBuilder sigLine =
new StringBuilder();
+
sigLine.append("\n\tpublic ");
+ if
(m.getTypeParameters().length > 0)
+
sigLine.append("<").append(Arrays.asList(m.getTypeParameters()).stream().map(x
-> x.getName()).collect(Collectors.joining(", "))).append("> ");
+
sigLine.append(c.getSimpleName()).append("
").append(m.getName()).append("(").append(getArgs(m)).append(") ");
+ if (
m.getExceptionTypes().length > 0)
+
sigLine.append("throws
").append(Arrays.asList(m.getExceptionTypes()).stream().map(x ->
x.getSimpleName()).collect(Collectors.joining(", ")));
+ sigLine.append("{");
+ String sigLine2 =
sigLine.toString();
+
+ sb.append("\n\n");
+
+ // Overridden javadocs
+ String javadoc =
docs.get(sigLine2);
+ if (javadoc != null) {
+
sb.append(javadoc);
+ }
+
// Line 1
- sb.append("\n\n\t")
+ sb.append("\t")
.append(m.getAnnotation(Deprecated.class) == null ? "" : "@Deprecated ")
.append("@Override /* GENERATED - ").append(pcc.getSimpleName()).append(" */")
;
@@ -206,18 +239,13 @@ public class ConfigurablePropertyCodeGenerator {
}
// Line 2
- sb.append("\n\tpublic
");
- if
(m.getTypeParameters().length > 0)
-
sb.append("<").append(Arrays.asList(m.getTypeParameters()).stream().map(x ->
x.getName()).collect(Collectors.joining(", "))).append("> ");
-
sb.append(c.getSimpleName()).append("
").append(m.getName()).append("(").append(getArgs(m)).append(") ");
- if (
m.getExceptionTypes().length > 0)
-
sb.append("throws ").append(Arrays.asList(m.getExceptionTypes()).stream().map(x
-> x.getSimpleName()).collect(Collectors.joining(", ")));
- sb.append("{");
+ sb.append(sigLine2);
// Body
sb.append("\n\t\tsuper.").append(m.getName()).append("(").append(getArgVals(m)).append(");");
sb.append("\n\t\treturn
this;");
sb.append("\n\t}");
+
}
} else if (pc.isAny(Throwable.class,
RuntimeException.class, Exception.class)) {
// Ignore
@@ -227,15 +255,8 @@ public class ConfigurablePropertyCodeGenerator {
}
}
- int i1 = s.indexOf("<CONFIGURATION-PROPERTIES>"), i2 =
s.indexOf("</CONFIGURATION-PROPERTIES>");
- if (i1 != -1 && i2 != -1) {
- s = s.substring(0, i1+26) + sb.toString() +
"\n\n\t// " + s.substring(i2);
- //System.err.println(s);
- //throw new RuntimeException();
- IOUtils.write(f, new StringReader(s));
- } else {
- System.err.println("...skipped " + f.getName());
- }
+ s = s.substring(0, i1+26) + sb.toString() + "\n\n\t// "
+ s.substring(i2);
+ IOUtils.write(f, new StringReader(s));
}
System.err.println("DONE");
diff --git
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClientBuilder.java
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClientBuilder.java
index e8361dd..a5a0352 100644
---
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClientBuilder.java
+++
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClientBuilder.java
@@ -2995,6 +2995,11 @@ public class RestClientBuilder extends
BeanContextBuilder {
* <br>In general, unchecked recursions cause stack-overflow-errors.
* <br>These show up as {@link BeanRecursionException
BeanRecursionException} with the message <js>"Depth too deep. Stack overflow
occurred."</js>.
*
+ * <ul class='notes'>
+ * <li>
+ * Checking for recursion can cause a small performance
penalty.
+ * </ul>
+ *
* <h5 class='section'>Example:</h5>
* <p class='bcode w800'>
* <jc>// Create a JSON client that automatically checks for
recursions.</jc>
@@ -3021,11 +3026,6 @@ public class RestClientBuilder extends
BeanContextBuilder {
* }
* </p>
*
- * <ul class='notes'>
- * <li>
- * Checking for recursion can cause a small performance
penalty.
- * </ul>
- *
* <ul class='seealso'>
* <li class='jf'>{@link
BeanTraverseContext#BEANTRAVERSE_detectRecursions}
* </ul>
@@ -3074,7 +3074,7 @@ public class RestClientBuilder extends BeanContextBuilder
{
*
* <jc>// Produces request body "{f:null}"</jc>
* client
- * .doPost(<js>"http://localhost:10000/foo"</js>, m)
+ * .doPost(<js>"http://localhost:10000/foo"</js>, a)
* .complete();
* </p>
*
@@ -3108,6 +3108,11 @@ public class RestClientBuilder extends
BeanContextBuilder {
* .initialDepth(2)
* .build();
*
+ * <jc>// Our bean to serialize.</jc>
+ * <jk>public class</jk> MyBean {
+ * <jk>public</jk> String <jf>foo</jf> = <jk>null</jk>;
+ * }
+ *
* <jc>// Produces request body
"\t\t{\n\t\t\t'foo':'bar'\n\t\t}\n"</jc>
* client
* .doPost(<js>"http://localhost:10000/foo"</js>,
<jk>new</jk> MyBean())
@@ -3196,14 +3201,14 @@ public class RestClientBuilder extends
BeanContextBuilder {
* .addBeanTypes()
* .build();
*
- * <jc>// A map of objects we want to serialize.</jc>
+ * <jc>// Our map of beans to serialize.</jc>
* <ja>@Bean</ja>(typeName=<js>"mybean"</js>)
- * <jk>public class</jk> MyBean {...}
- *
- * Map<String,Object> m = new HashMap<>();
- * m.put(<js>"foo"</js>, <jk>new</jk> MyBean());
+ * <jk>public class</jk> MyBean {
+ * <jk>public</jk> String <jf>foo</jf> = <js>"bar"</js>;
+ * }
+ * OMap map = OMap.of(<js>"foo"</js>, <jk>new</jk> MyBean());
*
- * <jc>// Request body will contain '_type' attribute.</jc>
+ * <jc>// Request body will contain
{"foo":{"_type":"mybean","foo":"bar"}}.</jc>
* client
* .doPost(<js>"http://localhost:10000/foo"</js>, m)
* .complete();
@@ -3250,11 +3255,13 @@ public class RestClientBuilder extends
BeanContextBuilder {
* .addRootType()
* .build();
*
- * <jc>// The bean we want to serialize.</jc>
+ * <jc>// Our bean to serialize.</jc>
* <ja>@Bean</ja>(typeName=<js>"mybean"</js>)
- * <jk>public class</jk> MyBean {...}
+ * <jk>public class</jk> MyBean {
+ * <jk>public</jk> String <jf>foo</jf> = <js>"bar"</js>;
+ * }
*
- * <jc>// Request body will contain '_type' attribute.</jc>
+ * <jc>// Request body will contain
{"_type":"mybean","foo":"bar"}.</jc>
* client
* .doPost(<js>"http://localhost:10000/foo"</js>, m)
* .complete();