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 91fc64d Debug build failure. 91fc64d is described below commit 91fc64d0a582c3ea6de642bebe38b48270d9d4fd Author: JamesBognar <jamesbog...@apache.org> AuthorDate: Sat Apr 21 17:28:00 2018 -0400 Debug build failure. --- .../apache/juneau/rest/BasicRestInfoProvider.java | 7 +- .../juneau/rest/BasicRestInfoProviderTest.java | 75 +++++++++++++++++++++- 2 files changed, 79 insertions(+), 3 deletions(-) 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 c9c7bbe..01cdac9 100644 --- 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 @@ -424,13 +424,13 @@ public class BasicRestInfoProvider implements RestInfoProvider { op.put("responses", new TreeMap<>(responses)); if (! op.containsKey("consumes")) { - List<MediaType> mConsumes = req.getParsers().getSupportedMediaTypes(); + List<MediaType> mConsumes = sm.supportedContentTypes; if (! mConsumes.equals(consumes)) op.put("consumes", mConsumes); } if (! op.containsKey("produces")) { - List<MediaType> mProduces = req.getSerializers().getSupportedMediaTypes(); + List<MediaType> mProduces = sm.supportedAcceptTypes; if (! mProduces.equals(produces)) op.put("produces", mProduces); } @@ -529,6 +529,9 @@ public class BasicRestInfoProvider implements RestInfoProvider { private ObjectMap getSchema(RestRequest req, ObjectMap schema, JsonSchemaSerializerSession js, Type type) throws Exception { BeanSession bs = req.getBeanSession(); + if (bs == null) + bs = BeanContext.DEFAULT.createBeanSession(); + ClassMeta<?> cm = bs.getClassMeta(type); if (schema.getBoolean("ignore", false)) diff --git a/juneau-rest/juneau-rest-server/src/test/java/org/apache/juneau/rest/BasicRestInfoProviderTest.java b/juneau-rest/juneau-rest-server/src/test/java/org/apache/juneau/rest/BasicRestInfoProviderTest.java index 10cad52..6efdf37 100644 --- a/juneau-rest/juneau-rest-server/src/test/java/org/apache/juneau/rest/BasicRestInfoProviderTest.java +++ b/juneau-rest/juneau-rest-server/src/test/java/org/apache/juneau/rest/BasicRestInfoProviderTest.java @@ -45,8 +45,11 @@ public class BasicRestInfoProviderTest { @Override public InputStream findResource(Class<?> baseClass, String name, Locale locale) throws IOException { - if (name.endsWith(".json")) + System.out.println("XXX - TestClasspathResourceFinder.findResource("+baseClass+", "+name+", " + locale + ")"); + if (name.endsWith(".json")) { + System.out.println("XXX - InputStream1=" + BasicRestInfoProvider.class.getResourceAsStream("BasicRestinfoProviderTest_swagger.json")); return BasicRestInfoProvider.class.getResourceAsStream("BasicRestinfoProviderTest_swagger.json"); + } return super.findResource(baseClass, name, locale); } } @@ -559,6 +562,76 @@ public class BasicRestInfoProviderTest { assertObjectEquals("[{name:'l-foo',description:'l-foo',externalDocs:{description:'l-foo',url:'l-foo'}}]", getSwaggerWithFile(new J07()).getTags()); } + // Auto-detect tags defined on methods. + @RestResource() + public static class J08 { + + @RestMethod(swagger=@MethodSwagger(tags="foo")) + public void doFoo() {} + } + + @Test + public void j08_tags_ResourceSwagger_tags_loose() throws Exception { + assertObjectEquals("[{name:'foo'}]", getSwagger(new J08()).getTags()); + assertObjectEquals("[{name:'s-name',description:'s-description',externalDocs:{description:'s-description',url:'s-url'}},{name:'foo'}]", getSwaggerWithFile(new J08()).getTags()); + } + + // Comma-delimited list + @RestResource() + public static class J09 { + + @RestMethod(swagger=@MethodSwagger(tags=" foo, bar ")) + public void doFoo() {} + } + + @Test + public void j09_tags_ResourceSwagger_tags_loose_cdl() throws Exception { + assertObjectEquals("[{name:'foo'},{name:'bar'}]", getSwagger(new J09()).getTags()); + assertObjectEquals("[{name:'s-name',description:'s-description',externalDocs:{description:'s-description',url:'s-url'}},{name:'foo'},{name:'bar'}]", getSwaggerWithFile(new J09()).getTags()); + } + + // ObjectList + @RestResource() + public static class J10 { + + @RestMethod(swagger=@MethodSwagger(tags="['foo', 'bar']")) + public void doFoo() {} + } + + @Test + public void j10_tags_ResourceSwagger_tags_loose_objectlist() throws Exception { + assertObjectEquals("[{name:'foo'},{name:'bar'}]", getSwagger(new J10()).getTags()); + assertObjectEquals("[{name:'s-name',description:'s-description',externalDocs:{description:'s-description',url:'s-url'}},{name:'foo'},{name:'bar'}]", getSwaggerWithFile(new J10()).getTags()); + } + + // ObjectList localized + @RestResource(messages="BasicRestInfoProviderTest") + public static class J11 { + + @RestMethod(swagger=@MethodSwagger(tags="['$L{foo}', '$L{bar}']")) + public void doFoo() {} + } + + @Test + public void j11_tags_ResourceSwagger_tags_loose_objectlist_localized() throws Exception { + assertObjectEquals("[{name:'l-foo'},{name:'l-bar'}]", getSwagger(new J11()).getTags()); + assertObjectEquals("[{name:'s-name',description:'s-description',externalDocs:{description:'s-description',url:'s-url'}},{name:'l-foo'},{name:'l-bar'}]", getSwaggerWithFile(new J11()).getTags()); + } + + // Comma-delimited list localized + @RestResource(messages="BasicRestInfoProviderTest") + public static class J12 { + + @RestMethod(swagger=@MethodSwagger(tags=" $L{foo}, $L{bar} ")) + public void doFoo() {} + } + + @Test + public void j12_tags_ResourceSwagger_tags_loose_cdl_localized() throws Exception { + assertObjectEquals("[{name:'l-foo'},{name:'l-bar'}]", getSwagger(new J12()).getTags()); + assertObjectEquals("[{name:'s-name',description:'s-description',externalDocs:{description:'s-description',url:'s-url'}},{name:'l-foo'},{name:'l-bar'}]", getSwaggerWithFile(new J12()).getTags()); + } + //----------------------------------------------------------------------------------------------------------------- // /schemes -- To stop receiving notification emails like this one, please contact jamesbog...@apache.org.