[juneau] branch master updated: Swagger UI enhancements.

2018-04-15 Thread jamesbognar
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 b1d8df4  Swagger UI enhancements.
b1d8df4 is described below

commit b1d8df48176cddbdf7d2a92bf454e0589af92cfa
Author: JamesBognar 
AuthorDate: Sun Apr 15 14:27:11 2018 -0400

Swagger UI enhancements.
---
 .../apache/juneau/jena/RdfBeanPropertyMeta.java|  16 +-
 .../org/apache/juneau/jena/RdfParserSession.java   |   7 +-
 .../apache/juneau/jena/RdfSerializerSession.java   |  67 ++--
 .../apache/juneau/html/HtmlBeanPropertyMeta.java   |  33 ++
 .../java/org/apache/juneau/html/HtmlClassMeta.java |  18 +
 .../apache/juneau/html/HtmlSerializerSession.java  |  90 +++--
 .../java/org/apache/juneau/html/HtmlWriter.java|   2 +-
 .../org/apache/juneau/html/annotation/Html.java|   1 -
 .../apache/juneau/html/annotation/HtmlFormat.java  |  12 +
 .../java/org/apache/juneau/internal/AsciiSet.java  |  12 +
 .../org/apache/juneau/internal/ObjectUtils.java|   3 +-
 .../org/apache/juneau/internal/StringUtils.java|  84 -
 .../jsonschema/JsonSchemaBeanPropertyMeta.java |  13 +
 .../org/apache/juneau/xml/XmlBeanPropertyMeta.java |   9 +
 .../apache/juneau/xml/XmlSerializerSession.java|  44 ++-
 .../main/java/org/apache/juneau/xml/XmlUtils.java  |   2 +-
 .../xmlschema/XmlSchemaSerializerSession.java  |   4 +-
 juneau-doc/src/main/javadoc/overview.html  |  26 +-
 juneau-examples/juneau-examples-rest/examples.cfg  |  15 +-
 .../juneau/examples/rest/JsonSchemaResource.java   |  22 +-
 .../apache/juneau/examples/rest/RootResources.java |   1 -
 .../juneau/examples/rest/SqlQueryResource.java |  34 +-
 .../juneau/examples/rest/StaticFilesResource.java  |  83 
 .../juneau/examples/rest/TempDirResource.java  |   9 +-
 .../examples/rest/UrlEncodedFormResource.java  |  13 +-
 .../src/main/resources/examples.cfg| 147 
 .../examples/rest/JsonSchemaResource_example.json  |  50 ++-
 .../examples/rest/TestMultiPartFormPostsTest.java  |   2 +-
 .../microservice/resources/ConfigResource.java | 233 ++--
 .../microservice/resources/DirectoryResource.java  | 293 +++---
 .../microservice/resources/LogsResource.java   | 420 +++--
 .../my-microservice.cfg|  16 +-
 .../apache/juneau/rest/BasicRestInfoProvider.java  |   4 +-
 33 files changed, 926 insertions(+), 859 deletions(-)

diff --git 
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfBeanPropertyMeta.java
 
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfBeanPropertyMeta.java
index dd1de16..d1054de 100644
--- 
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfBeanPropertyMeta.java
+++ 
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfBeanPropertyMeta.java
@@ -12,8 +12,6 @@
 // 
***
 package org.apache.juneau.jena;
 
-import static org.apache.juneau.jena.RdfCollectionFormat.*;
-
 import java.util.*;
 
 import org.apache.juneau.*;
@@ -26,7 +24,13 @@ import org.apache.juneau.xml.*;
  */
 public class RdfBeanPropertyMeta extends BeanPropertyMetaExtended {
 
-   private RdfCollectionFormat collectionFormat = DEFAULT;
+   /**
+* Default instance.
+*/
+   public static final RdfBeanPropertyMeta DEFAULT = new 
RdfBeanPropertyMeta();
+
+   
+   private RdfCollectionFormat collectionFormat = 
RdfCollectionFormat.DEFAULT;
private Namespace namespace = null;
private boolean isBeanUri;
 
@@ -42,7 +46,7 @@ public class RdfBeanPropertyMeta extends 
BeanPropertyMetaExtended {
List schemas = bpm.findAnnotations(RdfSchema.class);
 
for (Rdf rdf : rdfs) {
-   if (collectionFormat == DEFAULT)
+   if (collectionFormat == RdfCollectionFormat.DEFAULT)
collectionFormat = rdf.collectionFormat();
if (rdf.beanUri())
isBeanUri = true;
@@ -50,6 +54,10 @@ public class RdfBeanPropertyMeta extends 
BeanPropertyMetaExtended {
 
namespace = RdfUtils.findNamespace(rdfs, schemas);
}
+   
+   private RdfBeanPropertyMeta() {
+   super(null);
+   }
 
/**
 * Returns the RDF collection format of this property from the {@link 
Rdf#collectionFormat} annotation on this bean 
diff --git 
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserSession.java
 
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserSession.java
index 3eff76c..5387a91 100644
--- 
a/juneau-core/juneau-marshall-rdf/src/main/

[juneau] branch master updated: Swagger UI enhancements.

2018-04-14 Thread jamesbognar
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 a75b7f9  Swagger UI enhancements.
a75b7f9 is described below

commit a75b7f976eb12a18dd928f440caeed9175e21203
Author: JamesBognar 
AuthorDate: Sat Apr 14 15:33:51 2018 -0400

Swagger UI enhancements.
---
 .../org/apache/juneau/config/vars/ConfigVar.java   |   2 +-
 .../org/apache/juneau/dto/swagger/ui/SwaggerUI.css |   1 +
 .../src/main/java/org/apache/juneau/ClassMeta.java |   6 ++
 .../org/apache/juneau/svl/VarResolverSession.java  |   5 +-
 juneau-doc/src/main/javadoc/overview.html  |   2 +-
 .../files/htdocs/styles/SwaggerUI.css  |   1 +
 .../juneau/examples/rest/AtomFeedResource.java |  23 ++--
 .../examples/rest/AtomFeedResource_example.json| 116 +
 .../files/htdocs/styles/SwaggerUI.css  |   1 +
 .../apache/juneau/rest/BasicRestInfoProvider.java  |   8 +-
 .../org/apache/juneau/rest/RestContextBuilder.java |   5 +-
 .../java/org/apache/juneau/rest/vars/FileVar.java  |  16 ++-
 .../apache/juneau/rest/vars/LocalizationVar.java   |   2 +-
 .../juneau/rest/vars/RequestAttributeVar.java  |   2 +-
 .../juneau/rest/vars/RequestFormDataVar.java   |   2 +-
 .../apache/juneau/rest/vars/RequestHeaderVar.java  |   2 +-
 .../apache/juneau/rest/vars/RequestPathVar.java|   2 +-
 .../apache/juneau/rest/vars/RequestQueryVar.java   |   2 +-
 .../org/apache/juneau/rest/vars/RequestVar.java|   2 +-
 .../org/apache/juneau/rest/vars/RestInfoVar.java   |   2 +-
 .../juneau/rest/vars/SerializedRequestAttrVar.java |   2 +-
 .../juneau/rest/vars/ServletInitParamVar.java  |   2 +-
 .../java/org/apache/juneau/rest/vars/UrlVar.java   |   2 +-
 .../org/apache/juneau/rest/vars/WidgetVar.java |   2 +-
 24 files changed, 135 insertions(+), 75 deletions(-)

diff --git 
a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/vars/ConfigVar.java
 
b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/vars/ConfigVar.java
index f6eebc8..c7e0829 100644
--- 
a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/vars/ConfigVar.java
+++ 
b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/vars/ConfigVar.java
@@ -68,6 +68,6 @@ public class ConfigVar extends DefaultingVar {
 
@Override /* Var */
public String resolve(VarResolverSession session, String key) {
-   return session.getSessionObject(Config.class, 
SESSION_config).getString(key);
+   return session.getSessionObject(Config.class, SESSION_config, 
true).getString(key);
}
 }
diff --git 
a/juneau-core/juneau-dto/src/main/resources/org/apache/juneau/dto/swagger/ui/SwaggerUI.css
 
b/juneau-core/juneau-dto/src/main/resources/org/apache/juneau/dto/swagger/ui/SwaggerUI.css
index 7a80655..b118da2 100644
--- 
a/juneau-core/juneau-dto/src/main/resources/org/apache/juneau/dto/swagger/ui/SwaggerUI.css
+++ 
b/juneau-core/juneau-dto/src/main/resources/org/apache/juneau/dto/swagger/ui/SwaggerUI.css
@@ -281,6 +281,7 @@ td.parameter-value, td.response-value {
max-width: 800px;
max-height: 800px;
text-overflow: auto;
+   overflow: auto;
 }
 
 .op-block-contents .example.active {
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java
index 57132de..a3e6ddc 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java
@@ -1013,6 +1013,12 @@ public final class ClassMeta implements Type {
if (isCollectionOrArray() && 
StringUtils.isObjectList(s, false))
return 
JsonParser.DEFAULT.parse(s, this);
}
+   if (example instanceof Map && isMapOrBean()) {
+   return 
JsonParser.DEFAULT.parse(JsonSerializer.DEFAULT_LAX_READABLE.toString(example), 
this);
+   }
+   if (example instanceof Collection && 
isCollectionOrArray()) {
+   return 
JsonParser.DEFAULT.parse(JsonSerializer.DEFAULT_LAX_READABLE.serialize(example),
 this);
+   }
}
if (exampleMethod != null) 
return (T)invokeMethodFuzzy(exampleMethod, 
null, session);
diff --git 
a/juneau-core/juneau-svl/src/main/java/org/apache/juneau/svl/VarResolverSession.java
 
b/juneau-core/juneau-svl/src/main/java/org/apache/juneau/svl/VarResolverSession.java
index a553b0d..32b69c4 100644
--- 
a/juneau-core/juneau-svl/src

[juneau] branch master updated: Swagger UI enhancements.

2018-04-14 Thread jamesbognar
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 c836d34  Swagger UI enhancements.
c836d34 is described below

commit c836d34caef1eeb2112be2d2a291e82668a3f6fe
Author: JamesBognar 
AuthorDate: Sat Apr 14 14:21:34 2018 -0400

Swagger UI enhancements.
---
 .../apache/juneau/html/HtmlDocTemplateBasic.java   |  43 ---
 juneau-doc/src/main/javadoc/overview.html  |  12 ++
 .../examples/rest/SampleRemoteableServlet.java |  68 ---
 .../microservice/resources/DirectoryResource.java  |  29 +++--
 .../apache/juneau/rest/test/HtmlDocResource.java   |   1 +
 .../java/org/apache/juneau/rest/RequestBody.java   |  14 +++
 .../org/apache/juneau/rest/RestParamDefaults.java  |  26 
 .../org/apache/juneau/rest/annotation/HtmlDoc.java |   4 +-
 .../juneau/rest/remoteable/RemoteableServlet.java  | 136 +
 9 files changed, 178 insertions(+), 155 deletions(-)

diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocTemplateBasic.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocTemplateBasic.java
index dfc74b1..731d394 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocTemplateBasic.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocTemplateBasic.java
@@ -109,32 +109,31 @@ public class HtmlDocTemplateBasic implements 
HtmlDocTemplate {
 
@Override /* HtmlDocTemplate */
public void nav(HtmlDocSerializerSession session, HtmlWriter w, Object 
o) throws Exception {
+   String[] links = session.getNavLinks();
+   if (links.length > 0 && ! ArrayUtils.contains("NONE", links)) {
+   w.sTag(3, "ol").nl(3);
+   for (String l : links) {
+   w.sTag(4, "li");
+   if (l.matches("(?s)\\S+\\:.*")) {
+   int i = l.indexOf(':');
+   String key = l.substring(0, i);
+   String val = l.substring(i+1).trim();
+   if (val.startsWith("<"))
+   w.nl(4).appendln(5, val);
+   else
+   w.oTag("a").attr("href", 
session.resolveUri(val), true).cTag().text(key, true).eTag("a");
+   w.eTag("li").nl(4);
+   } else {
+   w.nl(4).appendln(5, l);
+   w.eTag(4, "li").nl(4);
+   }
+   }
+   w.eTag(3, "ol").nl(3);
+   }
String[] nav = session.getNav();
if (nav.length > 0) {
for (int i = 0; i < nav.length; i++)
w.sIf(i > 0).appendln(3, nav[i]);
-   } else {
-   String[] links = session.getNavLinks();
-   if (links.length > 0) {
-   w.sTag(3, "ol").nl(3);
-   for (String l : links) {
-   w.sTag(4, "li");
-   if (l.matches("(?s)\\S+\\:.*")) {
-   int i = l.indexOf(':');
-   String key = l.substring(0, i);
-   String val = 
l.substring(i+1).trim();
-   if (val.startsWith("<"))
-   w.nl(4).appendln(5, 
val);
-   else
-   
w.oTag("a").attr("href", session.resolveUri(val), true).cTag().text(key, 
true).eTag("a");
-   w.eTag("li").nl(4);
-   } else {
-   w.nl(4).appendln(5, l);
-   w.eTag(4, "li").nl(4);
-   }
-   }
-   w.eTag(3, "ol").nl(3);
-   }
}
}
 
diff --git a/juneau-doc/src/main/javadoc/overview.html 
b/juneau-doc/src/main/javadoc/overview.html
index 7f3922d..7313a9e 100644
--- a/juneau-doc/src/main/javadoc/overview.html
+++ b/juneau-doc/src/main/javadoc/overview.html
@@ -11537,6 +11537,8 @@
{@link org.apache.juneau.rest.RestLogger} - Logge

[juneau] branch master updated: Swagger UI enhancements.

2018-04-12 Thread jamesbognar
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 a0845cb  Swagger UI enhancements.
a0845cb is described below

commit a0845cb4e677267af4ff080ca2f6c7c487dc3fd7
Author: JamesBognar 
AuthorDate: Thu Apr 12 14:54:34 2018 -0400

Swagger UI enhancements.
---
 .../apache/juneau/examples/rest/DirectoryResource.java   | 11 +--
 .../juneau/examples/rest/SampleRemoteableServlet.java| 16 +---
 .../java/org/apache/juneau/rest/BasicRestServlet.java|  2 +-
 3 files changed, 23 insertions(+), 6 deletions(-)

diff --git 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/DirectoryResource.java
 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/DirectoryResource.java
index 86477aa..4db5a15 100644
--- 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/DirectoryResource.java
+++ 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/DirectoryResource.java
@@ -101,7 +101,12 @@ public class DirectoryResource extends BasicRestServlet {
path="/*",
summary="Get file or directory information",
description="Returns information about a file or directory.",
-   converters={Queryable.class}
+   converters={Queryable.class},
+   swagger={
+   "parameters:[",
+Queryable.SWAGGER_PARAMS,
+   "]"
+   }
)
public Object doGet(RestRequest req, RequestProperties properties) 
throws NotFound, InternalServerError {
 
@@ -140,7 +145,7 @@ public class DirectoryResource extends BasicRestServlet {
description="Delete a file on the file system.",
guards=AdminGuard.class
)
-   public Object doDelete(RestRequest req) throws MethodNotAllowed {
+   public Object doDelete(RestRequest req) throws MethodNotAllowed, 
Forbidden {
 
if (! allowDeletes)
throw new MethodNotAllowed("DELETE not enabled");
@@ -150,6 +155,7 @@ public class DirectoryResource extends BasicRestServlet {
 
if (req.getHeader("Accept").contains("text/html"))
return new Redirect();
+   
return "File deleted";
}
 
@@ -176,6 +182,7 @@ public class DirectoryResource extends BasicRestServlet {

if (req.getContentType().contains("html"))
return new Redirect(parentSubPath);
+   
return "File added";
}
 
diff --git 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/SampleRemoteableServlet.java
 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/SampleRemoteableServlet.java
index 7418523..c62fd99 100644
--- 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/SampleRemoteableServlet.java
+++ 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/SampleRemoteableServlet.java
@@ -79,7 +79,11 @@ public class SampleRemoteableServlet extends 
RemoteableServlet {

//-

@Override /* RemoteableServlet */
-   @RestMethod(name=GET, path="/",
+   @RestMethod(
+   name=GET, 
+   path="/",
+   summary="List of available remoteable interfaces",
+   description="Shows a list of the interfaces registered with 
this remoteable servlet.",
htmldoc=@HtmlDoc(
aside={
"",
@@ -97,7 +101,10 @@ public class SampleRemoteableServlet extends 
RemoteableServlet {
}
 
@Override /* RemoteableServlet */
-   @RestMethod(name=GET, path="/{javaInterface}", summary="List of 
available methods on $RP{javaInterface}.",
+   @RestMethod(
+   name=GET, 
+   path="/{javaInterface}", 
+   summary="List of available methods on 
$CO{{$RP{javaInterface},an interface}",
htmldoc=@HtmlDoc(
aside={
"",
@@ -112,7 +119,10 @@ public class SampleRemoteableServlet extends 
RemoteableServlet {
}
 
@Override /* RemoteableServlet */
-   @RestMethod(name=GET, path="/{javaInterface}/{javaMethod}", 
summary="Form entry for method $RP{javaMethod} on interface $RP{javaInterface}",
+   @RestMethod(
+   name=GET, 
+   path="/{javaInterface}/{javaMethod}", 
+   summary="Form entry for 

[juneau] branch master updated: Swagger UI enhancements.

2018-04-11 Thread jamesbognar
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 616513c  Swagger UI enhancements.
616513c is described below

commit 616513cc80c86614f57787689c52bddb013e4f87
Author: JamesBognar 
AuthorDate: Wed Apr 11 18:51:52 2018 -0400

Swagger UI enhancements.
---
 .../apache/juneau/dto/swagger/ui/SwaggerUI.java|  4 +-
 .../juneau/examples/rest/DirectoryResource.java| 27 +--
 .../examples/rest/SystemPropertiesResource.java| 21 
 .../examples/rest/petstore/PetStoreResource.java   | 56 --
 .../apache/juneau/rest/BasicRestInfoProvider.java  |  3 +-
 .../juneau/rest/converters/Introspectable.java | 10 +++-
 .../apache/juneau/rest/converters/Queryable.java   | 14 +-
 7 files changed, 90 insertions(+), 45 deletions(-)

diff --git 
a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ui/SwaggerUI.java
 
b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ui/SwaggerUI.java
index 38d6ef0..3a026e1 100644
--- 
a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ui/SwaggerUI.java
+++ 
b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ui/SwaggerUI.java
@@ -311,13 +311,13 @@ public class SwaggerUI extends PojoSwap {
select.child(option("model","model"));
div.child(div(si.copy().resolveRefs(s.swagger, new 
ArrayDeque(), s.resolveRefsMaxDepth))._class("model 
active").attr("data-name", "model"));
}
-   
+
if (examples != null) {
for (Map.Entry e : examples.entrySet()) {
String name = e.getKey();
String value = e.getValue().toString();
select.child(option(name, name));
-   div.child(div(value.replaceAll("\\n", 
"\n"))._class("example").attr("data-name", name));
+   div.child(div(value.replaceAll("\\n", 
"\n"))._class("example" + (si == null ? " active" : "")).attr("data-name", 
name));
}
}

diff --git 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/DirectoryResource.java
 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/DirectoryResource.java
index 7e676c3..86477aa 100644
--- 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/DirectoryResource.java
+++ 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/DirectoryResource.java
@@ -136,6 +136,8 @@ public class DirectoryResource extends BasicRestServlet {
@RestMethod(
name=DELETE, 
path="/*", 
+   summary="Delete file",
+   description="Delete a file on the file system.",
guards=AdminGuard.class
)
public Object doDelete(RestRequest req) throws MethodNotAllowed {
@@ -151,9 +153,14 @@ public class DirectoryResource extends BasicRestServlet {
return "File deleted";
}
 
-   /** PUT request handler */
-   @RestMethod(name=PUT, path="/*", guards=AdminGuard.class)
-   public Object doPut(RestRequest req) throws MethodNotAllowed, 
InternalServerError {
+   @RestMethod(
+   name=PUT, 
+   path="/*", 
+   summary="Upload file",
+   description="Uploads a file to the file system.",
+   guards=AdminGuard.class
+   )
+   public Object doPut(RestRequest req) throws MethodNotAllowed, 
InternalServerError, Forbidden {
 
if (! allowPuts)
throw new MethodNotAllowed("PUT not enabled");
@@ -174,7 +181,12 @@ public class DirectoryResource extends BasicRestServlet {
 
/** VIEW request handler (overloaded GET for viewing file contents) */
@SuppressWarnings("resource")
-   @RestMethod(name="VIEW", path="/*")
+   @RestMethod(
+   name="VIEW", 
+   path="/*",
+   summary="View file",
+   description="Views the contents of a file as plain text."
+   )
public void doView(RestRequest req, RestResponse res) throws 
MethodNotAllowed, NotFound {
 
if (! allowViews)
@@ -194,7 +206,12 @@ public class DirectoryResource extends BasicRestServlet {
 
/** DOWNLOAD request handler (overloaded GET for downloading file 
contents) */
@SuppressWarnings("resource")
-   @RestMethod(name="DOWNLOAD")
+   @RestMethod(
+   name="DOWNLOAD",
+   path="/*",
+   summary="Download file",
+   description="Download the contents of a file as an oct

[juneau] branch master updated: Swagger UI enhancements.

2018-04-08 Thread jamesbognar
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 92cf198  Swagger UI enhancements.
92cf198 is described below

commit 92cf198583d6bed40f2028a4c6d40d9b257834d0
Author: JamesBognar 
AuthorDate: Sun Apr 8 20:35:09 2018 -0400

Swagger UI enhancements.
---
 .../apache/juneau/dto/swagger/ui/SwaggerUI.java|  9 --
 .../examples/rest/MethodExampleResource.java   | 36 --
 .../microservice/resources/ConfigResource.java |  4 +--
 .../apache/juneau/rest/BasicRestInfoProvider.java  |  6 ++--
 .../apache/juneau/rest/annotation/RestMethod.java  |  2 +-
 5 files changed, 33 insertions(+), 24 deletions(-)

diff --git 
a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ui/SwaggerUI.java
 
b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ui/SwaggerUI.java
index 5697d16..4a08001 100644
--- 
a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ui/SwaggerUI.java
+++ 
b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ui/SwaggerUI.java
@@ -68,6 +68,8 @@ public class SwaggerUI extends PojoSwap {

static final ClasspathResourceManager RESOURCES = new 
ClasspathResourceManager(SwaggerUI.class);

+   private static final Set STANDARD_METHODS = new 
ASet().appendAll("get", "put", "post", "delete", "options");
+   
@Override
public MediaType[] forMediaTypes() {
return new MediaType[] {MediaType.HTML};
@@ -193,9 +195,12 @@ public class SwaggerUI extends PojoSwap {
}

private Div opBlock(Session s, String path, String opName, Operation 
op) {
-   String opNameLc = op.isDeprecated() ? "deprecated" : 
opName.toLowerCase();

-   return div()._class("op-block op-block-closed " + 
opNameLc).children(
+   String opClass = op.isDeprecated() ? "deprecated" : 
opName.toLowerCase();
+   if (! STANDARD_METHODS.contains(opClass))
+   opClass = "other";
+   
+   return div()._class("op-block op-block-closed " + 
opClass).children(
opBlockSummary(path, opName, op),
div(tableContainer(s, op))._class("op-block-contents")
);
diff --git 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/MethodExampleResource.java
 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/MethodExampleResource.java
index bcfa53b..ecbcb63 100644
--- 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/MethodExampleResource.java
+++ 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/MethodExampleResource.java
@@ -49,7 +49,7 @@ public class MethodExampleResource extends BasicRestServlet {
private static final String SAMPLE_UUID_STRING = 
"----";
 
/** Example GET request that redirects to our example method */
-   @RestMethod(name=GET, path="/")
+   @RestMethod(name=GET, path="/", summary="Top-level page")
public ResourceDescription[] doExample() throws Exception {
return new ResourceDescription[] {
new ResourceDescription(
@@ -67,11 +67,11 @@ public class MethodExampleResource extends BasicRestServlet 
{
};
}
 
-   /**
-* Methodology #1 - GET request using annotated attributes.
-* This approach uses annotated parameters for retrieving input.
-*/
-   @RestMethod(name=GET, path="/example1/{p1}/{p2}/{p3}/*")
+   @RestMethod(
+   name=GET, path="/example1/{p1}/{p2}/{p3}/*", 
+   summary="GET request using annotated attributes",
+   description="This approach uses annotated parameters for 
retrieving input."
+   )
public Map example1(
@Method String method,  // HTTP method.
@Path String p1,// Path 
variables.
@@ -101,11 +101,11 @@ public class MethodExampleResource extends 
BasicRestServlet {
.append("header-doNotTrack", doNotTrack);
}
 
-   /**
-* Methodology #2 - GET request using methods on RestRequest and 
RestResponse.
-* This approach uses low-level request/response objects to perform the 
same as above.
-*/
-   @RestMethod(name=GET, path="/example2/{p1}/{p2}/{p3}/*")
+   @RestMethod(
+   name=GET, path="/example2/{p1}/{p2}/{p3}/*", 
+   summary="GET request using methods on RestRequest and 
RestResponse",
+   description="This approach uses low-level request/response 
objects to p

[juneau] branch master updated: Swagger UI enhancements.

2018-04-08 Thread jamesbognar
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 d666a02  Swagger UI enhancements.
d666a02 is described below

commit d666a02e2aa08693c69a69dcc782f380deed8071
Author: JamesBognar 
AuthorDate: Sun Apr 8 14:54:57 2018 -0700

Swagger UI enhancements.
---
 .../org/apache/juneau/dto/swagger/SwaggerTest.java |   8 +-
 .../apache/juneau/dto/swagger/OperationMap.java|  68 +--
 .../org/apache/juneau/dto/swagger/Swagger.java |  40 +---
 .../apache/juneau/dto/swagger/ui/SwaggerUI.java|   3 +-
 .../jsonschema/JsonSchemaSerializerSession.java|   3 +
 juneau-doc/src/main/javadoc/overview.html  |   4 +-
 .../examples/rest/SystemPropertiesResource.java| 117 ++--
 .../rest/petstore/IdConflictException.java |   2 +-
 .../rest/petstore/IdNotFoundException.java |   2 +-
 .../examples/rest/petstore/InvalidIdException.java |   2 +-
 .../rest/petstore/InvalidTagException.java |   2 +-
 .../rest/petstore/InvalidUsernameException.java|   2 +-
 .../examples/rest/petstore/LoginException.java |   2 +-
 .../examples/rest/petstore/PetStoreResource.java   | 166 
 .../apache/juneau/rest/test/HeadersResource.java   |   2 +-
 .../apache/juneau/rest/BasicRestCallHandler.java   |   4 +-
 .../apache/juneau/rest/BasicRestInfoProvider.java  | 120 +++-
 .../main/java/org/apache/juneau/rest/Redirect.java |   2 +-
 .../java/org/apache/juneau/rest/RestContext.java   |  54 --
 .../org/apache/juneau/rest/RestContextBuilder.java |   4 +-
 .../org/apache/juneau/rest/RestJavaMethod.java |  28 ++-
 .../rest/{RestParam.java => RestMethodParam.java}  |   6 +-
 .../org/apache/juneau/rest/RestMethodReturn.java   |  62 +-
 .../org/apache/juneau/rest/RestMethodThrown.java   |  61 +-
 .../org/apache/juneau/rest/RestParamDefaults.java  | 212 ++---
 .../{RestStatus.java => ResponseInfo.java} |  36 +++-
 .../juneau/rest/annotation/RestResource.java   |   2 +-
 27 files changed, 605 insertions(+), 409 deletions(-)

diff --git 
a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/dto/swagger/SwaggerTest.java
 
b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/dto/swagger/SwaggerTest.java
index 06fa9ab..95553e5 100644
--- 
a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/dto/swagger/SwaggerTest.java
+++ 
b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/dto/swagger/SwaggerTest.java
@@ -287,11 +287,11 @@ public class SwaggerTest {
public void testSetPaths() {
Swagger t = new Swagger();

-   t.setPaths(new 
AMap>().append("foo", new 
AMap().append("bar",operation().summary("baz";
+   t.setPaths(new AMap().append("foo", new 
OperationMap().append("bar",operation().summary("baz";
assertObjectEquals("{foo:{bar:{summary:'baz'}}}", t.getPaths());
assertType(Map.class, t.getPaths());

-   t.setPaths(new AMap>());
+   t.setPaths(new AMap());
assertObjectEquals("{}", t.getPaths());
assertType(Map.class, t.getPaths());
 
@@ -306,11 +306,11 @@ public class SwaggerTest {
public void testAddPaths() {
Swagger t = new Swagger();

-   t.addPaths(new 
AMap>().append("foo", new 
AMap().append("bar",operation().summary("baz";
+   t.addPaths(new AMap().append("foo", new 
OperationMap().append("bar",operation().summary("baz";
assertObjectEquals("{foo:{bar:{summary:'baz'}}}", t.getPaths());
assertType(Map.class, t.getPaths());

-   t.addPaths(new AMap>());
+   t.addPaths(new AMap());
assertObjectEquals("{foo:{bar:{summary:'baz'}}}", t.getPaths());
assertType(Map.class, t.getPaths());
 
diff --git 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/petstore/IdConflictException.java
 
b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/OperationMap.java
similarity index 50%
copy from 
juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/petstore/IdConflictException.java
copy to 
juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/OperationMap.java
index a69bd25..f7cae77 100644
--- 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/petstore/IdConflictException.java
+++ 
b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/OperationMap.java
@@ -10,25 +10,71 @@
 // * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 
express or implied.  See the License for the*
 // * specific language 

[juneau] branch master updated: Swagger UI enhancements.

2018-04-08 Thread jamesbognar
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 2316e40  Swagger UI enhancements.
2316e40 is described below

commit 2316e4075b98c0a2e9c5186923423ecac0a4565f
Author: JamesBognar 
AuthorDate: Sun Apr 8 06:33:27 2018 -0700

Swagger UI enhancements.
---
 .../org/apache/juneau/dto/swagger/HeaderInfo.java  | 12 ++--
 .../java/org/apache/juneau/dto/swagger/Items.java  | 39 +--
 .../apache/juneau/dto/swagger/ParameterInfo.java   | 10 ++-
 .../apache/juneau/dto/swagger/ResponseInfo.java| 10 ++-
 .../org/apache/juneau/dto/swagger/SchemaInfo.java  | 16 +++--
 .../apache/juneau/dto/swagger/ui/SwaggerUI.java| 81 +-
 .../jsonschema/JsonSchemaSerializerSession.java| 17 ++---
 .../examples/rest/petstore/PetStoreResource.java   |  6 ++
 .../apache/juneau/rest/BasicRestInfoProvider.java  |  4 +-
 9 files changed, 144 insertions(+), 51 deletions(-)

diff --git 
a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/HeaderInfo.java
 
b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/HeaderInfo.java
index 98bd49c..e4316fa 100644
--- 
a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/HeaderInfo.java
+++ 
b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/HeaderInfo.java
@@ -1142,23 +1142,27 @@ public class HeaderInfo extends SwaggerElement {
 * 
 * @param swagger The swagger document containing the definitions.
 * @param refStack Keeps track of previously-visited references so that 
we don't cause recursive loops.
+* @param maxDepth 
+*  The maximum depth to resolve references. 
+*  After that level is reached, $ref references 
will be left alone.
+*  Useful if you have very complex models and you don't want 
your swagger page to be overly-complex.
 * @return 
 *  This object with references resolved.
 *  May or may not be the same object.
 */
-   public HeaderInfo resolveRefs(Swagger swagger, Deque refStack) {
+   public HeaderInfo resolveRefs(Swagger swagger, Deque refStack, 
int maxDepth) {

if (ref != null) {
-   if (refStack.contains(ref) || refStack.size() > 2)
+   if (refStack.contains(ref) || refStack.size() >= 
maxDepth)
return this;
refStack.addLast(ref);
-   HeaderInfo r = swagger.findRef(ref, 
HeaderInfo.class).resolveRefs(swagger, refStack);
+   HeaderInfo r = swagger.findRef(ref, 
HeaderInfo.class).resolveRefs(swagger, refStack, maxDepth);
refStack.removeLast();
return r;
}
 
if (items != null)
-   items = items.resolveRefs(swagger, refStack);
+   items = items.resolveRefs(swagger, refStack, maxDepth);

return this;
}
diff --git 
a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Items.java 
b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Items.java
index 35c63bf..544c492 100644
--- 
a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Items.java
+++ 
b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Items.java
@@ -1115,26 +1115,55 @@ public class Items extends SwaggerElement {
 * 
 * @param swagger The swagger document containing the definitions.
 * @param refStack Keeps track of previously-visited references so that 
we don't cause recursive loops.
+* @param maxDepth 
+*  The maximum depth to resolve references. 
+*  After that level is reached, $ref references 
will be left alone.
+*  Useful if you have very complex models and you don't want 
your swagger page to be overly-complex.
 * @return 
 *  This object with references resolved.
 *  May or may not be the same object.
 */
-   public Items resolveRefs(Swagger swagger, Deque refStack) {
+   public Items resolveRefs(Swagger swagger, Deque refStack, int 
maxDepth) {

if (ref != null) {
-   if (refStack.contains(ref) || refStack.size() > 2)
+   if (refStack.contains(ref) || refStack.size() >= 
maxDepth)
return this;
refStack.addLast(ref);
-   Items r = swagger.findRef(ref, 
Items.class).resolveRefs(swagger, refStack);
+   Items r = swagger.findRef(ref, 
Items.class).resolveRefs(swagger, refStack, maxDepth);
refStack.removeLast();

[juneau] branch master updated: Swagger UI enhancements.

2018-04-06 Thread jamesbognar
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 5a9e0fc  Swagger UI enhancements.
5a9e0fc is described below

commit 5a9e0fc85a8d94d4780239f964beae5486473a72
Author: JamesBognar 
AuthorDate: Fri Apr 6 09:02:23 2018 -0400

Swagger UI enhancements.
---
 .../org/apache/juneau/dto/swagger/Swagger.java | 18 +++
 .../apache/juneau/dto/swagger/SwaggerElement.java  | 62 +-
 .../apache/juneau/dto/swagger/ui/SwaggerUI.java| 36 -
 .../org/apache/juneau/dto/swagger/ui/SwaggerUI.css | 33 ++--
 .../src/main/java/org/apache/juneau/ClassMeta.java |  9 
 .../apache/juneau/rest/BasicRestInfoProvider.java  | 54 +--
 .../org/apache/juneau/rest/BasicRestServlet.java   |  7 +++
 7 files changed, 172 insertions(+), 47 deletions(-)

diff --git 
a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Swagger.java
 
b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Swagger.java
index 27afa97..004eaa8 100644
--- 
a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Swagger.java
+++ 
b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Swagger.java
@@ -765,6 +765,15 @@ public class Swagger extends SwaggerElement {
}
 
/**
+* Convenience method for testing whether this Swagger has one or more 
definitions defined.
+* 
+* @return true if this Swagger has one or more definitions 
defined.
+*/
+   public boolean hasDefinitions() {
+   return definitions != null && ! definitions.isEmpty();
+   }
+
+   /**
 * Bean property getter:  parameters.
 * 
 * 
@@ -1201,6 +1210,15 @@ public class Swagger extends SwaggerElement {
}
 
/**
+* Convenience method for testing whether this Swagger has one or more 
tags defined.
+* 
+* @return true if this Swagger has one or more tags defined.
+*/
+   public boolean hasTags() {
+   return tags != null && ! tags.isEmpty();
+   }
+
+   /**
 * Bean property getter:  externalDocs.
 * 
 * 
diff --git 
a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/SwaggerElement.java
 
b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/SwaggerElement.java
index b5aef00..aca2626 100644
--- 
a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/SwaggerElement.java
+++ 
b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/SwaggerElement.java
@@ -18,6 +18,7 @@ import java.util.*;
 
 import org.apache.juneau.annotation.*;
 import org.apache.juneau.json.*;
+import org.apache.juneau.utils.*;
 
 /**
  * Root class for all Swagger beans.
@@ -73,28 +74,6 @@ public abstract class SwaggerElement {
}
 
/**
-* The map used to store 'extra' properties on the swagger element.
-* 
-* 
-* For example, the "$ref" field is not a part of the Swagger 
doc, but is often
-* found since it is a part of the JSON-Schema spec. 
-* This map allows you to store such properties.
-* 
-* 
-* This map is lazy-created once this method is called.
-* 
-* @return 
-*  The extra properties map.
-*  It's an instance of {@link LinkedHashMap}.
-*/
-   @BeanProperty("*")
-   public Map getExtraProperties() {
-   if (extra == null || extra.isEmpty())
-   return null;
-   return extra;
-   }
-   
-   /**
 * Generic property getter.
 * 
 * 
@@ -109,11 +88,27 @@ public abstract class SwaggerElement {
return null;
switch (property) {
case "strict": return toType(isStrict(), type);
-   default: return extra == null ? null : 
toType(getExtraProperties().get(property), type);
+   default: return toType(get(property), type);
}
};

/**
+* Generic property getter.
+* 
+* 
+* Can be used to retrieve non-standard Swagger fields such as 
"$ref".
+* 
+* @param property The property name to retrieve.
+* @return The property value, or null if the property does 
not exist or is not set.
+*/
+   @BeanProperty("*")
+   public Object get(String property) {
+   if (property == null || extra == null)
+   return null;
+   return extra.get(property);
+   };
+
+   /**
 * Generic property setter.
 * 
 * 
@@ -138,12 +133,29 @@ public abstract class SwaggerElement {
}

/

[juneau] branch master updated: Swagger UI enhancements.

2018-04-03 Thread jamesbognar
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 5f19e4b  Swagger UI enhancements.
5f19e4b is described below

commit 5f19e4b2c166b6afefe1e4be87afc0c609e94c50
Author: JamesBognar 
AuthorDate: Tue Apr 3 18:24:34 2018 -0400

Swagger UI enhancements.
---
 .../java/org/apache/juneau/BeanPropertyMeta.java|  9 +++--
 .../jsonschema/JsonSchemaSerializerSession.java | 12 +++-
 .../apache/juneau/rest/BasicRestInfoProvider.java   | 21 -
 3 files changed, 26 insertions(+), 16 deletions(-)

diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
index 4037122..1644c7e 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
@@ -642,11 +642,16 @@ public final class BeanPropertyMeta {
 
if 
(propertyClass.isInstance(valueMap)) {
if (! 
valueType.isObject()) {
+   boolean 
needsConversion = false;
for 
(Map.Entry e : (Set)valueMap.entrySet()) {

Object v = e.getValue();
-   
if (v != null && ! valueType.getInnerClass().isInstance(v)) 
-   
v = session.convertToType(v, valueType);
+   
if (v != null && ! valueType.getInnerClass().isInstance(v)) {
+   
needsConversion = true;
+   
break;
+   
}
}
+   if 
(needsConversion)
+   
valueMap = (Map)session.convertToType(valueMap, rawTypeMeta);
}

invokeSetter(bean, pName, valueMap);
return r;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaSerializerSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaSerializerSession.java
index ea39466..af574af 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaSerializerSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaSerializerSession.java
@@ -113,8 +113,18 @@ public class JsonSchemaSerializerSession extends 
JsonSerializerSession {
 
boolean useDef = useBeanDefs && sType.isBean() && pNames == 
null;

-   if (useDef && defs.containsKey(getBeanDefId(sType))) 
+   if (useDef && defs.containsKey(getBeanDefId(sType))) {
+   ObjectMap schema = defs.get(getBeanDefId(sType));
+   
+   // If we previously encountered this bean in a 
collection/array, then it may not have
+   // the example and description associated with it, so 
add it now.
+   if (! schema.containsKey("example")) 
+   schema.appendIf(true, true, true, "example", 
getExample(sType, BEAN, exampleAdded));
+   if (! schema.containsKey("description")) 
+   schema.appendIf(true, true, true, 
"description", getDescription(sType, BEAN, exampleAdded));
+   
return new ObjectMap().append("$ref", 
getBeanDefUri(sType));
+   }

ObjectMap ds = 
defaultSchemas.get(sType.getInnerClass().getName());
if (ds != null && ds.containsKey("type")) 
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRestInfoProvider.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRestInfoProvider.java
index 6aec374..f907702 100644
--- 
a/ju

[juneau] branch master updated: Swagger UI enhancements.

2018-03-25 Thread jamesbognar
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 69f4dd1  Swagger UI enhancements.
69f4dd1 is described below

commit 69f4dd14f3a764c0f6b8180b3e3e47ffd1dab460
Author: JamesBognar 
AuthorDate: Sun Mar 25 17:26:08 2018 -0400

Swagger UI enhancements.
---
 .../apache/juneau/dto/swagger/ui/SwaggerUI.java|   8 +-
 .../examples/rest/petstore/PetStoreResource.java   |   8 +-
 .../examples/rest/petstore/PetStoreResource.json   | 113 ++---
 .../juneau/examples/rest/RootContentTest.java  |   4 +-
 .../apache/juneau/rest/widget/MenuItemWidget.java  |   2 +-
 .../org/apache/juneau/rest/styles/light.css|   7 ++
 .../org/apache/juneau/rest/styles/original.css |   7 ++
 7 files changed, 37 insertions(+), 112 deletions(-)

diff --git 
a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ui/SwaggerUI.java
 
b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ui/SwaggerUI.java
index 2f86fde..8e93cf3 100644
--- 
a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ui/SwaggerUI.java
+++ 
b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ui/SwaggerUI.java
@@ -20,6 +20,7 @@ import org.apache.juneau.*;
 import org.apache.juneau.dto.html5.*;
 import org.apache.juneau.dto.swagger.*;
 import org.apache.juneau.http.*;
+import org.apache.juneau.internal.*;
 import org.apache.juneau.transform.*;
 import org.apache.juneau.utils.*;
 
@@ -69,8 +70,11 @@ public class SwaggerUI extends PojoSwap {
if (info.hasVersion())

table.child(tr(th("Version:"),td(info.getVersion(;
 
-   if (info.hasTermsOfService())
-   table.child(tr(th("Terms of 
Service:"),td(a(info.getTermsOfService(), info.getTermsOfService();
+   if (info.hasTermsOfService()) {
+   String tos = info.getTermsOfService();
+   Object child = StringUtils.isUri(tos) ? a(tos, 
tos) : tos;
+   table.child(tr(th("Terms of 
Service:"),td(child)));
+   }

Contact c = info.getContact();
if (c != null) {
diff --git 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/petstore/PetStoreResource.java
 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/petstore/PetStoreResource.java
index 1a385e1..8e595f4 100644
--- 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/petstore/PetStoreResource.java
+++ 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/petstore/PetStoreResource.java
@@ -26,9 +26,8 @@ import org.apache.juneau.rest.widget.*;
path="/petstore2",
title="Swagger Petstore",
description=
-   "This is a sample server Petstore server."
-   + "You can find out more about Swagger at http://swagger.io or on irc.freenode.net#swagger."
-   + "For this sample, you can use the api key `special-key` 
to test the authorization filters.",
+   "This is a sample server Petstore server based on the Petstore 
sample at Swagger.io."
+   + "You can find out more about Swagger at http://swagger.io.",
htmldoc=@HtmlDoc(
widgets={
ContentTypeMenuItem.class,
@@ -50,7 +49,7 @@ public class PetStoreResource extends BasicRestServletJena {
@RestMethod(
name="GET", 
path="/",
-   summary="Top-level page"
+   summary="Navigation page"
) 
public ResourceDescription[] getTopPage() {
return new ResourceDescription[] {
@@ -123,7 +122,6 @@ public class PetStoreResource extends BasicRestServletJena {
swagger={
"tags:['pet'],",
"parameters:[",
-// "{ in:'body', description:'Pet object that 
needs to be added to the store', required:true, schema:{ 
$ref:'#/definitions/Pet'} }",
"{ in:'body', description:'Pet object that 
needs to be added to the store', required:true }",
"],",
"responses:{",
diff --git 
a/juneau-examples/juneau-examples-rest/src/main/resources/org/apache/juneau/examples/rest/petstore/PetStoreResource.json
 
b/juneau-examples/juneau-examples-rest/src/main/resources/org/apache/juneau/examples/rest/petstore/PetStoreResource.json
index f525b66..abf4395 100644
--- 
a/juneau-examples/juneau-examples-rest/src/main/resources/org/apache/juneau/examples/rest/petstore/PetStoreRe