[juneau] branch master updated: RestClient tests.
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 9bc2e93 RestClient tests. 9bc2e93 is described below commit 9bc2e93f01fc255fc668f8932982798c0e9910d4 Author: JamesBognar AuthorDate: Wed Jul 1 11:24:47 2020 -0400 RestClient tests. --- .../org/apache/juneau/http/HeaderSupplierTest.java | 19 +-- ...ierTest.java => NameValuePairSupplierTest.java} | 38 ++ .../org/apache/juneau/http/HeaderSupplier.java | 26 +++ .../apache/juneau/http/NameValuePairSupplier.java | 26 +++ juneau-doc/docs/ReleaseNotes/8.1.4.html| 9 + .../apache/juneau/rest/client2/Remote_Test.java| 35 6 files changed, 123 insertions(+), 30 deletions(-) diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/http/HeaderSupplierTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/http/HeaderSupplierTest.java index 4900fc9..639cd0b 100644 --- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/http/HeaderSupplierTest.java +++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/http/HeaderSupplierTest.java @@ -24,28 +24,27 @@ public class HeaderSupplierTest { @Test public void a01_basic() { - HeaderSupplier h = HeaderSupplier.create(); + HeaderSupplier h = HeaderSupplier.of(); assertObject(h.iterator()).json().is("[]"); h.add(header("Foo","bar")); assertObject(h.iterator()).json().is("['Foo: bar']"); h.add(header("Foo","baz")); assertObject(h.iterator()).json().is("['Foo: bar','Foo: baz']"); - h.add(HeaderSupplier.create()); + h.add(HeaderSupplier.of()); assertObject(h.iterator()).json().is("['Foo: bar','Foo: baz']"); - h.add(HeaderSupplier.create().add(header("Foo","qux"))); + h.add(HeaderSupplier.of(header("Foo","qux"))); assertObject(h.iterator()).json().is("['Foo: bar','Foo: baz','Foo: qux']"); - h.add(HeaderSupplier.create().add(header("Foo","quux")).add(header("Foo","quuux"))); - assertObject(h.iterator()).json().is("['Foo: bar','Foo: baz','Foo: qux','Foo: quux','Foo: quuux']"); - h.add(HeaderSupplier.create().add(HeaderSupplier.create().add(header("Foo","ruux")).add(header("Foo","ruuux"; - assertObject(h.iterator()).json().is("['Foo: bar','Foo: baz','Foo: qux','Foo: quux','Foo: quuux','Foo: ruux','Foo: ruuux']"); + h.add(HeaderSupplier.of(header("Foo","q2x"), header("Foo","q3x"))); + assertObject(h.iterator()).json().is("['Foo: bar','Foo: baz','Foo: qux','Foo: q2x','Foo: q3x']"); + h.add(HeaderSupplier.of(HeaderSupplier.of(header("Foo","q4x"),header("Foo","q5x"; + assertObject(h.iterator()).json().is("['Foo: bar','Foo: baz','Foo: qux','Foo: q2x','Foo: q3x','Foo: q4x','Foo: q5x']"); h.add((Header)null); - assertObject(h.iterator()).json().is("['Foo: bar','Foo: baz','Foo: qux','Foo: quux','Foo: quuux','Foo: ruux','Foo: ruuux']"); + assertObject(h.iterator()).json().is("['Foo: bar','Foo: baz','Foo: qux','Foo: q2x','Foo: q3x','Foo: q4x','Foo: q5x']"); h.add((HeaderSupplier)null); - assertObject(h.iterator()).json().is("['Foo: bar','Foo: baz','Foo: qux','Foo: quux','Foo: quuux','Foo: ruux','Foo: ruuux']"); + assertObject(h.iterator()).json().is("['Foo: bar','Foo: baz','Foo: qux','Foo: q2x','Foo: q3x','Foo: q4x','Foo: q5x']"); } private static Header header(String name, Object val) { return BasicHeader.of(name, val); } - } diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/http/HeaderSupplierTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/http/NameValuePairSupplierTest.java similarity index 51% copy from juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/http/HeaderSupplierTest.java copy to juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/http/NameValuePairSupplierTest.java index 4900fc9..00ce76a 100644 --- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/http/HeaderSupplierTest.java +++ b/juneau-core/juneau-core-ut
[juneau] branch master updated: RestClient tests.
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 b0881d3 RestClient tests. b0881d3 is described below commit b0881d39e7758284201f2272ba2032ebd563a5df Author: JamesBognar AuthorDate: Wed Jul 1 10:58:25 2020 -0400 RestClient tests. --- .../rest/client2/RestClient_Logging_Test.java | 24 +- .../org/apache/juneau/rest/client2/RestClient.java | 8 .../juneau/rest/client2/RestClientBuilder.java | 5 - .../juneau/rest/mock2/MockRestClientBuilder.java | 4 ++-- 4 files changed, 24 insertions(+), 17 deletions(-) diff --git a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClient_Logging_Test.java b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClient_Logging_Test.java index 644f455..2bb20ef 100644 --- a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClient_Logging_Test.java +++ b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClient_Logging_Test.java @@ -61,15 +61,15 @@ public class RestClient_Logging_Test { MockConsole c = MockConsole.create(); MockLogger l = MockLogger.create(); - client().logRequests(DetailLevel.NONE,Level.SEVERE).logToConsole().logger(l).console(c).build().post("/bean",bean).complete(); + client().logRequests(DetailLevel.NONE,Level.SEVERE,null).logToConsole().logger(l).console(c).build().post("/bean",bean).complete(); c.assertContents().is(""); c.reset(); - client().logRequests(DetailLevel.SIMPLE,Level.SEVERE).logToConsole().logger(l).console(c).build().post("/bean",bean).complete(); + client().logRequests(DetailLevel.SIMPLE,Level.SEVERE,null).logToConsole().logger(l).console(c).build().post("/bean",bean).complete(); c.assertContents().is("HTTP POST http://localhost/bean, HTTP/1.1 200 \n"); c.reset(); - client().logRequests(DetailLevel.FULL,Level.SEVERE).logToConsole().logger(l).console(c).build().post("/bean",bean).complete(); + client().logRequests(DetailLevel.FULL,Level.SEVERE,null).logToConsole().logger(l).console(c).build().post("/bean",bean).complete(); c.assertContents().is( "", "=== HTTP Call (outgoing) ==", @@ -92,7 +92,7 @@ public class RestClient_Logging_Test { ); c.reset(); - client().logRequests(DetailLevel.FULL,Level.SEVERE).logToConsole().logger(l).console(c).build().get("/bean").complete(); + client().logRequests(DetailLevel.FULL,Level.SEVERE,null).logToConsole().logger(l).console(c).build().get("/bean").complete(); c.assertContents().is( "", "=== HTTP Call (outgoing) ==", @@ -111,7 +111,7 @@ public class RestClient_Logging_Test { ); c.reset(); - clientPlain().logRequests(DetailLevel.FULL,Level.SEVERE).logToConsole().logger(l).console(c).build().post("/stream",new InputStreamEntity(new ByteArrayInputStream("foo".getBytes(.complete(); + clientPlain().logRequests(DetailLevel.FULL,Level.SEVERE,null).logToConsole().logger(l).console(c).build().post("/stream",new InputStreamEntity(new ByteArrayInputStream("foo".getBytes(.complete(); c.assertContents().is( "", "=== HTTP Call (outgoing) ==", @@ -130,25 +130,29 @@ public class RestClient_Logging_Test { ); c.reset(); - client().logRequests(DetailLevel.NONE,Level.SEVERE).logToConsole().logger(l).console(MockConsole.class).build().post("/bean",bean).complete(); + clientPlain().logRequests(DetailLevel.FULL,Level.SEVERE,(req,res)->false).logToConsole().logger(l).console(c).build().post("/stream",new InputStreamEntity(new ByteArrayInputStream("foo".getBytes(.complete(); + c.assertContents().isEmpty(); + c.reset(); + + client().logRequests(DetailLevel.NONE,Level.SEVERE,null).logToConsole().logger(l).console(MockConsole.class).build().post("/bean",bean).complete(); } @Test public voi
[juneau] branch master updated: Add header support to @Remote annotation.
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 1dff96f Add header support to @Remote annotation. 1dff96f is described below commit 1dff96f7fd454e2c77fd9278ec617779bdb13454 Author: JamesBognar AuthorDate: Wed Jul 1 10:41:20 2020 -0400 Add header support to @Remote annotation. --- .../org/apache/juneau/http/BasicHeaderTest.java} | 89 .../juneau/http/BasicNameValuePairTest.java} | 88 .../org/apache/juneau/http/HeaderSupplierTest.java | 51 + .../org/apache/juneau/http/BasicNameValuePair.java | 15 +++ .../{remote/Remote.java => HeaderSupplier.java}| 115 + .../Remote.java => NameValuePairSupplier.java} | 115 + .../org/apache/juneau/http/header/BasicHeader.java | 15 +++ .../java/org/apache/juneau/http/remote/Remote.java | 63 +++ .../apache/juneau/internal/CollectionUtils.java| 36 +++ juneau-doc/docs/ReleaseNotes/8.1.4.html| 8 +- .../juneau/rest/client/remote/RemoteMeta.java | 27 - .../org/apache/juneau/rest/client2/RestClient.java | 84 +++ 12 files changed, 480 insertions(+), 226 deletions(-) diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/remote/Remote.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/http/BasicHeaderTest.java similarity index 64% copy from juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/remote/Remote.java copy to juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/http/BasicHeaderTest.java index c2e5217..78f54d3 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/remote/Remote.java +++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/http/BasicHeaderTest.java @@ -1,45 +1,44 @@ -// *** -// * 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.juneau.http.remote; - -import static java.lang.annotation.ElementType.*; -import static java.lang.annotation.RetentionPolicy.*; - -import java.lang.annotation.*; - -/** - * Identifies a proxy against a REST interface. - * - * - * {@doc juneau-rest-client.RestProxies} - * - */ -@Documented -@Target({TYPE}) -@Retention(RUNTIME) -@Inherited -public @interface Remote { - - /** -* REST service path. -* -* -* The possible values are: -* -* An absolute URL. -* A relative URL interpreted as relative to the root URL defined on the RestClient -* No path interpreted as the class name (e.g. "http://localhost/root-url/org.foo.MyInterface;) -* -*/ - String path() default ""; -} +// *** +// * 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
[juneau] branch master updated: RestClient tests.
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 4fb6272 RestClient tests. 4fb6272 is described below commit 4fb627253e92b21d152f7e1858ff937e313b30c1 Author: JamesBognar AuthorDate: Tue Jun 30 21:16:37 2020 -0400 RestClient tests. --- .../rest/client2/RestClient_Logging_Test.java | 56 +- .../apache/juneau/rest/client2/RestRequest.java| 2 +- .../apache/juneau/rest/client2/RestResponse.java | 21 +++- .../rest/reshandlers/InputStreamHandler.java | 1 - 4 files changed, 63 insertions(+), 17 deletions(-) diff --git a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClient_Logging_Test.java b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClient_Logging_Test.java index 6f75d2d..644f455 100644 --- a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClient_Logging_Test.java +++ b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClient_Logging_Test.java @@ -14,8 +14,10 @@ package org.apache.juneau.rest.client2; import static org.junit.runners.MethodSorters.*; +import java.io.*; import java.util.logging.*; +import org.apache.http.entity.*; import org.apache.juneau.*; import org.apache.juneau.http.annotation.*; import org.apache.juneau.rest.*; @@ -39,10 +41,19 @@ public class RestClient_Logging_Test { @Rest public static class A extends BasicRest { - @RestMethod(path="/bean") + @RestMethod public ABean postBean(@Body ABean b) { return b; } + @RestMethod + public InputStream postStream(@Body InputStream b, org.apache.juneau.rest.RestResponse res) { + res.setHeader("Content-Encoding", "identity"); + return b; + } + @RestMethod + public ABean getBean() { + return bean; + } } @Test @@ -79,6 +90,45 @@ public class RestClient_Logging_Test { "=== END ===", "" ); + c.reset(); + + client().logRequests(DetailLevel.FULL,Level.SEVERE).logToConsole().logger(l).console(c).build().get("/bean").complete(); + c.assertContents().is( + "", + "=== HTTP Call (outgoing) ==", + "=== REQUEST ===", + "GET http://localhost/bean;, + "---request headers---", + " Accept: application/json+simple", + "=== RESPONSE ===", + "HTTP/1.1 200 ", + "---response headers---", + " Content-Type: application/json", + "---response content---", + "{f:1}", + "=== END ===", + "" + ); + c.reset(); + + clientPlain().logRequests(DetailLevel.FULL,Level.SEVERE).logToConsole().logger(l).console(c).build().post("/stream",new InputStreamEntity(new ByteArrayInputStream("foo".getBytes(.complete(); + c.assertContents().is( + "", + "=== HTTP Call (outgoing) ==", + "=== REQUEST ===", + "POST http://localhost/stream;, + "---request headers---", + "---request entity---", + "=== RESPONSE ===", + "HTTP/1.1 200 ", + "---response headers---", + " Content-Encoding: identity", + "---response content---", + "foo", + "=== END ===", + "" + ); + c.reset(); client().logRequests(DetailLevel.NONE,Level.SE
[juneau] branch master updated: RestClient tests.
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 06da0d1 RestClient tests. 06da0d1 is described below commit 06da0d14d2b976f1e0d9d95c11c52cac06c6f0de Author: JamesBognar AuthorDate: Tue Jun 30 11:19:11 2020 -0400 RestClient tests. --- .../apache/juneau/http/header/ContentTypeTest.java | 38 + .../java/org/apache/juneau/http/MediaType.java | 2 +- .../java/org/apache/juneau/http/header/Accept.java | 2 +- .../org/apache/juneau/http/header/BasicHeader.java | 12 ++- ...ion.java => BasicParameterizedArrayHeader.java} | 94 +++--- ...position.java => BasicParameterizedHeader.java} | 94 +++--- .../juneau/http/header/ContentDisposition.java | 2 +- .../org/apache/juneau/http/header/ContentType.java | 32 .../rest/client2/RestClient_Headers_Test.java | 36 + .../rest/client2/RestClient_Response_Test.java | 5 -- .../apache/juneau/rest/client2/RestResponse.java | 5 +- .../java/org/apache/juneau/rest/RequestBody.java | 9 ++- .../java/org/apache/juneau/rest/RestResponse.java | 9 ++- 13 files changed, 176 insertions(+), 164 deletions(-) diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/http/header/ContentTypeTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/http/header/ContentTypeTest.java new file mode 100644 index 000..0ec11b28 --- /dev/null +++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/http/header/ContentTypeTest.java @@ -0,0 +1,38 @@ +// *** +// * 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.juneau.http.header; + +import static org.junit.Assert.*; +import static org.junit.runners.MethodSorters.*; + +import org.junit.*; + +@FixMethodOrder(NAME_ASCENDING) +public class ContentTypeTest { + + @Test + public void a01_basic() { + ContentType ct = ContentType.of("application/json"); + assertEquals("application/json", ct.getValue()); + } + + @Test + public void a02_getParameter() { + ContentType ct = ContentType.of("application/json;charset=foo"); + assertEquals("foo", ct.getParameter("charset")); + ct = ContentType.of(" application/json ; charset = foo "); + assertEquals("foo", ct.getParameter("charset")); + + assertNull(ct.getParameter("x")); + } +} diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/MediaType.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/MediaType.java index 563d0ab..8259f6e 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/MediaType.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/MediaType.java @@ -123,7 +123,7 @@ public class MediaType implements Comparable { * * @param mt The media type string. */ - protected MediaType(String mt) { + public MediaType(String mt) { Builder b = new Builder(mt); this.mediaType = b.mediaType; this.type = b.type; diff --git a/juneau-core/juneau-marshall/src/main/java/o
[juneau] branch master updated: RestClient tests.
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 5d439b9 RestClient tests. 5d439b9 is described below commit 5d439b97d70382e237bd093f6606c711835da16b Author: JamesBognar AuthorDate: Mon Jun 29 16:58:49 2020 -0400 RestClient tests. --- .../rest/client2/Remote_BodyAnnotation_Test.java | 12 +- .../rest/client2/Remote_CommonInterfaces_Test.java | 24 ++-- .../client2/Remote_FormDataAnnotation_Test.java| 68 +- .../rest/client2/Remote_HeaderAnnotation_Test.java | 60 - .../rest/client2/Remote_PathAnnotation_Test.java | 52 .../rest/client2/Remote_QueryAnnotation_Test.java | 68 +- .../Remote_RemoteMethodAnnotation_Test.java| 16 +-- .../client2/Remote_RequestAnnotation_Test.java | 20 +-- .../client2/Remote_ResponseAnnotation_Test.java| 4 +- .../apache/juneau/rest/client2/Remote_Test.java| 20 +-- .../rest/client2/RestClient_BasicCalls_Test.java | 16 ++- .../client2/RestClient_CallbackStrings_Test.java | 4 +- .../rest/client2/RestClient_FormData_Test.java | 3 + .../rest/client2/RestClient_Headers_Test.java | 34 + .../juneau/rest/client2/RestClient_Query_Test.java | 5 + .../juneau/rest/client2/RestClient_Test.java | 145 - .../juneau/rest/client2/RrpcInterfaceTest.java | 4 +- .../org/apache/juneau/rest/client2/RestClient.java | 6 +- .../apache/juneau/rest/client2/RestRequest.java| 98 +++--- 19 files changed, 425 insertions(+), 234 deletions(-) diff --git a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/Remote_BodyAnnotation_Test.java b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/Remote_BodyAnnotation_Test.java index 9ba9674..6e2a6ca 100644 --- a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/Remote_BodyAnnotation_Test.java +++ b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/Remote_BodyAnnotation_Test.java @@ -55,9 +55,9 @@ public class Remote_BodyAnnotation_Test { } } - //= + //- // Basic tests - JSON - //= + //- @Rest(parsers=JsonParser.class) public static class A { @@ -151,9 +151,9 @@ public class Remote_BodyAnnotation_Test { assertEquals("foo=bar",x.postX10(new NameValuePairs().append("foo","bar"))); } - //= + //- // Basic tests - OpenAPI - //= + //- @Rest public static class B implements BasicOpenApiRest { @@ -246,9 +246,9 @@ public class Remote_BodyAnnotation_Test { assertEquals("foo=bar",x.postX10(new NameValuePairs().append("foo","bar"))); } - //= + //- // Basic tests - OpenAPI, overridden Content-Type - //= + //- @Rest public static class C { diff --git a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/Remote_CommonInterfaces_Test.java b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/Remote_CommonInterfaces_Test.java index 3d63786..d678ea4 100644 --- a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/Remote_CommonInterfaces_Test.java +++ b/juneau-rest/juneau-re
[juneau] branch master updated: RestClient tests.
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 000b554 RestClient tests. 000b554 is described below commit 000b554916ee289437ab79694ecb82f8b874cd0e Author: JamesBognar AuthorDate: Mon Jun 29 09:30:35 2020 -0400 RestClient tests. --- .../juneau/assertions/FluentStringAssertion.java | 68 +++--- .../client2/Remote_FormDataAnnotation_Test.java| 110 --- .../rest/client2/Remote_HeaderAnnotation_Test.java | 68 ++ .../rest/client2/Remote_PathAnnotation_Test.java | 72 ++ .../rest/client2/Remote_QueryAnnotation_Test.java | 80 ++- .../Remote_RemoteMethodAnnotation_Test.java| 22 ++- .../client2/Remote_RequestAnnotation_Test.java | 18 ++- .../client2/Remote_ResponseAnnotation_Test.java| 10 +- .../rest/client2/RestClient_FormData_Test.java | 149 +++-- .../juneau/rest/client2/RestClient_Query_Test.java | 20 +-- .../juneau/rest/client2/RestClient_Test.java | 10 +- .../juneau/rest/client2/RestClientBuilder.java | 2 +- 12 files changed, 382 insertions(+), 247 deletions(-) diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentStringAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentStringAssertion.java index 442c431..07eb161 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentStringAssertion.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentStringAssertion.java @@ -17,6 +17,7 @@ import static org.apache.juneau.internal.StringUtils.*; import java.util.*; import java.util.function.*; import java.util.regex.*; +import java.util.stream.*; import org.apache.juneau.internal.*; @@ -75,9 +76,7 @@ public class FluentStringAssertion extends FluentAssertion { */ @FluentSetter public FluentStringAssertion replaceAll(String regex, String replacement) { - if (text != null) - text = text.replaceAll(regex, replacement); - return this; + return apply(x -> x == null ? null : text.replaceAll(regex, replacement)); } /** @@ -89,8 +88,53 @@ public class FluentStringAssertion extends FluentAssertion { */ @FluentSetter public FluentStringAssertion replace(String target, String replacement) { - if (text != null) - text = text.replace(target, replacement); + return apply(x -> x == null ? null : text.replace(target, replacement)); + } + + /** +* URL-decodes the text in this assertion. +* +* @return The response object (for method chaining). +*/ + public FluentStringAssertion urlDecode() { + return apply(x->StringUtils.urlDecode(x)); + } + + /** +* Sorts the contents of the text by lines. +* +* @return The response object (for method chaining). +*/ + public FluentStringAssertion sort() { + return apply(x->x == null ? null : Arrays.asList(x.trim().split("[\r\n]+")).stream().sorted().collect(Collectors.joining("\n"))); + } + + /** +* Converts the text to lowercase. +* +* @return The response object (for method chaining). +*/ + public FluentStringAssertion lc() { + return apply(x->x == null ? null : x.toLowerCase()); + } + + /** +* Converts the text to uppercase. +* +* @return The response object (for method chaining). +*/ + public FluentStringAssertion uc() { + return apply(x->x == null ? null : x.toUpperCase()); + } + + /** +* Applies an abitrary function against the text in this assertion. +* +* @param f The function to apply. +* @return The response object (for method chaining). +*/ + public FluentStringAssertion apply(Function f) { + text = f.apply(text); return this; } @@ -226,20 +270,6 @@ public class FluentStringAssertion extends FluentAssertion { } /** -* Asserts that the text equals the specified value after the text has been URL-decoded. -* -* @param value The value to check against. -* @return The response object (for method chaining). -* @throws AssertionError If assertion failed. -*/ - public R urlDecodedIs(String value) throws AssertionError { - String t = urlDecode(text); - if (! isEqualsIc(value, t)) - throw error("Text differed at pos
[juneau] branch master updated: RestClient tests.
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 b8ab71d RestClient tests. b8ab71d is described below commit b8ab71dd29c74f5db9f113450d3dbbd11e0f6bfc Author: JamesBognar AuthorDate: Sun Jun 28 11:12:07 2020 -0400 RestClient tests. --- .../org/apache/juneau/rest/client2/RestRequest.java | 21 +++-- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestRequest.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestRequest.java index 2299fd4..5197957 100644 --- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestRequest.java +++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestRequest.java @@ -1423,25 +1423,21 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur private RestRequest innerQuery(EnumSet flags, List params) { flags = AddFlag.orDefault(flags); params.removeIf(x -> x.getValue() == null); + if (flags.contains(SKIP_IF_EMPTY)) + params.removeIf(x -> isEmpty(x.getValue())); if (flags.contains(REPLACE)) { List l = uriBuilder.getQueryParams(); for (NameValuePair p : params) for (Iterator i = l.iterator(); i.hasNext();) if (i.next().getName().equals(p.getName())) i.remove(); - if (flags.contains(SKIP_IF_EMPTY)) - params.removeIf(x -> isEmpty(x.getValue())); l.addAll(params); uriBuilder.setParameters(l); } else if (flags.contains(PREPEND)) { List l = uriBuilder.getQueryParams(); - if (flags.contains(SKIP_IF_EMPTY)) - params.removeIf(x -> isEmpty(x.getValue())); l.addAll(0, params); uriBuilder.setParameters(l); } else { - if (flags.contains(SKIP_IF_EMPTY)) - params.removeIf(x -> isEmpty(x.getValue())); uriBuilder.addParameters(params); } return this; @@ -1821,6 +1817,8 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur private RestRequest innerFormData(EnumSet flags, List params) { flags = AddFlag.orDefault(flags); params.removeIf(x -> x == null|| x.getValue() == null); + if (flags.contains(SKIP_IF_EMPTY)) + params.removeIf(x -> isEmpty(x.getValue())); if (formData == null) formData = new NameValuePairs(); if (flags.contains(REPLACE)) { @@ -1828,16 +1826,10 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur for (Iterator i = formData.iterator(); i.hasNext();) if (i.next().getName().equals(p.getName())) i.remove(); - if (flags.contains(SKIP_IF_EMPTY)) - params.removeIf(x -> isEmpty(x.getValue())); formData.addAll(params); } else if (flags.contains(PREPEND)) { - if (flags.contains(SKIP_IF_EMPTY)) - params.removeIf(x -> isEmpty(x.getValue())); formData.addAll(0, params); } else { - if (flags.contains(SKIP_IF_EMPTY)) - params.removeIf(x -> isEmpty(x.getValue())); formData.addAll(params); } return this; @@ -2296,6 +2288,8 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur private RestRequest innerHeaders(EnumSet flags, Collection headers) { flags = AddFlag.orDefault(flags); headers.removeIf(x -> x == null || x.getValue() == null); + if (flags.contains(SKIP_IF_EMPTY)) + headers.removeIf(x -> isEmpty(x.getValue())); if (flags.contains(REPLACE)) { for (Header h : headers) removeHeaders(h.getName()); @@ -2307,8 +2301,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur }
[juneau] branch master updated: RestClient tests.
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 8244bed RestClient tests. 8244bed is described below commit 8244bed0bde37f1cd609a41dfda6710068b1d10a Author: JamesBognar AuthorDate: Sun Jun 28 10:49:02 2020 -0400 RestClient tests. --- .../rest/client2/RestClient_FormData_Test.java | 6 ++ .../juneau/rest/client2/RestClient_Query_Test.java | 14 ++- .../org/apache/juneau/rest/client2/RestClient.java | 24 ++--- .../apache/juneau/rest/client2/RestRequest.java| 104 ++--- 4 files changed, 75 insertions(+), 73 deletions(-) diff --git a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClient_FormData_Test.java b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClient_FormData_Test.java index 544d171..b4b4c8c 100644 --- a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClient_FormData_Test.java +++ b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClient_FormData_Test.java @@ -14,6 +14,7 @@ package org.apache.juneau.rest.client2; import static org.apache.juneau.assertions.Assertions.*; import static org.apache.juneau.httppart.HttpPartSchema.*; +import static org.apache.juneau.AddFlag.*; import java.io.*; @@ -58,6 +59,11 @@ public class RestClient_FormData_Test { public void a03_formData_withSchema() throws Exception { client().formData("Foo",AList.of("bar","baz"), T_ARRAY_PIPES).build().post("/formData").run().assertBody().is("Foo=bar%7Cbaz").assertBody().urlDecodedIs("Foo=bar|baz"); client().build().post("/formData").formData("Foo",AList.of("bar","baz"), T_ARRAY_PIPES).run().assertBody().is("Foo=bar%7Cbaz").assertBody().urlDecodedIs("Foo=bar|baz"); + + client().formData("Foo",AList.of("bar","baz"), T_ARRAY_PIPES).build().post("/formData").formData("Foo",AList.of("qux","quux"), T_ARRAY_PIPES).run().assertBody().is("Foo=bar%7Cbaz=qux%7Cquux").assertBody().urlDecodedIs("Foo=bar|baz=qux|quux"); + client().formData("Foo",AList.of("bar","baz"), T_ARRAY_PIPES).build().post("/formData").formData(APPEND,"Foo",AList.of("qux","quux"), T_ARRAY_PIPES).run().assertBody().is("Foo=bar%7Cbaz=qux%7Cquux").assertBody().urlDecodedIs("Foo=bar|baz=qux|quux"); + client().formData("Foo",AList.of("bar","baz"), T_ARRAY_PIPES).build().post("/formData").formData(PREPEND,"Foo",AList.of("qux","quux"), T_ARRAY_PIPES).run().assertBody().is("Foo=qux%7Cquux=bar%7Cbaz").assertBody().urlDecodedIs("Foo=qux|quux=bar|baz"); + client().formData("Foo",AList.of("bar","baz"), T_ARRAY_PIPES).build().post("/formData").formData(REPLACE,"Foo",AList.of("qux","quux"), T_ARRAY_PIPES).run().assertBody().is("Foo=qux%7Cquux").assertBody().urlDecodedIs("Foo=qux|quux"); } @Test diff --git a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClient_Query_Test.java b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClient_Query_Test.java index 52e8529..d2ceaf3 100644 --- a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClient_Query_Test.java +++ b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClient_Query_Test.java @@ -14,12 +14,11 @@ package org.apache.juneau.rest.client2; import static org.apache.juneau.assertions.Assertions.*; import static org.apache.juneau.httppart.HttpPartSchema.*; +import static org.apache.juneau.AddFlag.*; import java.io.*; -import java.util.*; import org.apache.http.*; -import org.apache.juneau.*; import org.apache.juneau.collections.*; import org.apache.juneau.http.*; import org.apache.juneau.rest.*; @@ -126,10 +125,17 @@ public class RestClient_Query_Test { public void a11_query_request() throws Exception { client().build().get("/echo").query("foo", "bar").run().assertBody().contains("GET /echo?foo=bar"); client().build().get("/echo").query("foo", AList.of("bar","baz"), T_ARRAY_PIPES).run().assertBody().contains("GET /echo?foo=bar%7Cbaz")
[juneau] branch master updated: Tests.
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 dead61b Tests. dead61b is described below commit dead61b5d10b595746da25b6c694466cf3af5fcb Author: JamesBognar AuthorDate: Thu Jun 25 16:33:13 2020 -0400 Tests. --- .../java/org/apache/juneau/ComboRoundTripTest.java | 1 - .../java/org/apache/juneau/ComboSerializeTest.java | 1 - .../juneau/serializer/UriResolutionTest.java | 1 - .../org/apache/juneau/testutils/TestUtils.java | 18 -- .../org/apache/juneau/utils/MethodInvokerTest.java | 8 ++--- .../juneau/utils/StackTraceDatabaseTest.java | 5 ++- .../org/apache/juneau/internal/StringUtils.java| 30 .../juneau/microservice/testutils/TestUtils.java | 41 - .../apache/juneau/rest/testutils/TestUtils.java| 42 -- .../juneau/rest/headers/AcceptEncodingTest.java| 18 +- .../juneau/rest/headers/ContentEncodingTest.java | 6 ++-- 11 files changed, 48 insertions(+), 123 deletions(-) diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/ComboRoundTripTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/ComboRoundTripTest.java index ad88e5a..b55b656 100644 --- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/ComboRoundTripTest.java +++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/ComboRoundTripTest.java @@ -26,7 +26,6 @@ import org.apache.juneau.json.*; import org.apache.juneau.msgpack.*; import org.apache.juneau.parser.*; import org.apache.juneau.serializer.*; -import org.apache.juneau.testutils.*; import org.apache.juneau.uon.*; import org.apache.juneau.urlencoding.*; import org.apache.juneau.xml.*; diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/ComboSerializeTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/ComboSerializeTest.java index 4290aca..da1cba6 100644 --- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/ComboSerializeTest.java +++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/ComboSerializeTest.java @@ -25,7 +25,6 @@ import org.apache.juneau.jena.*; import org.apache.juneau.json.*; import org.apache.juneau.msgpack.*; import org.apache.juneau.serializer.*; -import org.apache.juneau.testutils.*; import org.apache.juneau.uon.*; import org.apache.juneau.urlencoding.*; import org.apache.juneau.xml.*; diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/serializer/UriResolutionTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/serializer/UriResolutionTest.java index 9defdc0..69774d7 100644 --- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/serializer/UriResolutionTest.java +++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/serializer/UriResolutionTest.java @@ -23,7 +23,6 @@ import org.apache.juneau.jena.*; import org.apache.juneau.json.*; import org.apache.juneau.msgpack.*; import org.apache.juneau.parser.*; -import org.apache.juneau.testutils.*; import org.apache.juneau.uon.*; import org.apache.juneau.urlencoding.*; import org.apache.juneau.xml.*; diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/testutils/TestUtils.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/testutils/TestUtils.java index c2fa556..5e4e3ee 100644 --- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/testutils/TestUtils.java +++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/testutils/TestUtils.java @@ -21,7 +21,6 @@ import javax.xml.parsers.*; import org.apache.juneau.*; import org.apache.juneau.internal.*; -import org.apache.juneau.json.*; import org.apache.juneau.serializer.*; import org.apache.juneau.utils.*; import org.apache.juneau.xml.*; @@ -32,11 +31,6 @@ import org.xml.sax.*; @SuppressWarnings({}) public class TestUtils { - private static JsonSerializer js2 = JsonSerializer.create() - .ssq() - .addBeanTypes().addRootType() - .build(); - private static final BeanSession beanSession = BeanContext.DEFAULT.createSession(); /** @@ -230,18 +224,6 @@ public class TestUtils { Assert.assertEquals(sortXml(expected), sortXml(actual)); } - public static final void assertObjectMatches(String s, Object o) { - assertObjectMatches(s, o, js2); - } - - public static final void assertObjectMatches(String s, Object o, WriterSerializer ws) { - if ("xxx".equals(s)) - System.err.println(ws.toString(o).replaceAll("", "")); // NOT DEBUG -
[juneau] branch master updated: Tests.
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 e9ab57d Tests. e9ab57d is described below commit e9ab57d0c2332f59484b4eb3e71d55e3c4601da4 Author: JamesBognar AuthorDate: Thu Jun 25 16:21:08 2020 -0400 Tests. --- .../java/org/apache/juneau/ComboRoundTripTest.java | 14 +++--- .../java/org/apache/juneau/ComboSerializeTest.java | 7 +-- .../juneau/serializer/UriResolutionTest.java | 7 +-- .../org/apache/juneau/testutils/TestUtils.java | 17 --- .../juneau/assertions/FluentStringAssertion.java | 52 ++ 5 files changed, 68 insertions(+), 29 deletions(-) diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/ComboRoundTripTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/ComboRoundTripTest.java index dac33e8..ad88e5a 100644 --- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/ComboRoundTripTest.java +++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/ComboRoundTripTest.java @@ -105,9 +105,10 @@ public abstract class ComboRoundTripTest { System.out.println(r); } - if (isRdf) - TestUtils.assertEqualsAfterSort(expected, r, "{0}/{1} parse-normal failed", comboInput.label, testName); - else + if (isRdf) { + Object[] args = { comboInput.label, testName }; + assertString(r).msg("{0}/{1} parse-normal failed", args).equalsAfterSort(expected); + } else assertString(r).msg("{0}/{1} parse-normal failed", comboInput.label, testName).is(expected); } catch (AssertionError e) { @@ -148,9 +149,10 @@ public abstract class ComboRoundTripTest { if (isRdf) r = r.replaceAll("]*>", "").replace('"', '\''); - if (isRdf) - TestUtils.assertEqualsAfterSort(expected, r, "{0}/{1} parse-normal failed", comboInput.label, testName); - else + if (isRdf) { + Object[] args = { comboInput.label, testName }; + assertString(r).msg("{0}/{1} parse-normal failed", args).equalsAfterSort(expected); + } else assertString(r).msg("{0}/{1} parse-normal failed", comboInput.label, testName).is(expected); } catch (AssertionError e) { diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/ComboSerializeTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/ComboSerializeTest.java index 4db4a0f..4290aca 100644 --- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/ComboSerializeTest.java +++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/ComboSerializeTest.java @@ -95,9 +95,10 @@ public abstract class ComboSerializeTest { } } - if (isRdf) - TestUtils.assertEqualsAfterSort(expected, r, "{0}/{1} serialize-normal failed", comboInput.label, testName); - else + if (isRdf) { + Object[] args = { comboInput.label, testName }; + assertString(r).msg("{0}/{1} serialize-normal failed", args).equalsAfterSort(expected); + } else assertString(r).msg("{0}/{1} parse-normal failed", comboInput.label, testName).is(expected); } catch (AssertionError e) { diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/serializer/UriResolutionTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/serializer/UriResolutionTest.java index aaac012..9defdc0 100644 --- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/serializer/UriResolutionTest.java +++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/serializer/UriResolutionTest.java @@ -565,9 +565,10 @@ public class UriResolutionTest { System.out.println(r); } - if (isRdf) - TestUtils.assertEqualsAfterSort(expected, r, "{0}/{1} serialize-normal failed", label, s.getClass().getSimpleName()); - else + if (isRdf) { +
[juneau] branch master updated: Tests.
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 c25f4f5 Tests. c25f4f5 is described below commit c25f4f5397aaf31486efb0abe62419e339038abf Author: JamesBognar AuthorDate: Thu Jun 25 15:55:11 2020 -0400 Tests. --- .../a/rttests/RoundTripObjectsAsStringsTest.java | 17 ++- .../org/apache/juneau/a/rttests/RoundTripTest.java | 3 ++- .../a/rttests/RoundTripTransformBeansTest.java | 22 +++ .../org/apache/juneau/testutils/TestUtils.java | 25 -- .../org/apache/juneau/internal/StringUtils.java| 16 ++ 5 files changed, 52 insertions(+), 31 deletions(-) diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripObjectsAsStringsTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripObjectsAsStringsTest.java index 2e50c3a..0264d64 100755 --- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripObjectsAsStringsTest.java +++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripObjectsAsStringsTest.java @@ -13,6 +13,7 @@ package org.apache.juneau.a.rttests; import static org.apache.juneau.assertions.ObjectAssertion.*; +import static org.apache.juneau.internal.IOUtils.*; import static org.apache.juneau.testutils.TestUtils.*; import static org.junit.Assert.*; import static org.junit.runners.MethodSorters.*; @@ -126,7 +127,7 @@ public class RoundTripObjectsAsStringsTest extends RoundTripTest { B t = new B().init(); if (! returnOriginalObject) { Object r = getSerializer().serialize(t); - assertTrue(TestUtils.toString(r).contains("X-2")); + assertTrue(toString(r).contains("X-2")); } t = roundTrip(t); assertObject(t).json().is("{b1:'X1',b2:'X-2'}"); @@ -274,4 +275,18 @@ public class RoundTripObjectsAsStringsTest extends RoundTripTest { return "C4" + f; } } + + //-- + // Utility methods. + //-- + + private static final String toString(Object o) { + if (o == null) + return null; + if (o instanceof String) + return (String)o; + if (o instanceof byte[]) + return new String((byte[])o, UTF8); + return o.toString(); + } } diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripTest.java index a1a137c..b995f91 100755 --- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripTest.java +++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripTest.java @@ -20,6 +20,7 @@ import java.util.Map.*; import org.apache.juneau.collections.*; import org.apache.juneau.html.*; +import org.apache.juneau.internal.*; import org.apache.juneau.jena.*; import org.apache.juneau.json.*; import org.apache.juneau.msgpack.*; @@ -286,7 +287,7 @@ public abstract class RoundTripTest { } if (debug) - System.err.println("Serialized contents from ["+label+"]...\n---START---\n" + (out instanceof byte[] ? TestUtils.toReadableBytes((byte[])out) : out) + "\n---END---\n"); // NOT DEBUG + System.err.println("Serialized contents from ["+label+"]...\n---START---\n" + (out instanceof byte[] ? StringUtils.toReadableBytes((byte[])out) : out) + "\n---END---\n"); // NOT DEBUG if (validateXmlWhitespace) TestUtils.checkXmlWhitespace(out.toString()); diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripTransformBeansTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripTransformBeansTest.java index fb60c11..01a15fd 100755 --- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripTransformBeansTest.java +++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripTransformBeansTest.java @@ -14,6 +14,7 @@ package org.apache.juneau.a.rttests; import static org.apache.juneau.assertions.ObjectAssertion.*; import static org.apa
[juneau] branch master updated: Tests.
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 a89bba2 Tests. a89bba2 is described below commit a89bba228ec3d4bbe5838817c6b17903acbd238e Author: JamesBognar AuthorDate: Thu Jun 25 15:47:23 2020 -0400 Tests. --- .../java/org/apache/juneau/BasicBeanTests.java | 5 ++- .../apache/juneau/ReadWriteOnlyPropertiesTest.java | 5 ++- .../juneau/a/rttests/RoundTripBeanMapsTest.java| 15 - .../a/rttests/RoundTripTransformBeansTest.java | 5 ++- .../apache/juneau/annotation/BeanIgnoreTest.java | 5 ++- .../apache/juneau/pojotools/PojoSearcherTest.java | 39 +++--- .../org/apache/juneau/testutils/TestUtils.java | 10 +- 7 files changed, 35 insertions(+), 49 deletions(-) diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/BasicBeanTests.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/BasicBeanTests.java index aed59a6..b195698 100644 --- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/BasicBeanTests.java +++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/BasicBeanTests.java @@ -13,7 +13,6 @@ package org.apache.juneau; import static org.apache.juneau.assertions.ObjectAssertion.*; -import static org.apache.juneau.testutils.TestUtils.*; import static org.junit.runners.MethodSorters.*; import java.beans.*; @@ -53,13 +52,13 @@ public class BasicBeanTests { @Test public void a02_testTransientFieldsIgnored_overrideSetting() { JsonSerializer s = SimpleJsonSerializer.DEFAULT.builder().dontIgnoreTransientFields().build(); - assertObjectEquals("{f1:1,f2:2}", A1.create(), s); + assertObject(A1.create()).serialized(s).is("{f1:1,f2:2}"); } @Test public void a03_testTransientFieldsIgnored_overrideAnnotation() { JsonSerializer s = SimpleJsonSerializer.DEFAULT.builder().applyAnnotations(A.class).build(); - assertObjectEquals("{f1:1,f2:2}", A1.create(), s); + assertObject(A1.create()).serialized(s).is("{f1:1,f2:2}"); } public static class A2 { diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/ReadWriteOnlyPropertiesTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/ReadWriteOnlyPropertiesTest.java index 31c480a..e28175b 100644 --- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/ReadWriteOnlyPropertiesTest.java +++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/ReadWriteOnlyPropertiesTest.java @@ -13,7 +13,6 @@ package org.apache.juneau; import static org.apache.juneau.assertions.ObjectAssertion.*; -import static org.apache.juneau.testutils.TestUtils.*; import static org.junit.Assert.*; import static org.junit.runners.MethodSorters.*; @@ -263,7 +262,7 @@ public class ReadWriteOnlyPropertiesTest { @Test public void d03_beanAnnotation_bproAll_serializer_usingConfig() throws Exception { - assertObjectEquals("{f1:1,f2:2}", Dc.create(), SimpleJsonSerializer.DEFAULT.builder().applyAnnotations(Dc.class).build()); + assertObject(Dc.create()).serialized(SimpleJsonSerializer.DEFAULT.builder().applyAnnotations(Dc.class).build()).is("{f1:1,f2:2}"); } @Test @@ -317,7 +316,7 @@ public class ReadWriteOnlyPropertiesTest { @Test public void e03_beanAnnotation_bpwoAll_serializer_usingConfig() throws Exception { - assertObjectEquals("{}", E.create(), SimpleJsonSerializer.DEFAULT.builder().applyAnnotations(Ec.class).build()); + assertObject(E.create()).serialized(SimpleJsonSerializer.DEFAULT.builder().applyAnnotations(Ec.class).build()).is("{}"); } @Test diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripBeanMapsTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripBeanMapsTest.java index bb140bc..45803b1 100755 --- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripBeanMapsTest.java +++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripBeanMapsTest.java @@ -13,7 +13,6 @@ package org.apache.juneau.a.rttests; import static org.apache.juneau.assertions.ObjectAssertion.*; -import static org.apache.juneau.testutils.TestUtils.*; import static org.junit.Assert.*; import static org.junit.runners.MethodSorters.*; @@ -234,19 +233,19 @@ public class RoundTripBeanMapsTest extends RoundTripTest { Object r = s.serialize(b1); B b = p.parse(r, B.class); assertTrue(
[juneau] branch master updated: Tests.
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 66289ff Tests. 66289ff is described below commit 66289ff444f1a135dc00ddccca80300db51f4724 Author: JamesBognar AuthorDate: Thu Jun 25 15:03:28 2020 -0400 Tests. --- .../test/java/org/apache/juneau/jena/RdfTest.java | 6 ++--- .../org/apache/juneau/testutils/TestUtils.java | 29 -- 2 files changed, 3 insertions(+), 32 deletions(-) diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/jena/RdfTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/jena/RdfTest.java index 68415cf..2ce7b33 100755 --- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/jena/RdfTest.java +++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/jena/RdfTest.java @@ -269,7 +269,7 @@ public class RdfTest { assertXmlEquals(expected, rdfXml); b2 = p.parse(rdfXml, B.class); - assertEqualObjects(b, b2, true); + assertObject(b).jsonSameAsSorted(b2); //- // Default is Bag - Should only affect DEFAULT properties. @@ -340,7 +340,7 @@ public class RdfTest { assertXmlEquals(expected, rdfXml); b2 = p.parse(rdfXml, B.class); - assertEqualObjects(b, b2, true); + assertObject(b).jsonSameAsSorted(b2); } @Rdf(prefix="b", namespace="http://ns/;) @@ -503,7 +503,7 @@ public class RdfTest { assertXmlEquals(expected, rdfXml); c2 = p.parse(rdfXml, C.class); - assertEqualObjects(c, c2, true); + assertObject(c).jsonSameAsSorted(c2); } @Rdf(collectionFormat=RdfCollectionFormat.BAG) diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/testutils/TestUtils.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/testutils/TestUtils.java index 9f0c365..92947ce 100644 --- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/testutils/TestUtils.java +++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/testutils/TestUtils.java @@ -35,21 +35,6 @@ import org.xml.sax.*; @SuppressWarnings({}) public class TestUtils { - private static JsonSerializer js = JsonSerializer.create() - .ssq() - .keepNullProperties() - .addBeanTypes().addRootType() - .build(); - - private static JsonSerializer jsSorted = JsonSerializer.create() - .ssq() - .sortCollections() - .sortMaps() - .keepNullProperties() - .addBeanTypes().addRootType() - .build(); - - private static JsonSerializer js2 = JsonSerializer.create() .ssq() .addBeanTypes().addRootType() @@ -64,20 +49,6 @@ public class TestUtils { private static final BeanSession beanSession = BeanContext.DEFAULT.createSession(); /** -* Verifies that two objects are equivalent. -* Does this by doing a string comparison after converting both to JSON. -* @param sort If true sort maps and collections before comparison. -*/ - public static final void assertEqualObjects(Object o1, Object o2, boolean sort) throws SerializeException { - JsonSerializer s = (sort ? jsSorted : js); - String s1 = s.serialize(o1); - String s2 = s.serialize(o2); - if (s1.equals(s2)) - return; - throw new ComparisonFailure(null, s1, s2); - } - - /** * Validates that the whitespace is correct in the specified XML. */ public static final void checkXmlWhitespace(String out) throws SerializeException {
[juneau] branch master updated: Tests.
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 26d1910 Tests. 26d1910 is described below commit 26d191052206458efb904d337cf1aab17408bb7a Author: JamesBognar AuthorDate: Thu Jun 25 14:59:14 2020 -0400 Tests. --- .../a/rttests/RoundTripBeanInheritanceTest.java| 6 +- .../apache/juneau/a/rttests/RoundTripDTOsTest.java | 6 +- .../apache/juneau/a/rttests/RoundTripEnumTest.java | 5 +- .../juneau/a/rttests/RoundTripTrimStringsTest.java | 18 +++--- .../java/org/apache/juneau/dto/atom/AtomTest.java | 10 ++-- .../apache/juneau/dto/cognos/CognosXmlTest.java| 4 +- .../java/org/apache/juneau/html/CommonTest.java| 12 ++-- .../java/org/apache/juneau/jena/CommonTest.java| 16 +++--- .../java/org/apache/juneau/jena/CommonXmlTest.java | 6 +- .../java/org/apache/juneau/jena/RdfParserTest.java | 3 +- .../test/java/org/apache/juneau/jena/RdfTest.java | 11 ++-- .../java/org/apache/juneau/json/CommonTest.java| 12 ++-- .../java/org/apache/juneau/oapi/OpenApiTest.java | 64 +++--- .../org/apache/juneau/testutils/TestUtils.java | 8 --- .../java/org/apache/juneau/uon/Common_UonTest.java | 12 ++-- .../juneau/urlencoding/Common_UrlEncodingTest.java | 12 ++-- .../java/org/apache/juneau/xml/CommonTest.java | 12 ++-- .../org/apache/juneau/xml/XmlCollapsedTest.java| 11 ++-- .../java/org/apache/juneau/xml/XmlContentTest.java | 46 .../apache/juneau/xml/XmlIgnoreCommentsTest.java | 10 ++-- .../juneau/assertions/FluentObjectAssertion.java | 56 ++- .../juneau/rest/client2/RestClient_Test.java | 19 --- 22 files changed, 205 insertions(+), 154 deletions(-) diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripBeanInheritanceTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripBeanInheritanceTest.java index 456cd9c..2c88f15 100755 --- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripBeanInheritanceTest.java +++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripBeanInheritanceTest.java @@ -12,7 +12,7 @@ // *** package org.apache.juneau.a.rttests; -import static org.apache.juneau.testutils.TestUtils.*; +import static org.apache.juneau.assertions.ObjectAssertion.*; import static org.junit.runners.MethodSorters.*; import org.apache.juneau.parser.*; @@ -43,7 +43,7 @@ public class RoundTripBeanInheritanceTest extends RoundTripTest { A2 t1 = new A2(), t2; t1.init(); t2 = roundTrip(t1, A2.class); - assertEqualObjects(t1, t2); + assertObject(t1).jsonSameAs(t2); A3 t3 = new A3(); t3.init(); @@ -145,7 +145,7 @@ public class RoundTripBeanInheritanceTest extends RoundTripTest { public void testBeanInheritance2() throws Exception { B1 t1 = new B1().init(), t2; t2 = roundTrip(t1, B1.class); - assertEqualObjects(t1, t2); + assertObject(t1).jsonSameAs(t2); } public static class B1 extends B2 { diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripDTOsTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripDTOsTest.java index f10ff06..b3cb18d 100755 --- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripDTOsTest.java +++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripDTOsTest.java @@ -12,7 +12,7 @@ // *** package org.apache.juneau.a.rttests; -import static org.apache.juneau.testutils.TestUtils.*; +import static org.apache.juneau.assertions.ObjectAssertion.*; import static org.junit.runners.MethodSorters.*; import org.apache.juneau.dto.jsonschema.*; @@ -38,13 +38,13 @@ public class RoundTripDTOsTest extends RoundTripTest { public void testJsonSchema1() throws Exception { JsonSchema s = JsonSchemaTest.getTest1(); JsonSchema s2 = roundTrip(s, JsonSchema.class); - assertEqualObjects(s, s2); + assertObject(s).jsonSameAs(s2); } @Test public void testJsonSchema2() throws Exception { JsonSchema s = JsonSchemaTest.getTest2(); JsonSchema s2 = roundTrip(s, JsonSchema.class); - assertEqualObjects(s, s2); + assertObject(s).jsonSameAs(s2
[juneau] branch master updated: RestClient tests
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 859d899 RestClient tests 859d899 is described below commit 859d8994b01d7b5c7158ca7270eae39ff6f0d666 Author: JamesBognar AuthorDate: Mon Jun 22 11:59:10 2020 -0400 RestClient tests --- .../org/apache/juneau/http/BasicNameValuePair.java | 38 +++- .../org/apache/juneau/http/NameValuePairable.java | 28 +++ .../org/apache/juneau/http/SerializedHeader.java | 113 +- .../juneau/http/SerializedHeaderBuilder.java | 128 +++ .../juneau/http/SerializedNameValuePair.java | 116 +- .../http/SerializedNameValuePairBuilder.java | 138 .../org/apache/juneau/http/header/BasicHeader.java | 40 .../apache/juneau/rest/client2/RestClientTest.java | 2 +- .../org/apache/juneau/rest/client2/RestClient.java | 54 ++--- .../juneau/rest/client2/RestClientBuilder.java | 157 +++-- .../apache/juneau/rest/client2/RestRequest.java| 243 +++-- 11 files changed, 655 insertions(+), 402 deletions(-) diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/BasicNameValuePair.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/BasicNameValuePair.java index 952705e..be5601b 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/BasicNameValuePair.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/BasicNameValuePair.java @@ -14,14 +14,17 @@ package org.apache.juneau.http; import static org.apache.juneau.internal.StringUtils.*; +import java.util.*; import java.util.function.*; import org.apache.http.*; +import org.apache.juneau.*; import org.apache.juneau.http.header.*; +import org.apache.juneau.reflect.*; /** * Subclass of {@link NameValuePair} for serializing POJOs as URL-encoded form post entries. - * + * * * The value is serialized using {@link Object#toString()} at the point of reading. This allows the value to be modified * periodically by overriding the method to return different values. @@ -56,6 +59,39 @@ public class BasicNameValuePair implements NameValuePair, Headerable { } /** +* Utility method for converting an arbitrary object to a {@link NameValuePair}. +* +* @param o +* The object to cast or convert to a {@link NameValuePair}. +* @return Either the same object cast as a {@link NameValuePair} or converted to a {@link NameValuePair}. +*/ + @SuppressWarnings("rawtypes") + public static NameValuePair cast(Object o) { + if (o instanceof NameValuePair) + return (NameValuePair)o; + if (o instanceof NameValuePairable) + return ((NameValuePairable)o).asNameValuePair(); + if (o instanceof Headerable) + return ((Headerable)o).asHeader(); + if (o instanceof Map.Entry) { + Map.Entry e = (Map.Entry)o; + return BasicNameValuePair.of(stringify(e.getKey()), e.getValue()); + } + throw new BasicRuntimeException("Object of type {0} could not be converted to a NameValuePair.", o == null ? null : o.getClass().getName()); + } + + /** +* Returns true if the {@link #cast(Object)} method can be used on the specified object. +* +* @param o The object to check. +* @return true if the {@link #cast(Object)} method can be used on the specified object. +*/ + public static boolean canCast(Object o) { + ClassInfo ci = ClassInfo.of(o); + return ci != null && ci.isChildOfAny(Headerable.class, NameValuePair.class, NameValuePairable.class, Map.Entry.class); + } + + /** * Constructor. * * @param name The parameter name. diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/NameValuePairable.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/NameValuePairable.java new file mode 100644 index 000..6c39b11 --- /dev/null +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/NameValuePairable.java @@ -0,0 +1,28 @@ +// *** +// * 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 n
[juneau] branch master updated: RestClient tests.
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 25562e5 RestClient tests. 25562e5 is described below commit 25562e5f6e9141b1fdfb6a1a8c3e131eb46a79c9 Author: JamesBognar AuthorDate: Sat Jun 20 10:32:28 2020 -0400 RestClient tests. --- .../org/apache/juneau/http/BasicNameValuePair.java | 10 +- .../java/org/apache/juneau/http/Headerable.java| 32 + .../org/apache/juneau/http/SerializedHeader.java | 12 + .../juneau/http/SerializedNameValuePair.java |9 +- .../org/apache/juneau/http/header/BasicHeader.java | 12 + .../org/apache/juneau/httppart/HttpPartSchema.java | 17 +- .../juneau/httppart/HttpPartSchemaBuilder.java | 116 +- .../juneau/rest/client2/QueryAnnotationTest.java |2 +- .../apache/juneau/rest/client2/RestClientTest.java | 179 ++- .../org/apache/juneau/rest/client2/RestClient.java | 60 +- .../juneau/rest/client2/RestClientBuilder.java | 111 +- .../juneau/rest/client2/RestClientUtils.java | 103 -- .../apache/juneau/rest/client2/RestRequest.java| 1579 13 files changed, 781 insertions(+), 1461 deletions(-) diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/BasicNameValuePair.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/BasicNameValuePair.java index 6910f0f..952705e 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/BasicNameValuePair.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/BasicNameValuePair.java @@ -17,15 +17,16 @@ import static org.apache.juneau.internal.StringUtils.*; import java.util.function.*; import org.apache.http.*; +import org.apache.juneau.http.header.*; /** * Subclass of {@link NameValuePair} for serializing POJOs as URL-encoded form post entries. - * + * * * The value is serialized using {@link Object#toString()} at the point of reading. This allows the value to be modified * periodically by overriding the method to return different values. */ -public class BasicNameValuePair implements NameValuePair { +public class BasicNameValuePair implements NameValuePair, Headerable { private String name; private Object value; @@ -65,6 +66,11 @@ public class BasicNameValuePair implements NameValuePair { this.value = value; } + @Override /* Headerable */ + public BasicHeader asHeader() { + return BasicHeader.of(name, value); + } + @Override /* NameValuePair */ public String getName() { return name; diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/Headerable.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/Headerable.java new file mode 100644 index 000..682c257 --- /dev/null +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/Headerable.java @@ -0,0 +1,32 @@ +// *** +// * 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.juneau.http; + +import org.apache.http.*; + +/** + * Identifies a class that can be converted to a {@link Header} object. + * + * + * Typically used on {@link NameValuePair} classes to allow them to be easily converted to {@link Header} + * objects in a controll
[juneau] branch master updated: RestClient tests.
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 4af551e RestClient tests. 4af551e is described below commit 4af551ec67088b800c8ef1d2a8625d62e1f82167 Author: JamesBognar AuthorDate: Thu Jun 18 17:17:41 2020 -0400 RestClient tests. --- .../apache/juneau/rest/client2/RestClientTest.java | 198 +-- .../org/apache/juneau/rest/client2/RestClient.java | 38 ++- .../juneau/rest/client2/RestClientBuilder.java | 105 ++ .../apache/juneau/rest/client2/RestRequest.java| 370 +++-- .../juneau/rest/mock2/MockRestClientBuilder.java | 51 +-- 5 files changed, 391 insertions(+), 371 deletions(-) diff --git a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java index fb8b0b5..77b4255 100644 --- a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java +++ b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java @@ -122,7 +122,7 @@ public class RestClientTest { public Bean headBean() { return bean; } - @RestMethod(path="/echo") + @RestMethod(path="/echo/*") public String getEcho(org.apache.juneau.rest.RestRequest req) { return req.toString(); } @@ -1415,20 +1415,64 @@ public class RestClientTest { } @Test - public void c18_miscellaneous_request_scheme() throws Exception { + public void c18_miscellaneous_request_uriParts() throws Exception { java.net.URI uri = MockRestClient .create(A.class) .simpleJson() .build() - .get("/bean") + .get() .scheme("http") .host("localhost") .port(8080) .userInfo("foo:bar") + .uri("/bean") + .fragment("baz") + .query("foo", "bar") + .run() + .assertBody().is("{f:1}") + .getRequest().getURI(); + assertEquals("http://foo:bar@localhost:8080/bean?foo=bar#baz;, uri.toString()); + + uri = MockRestClient + .create(A.class) + .simpleJson() + .build() + .get() + .scheme("http") + .host("localhost") + .port(8080) + .userInfo("foo","bar") + .uri("/bean") + .fragment("baz") + .query("foo", "bar") .run() .assertBody().is("{f:1}") .getRequest().getURI(); - assertEquals("http://foo:bar@localhost:8080/bean;, uri.toString()); + assertEquals("http://foo:bar@localhost:8080/bean?foo=bar#baz;, uri.toString()); + + uri = MockRestClient + .create(A.class) + .simpleJson() + .build() + .get() + .uri("http://localhost;) + .uri("http://foo:bar@localhost:8080/bean?foo=bar#baz;) + .run() + .assertBody().is("{f:1}") + .getRequest().getURI(); + assertEquals("http://foo:bar@localhost:8080/bean?foo=bar#baz;, uri.toString()); + + uri = MockRestClient + .create(A.class) + .simpleJson() + .build() + .get() + .uri(new java.net.URI(null, null, null, null)) + .uri(new java.net.URI("http://foo:bar@localhost:8080/bean?foo=bar#baz;)) + .run() + .assertBody().is("{f:1}") + .getRequest().getURI(); + assertEquals("http://foo:bar@localhost:8080/bean?foo=bar#baz;, uri.toString()); } //-- @@ -2819,11 +2863,
[juneau] branch master updated: RestClient tests
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 3aeae88 RestClient tests 3aeae88 is described below commit 3aeae88610af3628f4ce96b1587c8c867ce23c09 Author: JamesBognar AuthorDate: Thu Jun 18 13:34:27 2020 -0400 RestClient tests --- .../org/apache/juneau/utils/MethodInvokerTest.java | 5 +- .../org/apache/juneau/mstat/MethodExecStats.java | 3 +- .../juneau/serializer/SerializerSession.java | 2 +- .../org/apache/juneau/utils/MethodExecStats.java | 181 .../org/apache/juneau/utils/MethodInvoker.java | 2 + .../apache/juneau/rest/client2/MarshallsTest.java | 83 ++ .../apache/juneau/rest/client2/RestClientTest.java | 314 + .../rest/client2/BasicHttpEntityRequestBase.java} | 56 ++-- .../juneau/rest/client2/BasicHttpRequestBase.java} | 54 +--- .../apache/juneau/rest/client2/RestRequest.java| 58 ++-- .../apache/juneau/rest/client2/RestResponse.java | 9 + .../apache/juneau/rest/mock2/MockRestRequest.java | 1 + .../java/org/apache/juneau/rest/RestContext.java | 1 + .../org/apache/juneau/rest/RestContextStats.java | 2 +- 14 files changed, 465 insertions(+), 306 deletions(-) diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/utils/MethodInvokerTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/utils/MethodInvokerTest.java index d904e7c..fe3512d 100644 --- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/utils/MethodInvokerTest.java +++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/utils/MethodInvokerTest.java @@ -18,6 +18,7 @@ import static org.junit.runners.MethodSorters.*; import java.lang.reflect.*; +import org.apache.juneau.mstat.*; import org.junit.*; @FixMethodOrder(NAME_ASCENDING) @@ -62,7 +63,7 @@ public class MethodInvokerTest { mi.invoke(a); } catch (Exception e) {} - assertObjectMatches("{method:'A.bar',runs:3,running:0,errors:3,minTime:*,maxTime:*,avgTime:*,totalTime:*,exceptions:[{exception:'RuntimeException',hash:'*',count:3}]}", mes); + assertObjectMatches("{method:'A.bar',runs:3,running:0,errors:3,minTime:*,maxTime:*,avgTime:*,totalTime:*,exceptions:[{hash:'*',count:3,exceptionClass:*,message:*,stackTrace:*}]}", mes); } @Test @@ -83,7 +84,7 @@ public class MethodInvokerTest { mi.invoke(a, 1, "x"); } catch (Exception e) {} - assertObjectMatches("{method:'A.baz',runs:3,running:0,errors:3,minTime:*,maxTime:*,avgTime:*,totalTime:*,exceptions:[{exception:'IllegalArgumentException',hash:'*',count:3}]}", mes); + assertObjectMatches("{method:'A.baz',runs:3,running:0,errors:3,minTime:*,maxTime:*,avgTime:*,totalTime:*,exceptions:[{hash:'*',count:3,exceptionClass:*,message:*,stackTrace:*}]}", mes); } @Test diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/mstat/MethodExecStats.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/mstat/MethodExecStats.java index 7d81ba4..598c53a 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/mstat/MethodExecStats.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/mstat/MethodExecStats.java @@ -149,7 +149,8 @@ public class MethodExecStats implements Comparable { * @return The average execution time in milliseconds. */ public int getAvgTime() { - return (int)(getTotalTime() / getRuns()); + int runs = getRuns(); + return runs == 0 ? 0 : (int)(getTotalTime() / runs); } /** diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.java index 463e5dd..599ab26 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.java @@ -264,7 +264,7 @@ public abstract class SerializerSession extends BeanTraverseSession { p.getName(), p.getBeanMeta().getClassMeta(), t.getLocalizedMessage()); if (! isIgnoreInvocationExceptionsOnGetters()) throw new SerializeException(this, "{0}Could not call getValue() on property ''{1}'' of class ''{2}'', exception = {3}", prefix, - p.getName(), p.getBeanMeta().getClassMeta(), t.getLocalizedMessage()); + p.getName(), p.getBean
[juneau] branch master updated: RestClient tests
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 99f1bc1 RestClient tests 99f1bc1 is described below commit 99f1bc1ff6064f089ee2e578eb0084c8a24b11ae Author: JamesBognar AuthorDate: Thu Jun 18 10:54:04 2020 -0400 RestClient tests --- .../apache/juneau/rest/client2/RestClientTest.java | 85 +- .../org/apache/juneau/rest/client2/RestClient.java | 15 ++-- .../apache/juneau/rest/client2/RestRequest.java| 4 +- .../juneau/rest/client2/RestResponseBody.java | 8 +- 4 files changed, 97 insertions(+), 15 deletions(-) diff --git a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java index 15cafef..8414385 100644 --- a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java +++ b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java @@ -1297,6 +1297,75 @@ public class RestClientTest { assertEquals("{f:1}", IOUtils.read(res.getEntity().getContent())); } + @Test + public void c08_miscellaneous_executeHttpHostHttpRequest() throws Exception { + HttpGet x = new HttpGet("http://localhost/bean;); + HttpHost target = new HttpHost("localhost"); + x.addHeader("Accept", "text/json+simple"); + HttpResponse res = MockRestClient + .create(A.class) + .build() + .execute(target, x); + assertEquals("{f:1}", IOUtils.read(res.getEntity().getContent())); + } + + @Test + public void c09_miscellaneous_executeHttpHostHttpRequestHttpContext() throws Exception { + HttpGet x = new HttpGet("http://localhost/bean;); + HttpHost target = new HttpHost("localhost"); + HttpContext context = new BasicHttpContext(); + x.addHeader("Accept", "text/json+simple"); + HttpResponse res = MockRestClient + .create(A.class) + .build() + .execute(target, x, context); + assertEquals("{f:1}", IOUtils.read(res.getEntity().getContent())); + } + + @Test + public void c10_miscellaneous_executeResponseHandler() throws Exception { + HttpGet x = new HttpGet("http://localhost/bean;); + x.addHeader("Accept", "text/json+simple"); + String res = MockRestClient + .create(A.class) + .build() + .execute(x, new BasicResponseHandler()); + assertEquals("{f:1}", res); + } + + @Test + public void c11_miscellaneous_executeHttpUriRequestResponseHandlerHttpContext() throws Exception { + HttpGet x = new HttpGet("http://localhost/bean;); + x.addHeader("Accept", "text/json+simple"); + String res = MockRestClient + .create(A.class) + .build() + .execute(x, new BasicResponseHandler(), new BasicHttpContext()); + assertEquals("{f:1}", res); + } + + @Test + public void c12_miscellaneous_executeHttpHostHttpRequestResponseHandlerHttpContext() throws Exception { + HttpGet x = new HttpGet("http://localhost/bean;); + x.addHeader("Accept", "text/json+simple"); + String res = MockRestClient + .create(A.class) + .build() + .execute(new HttpHost("localhost"), x, new BasicResponseHandler(), new BasicHttpContext()); + assertEquals("{f:1}", res); + } + + @Test + public void c13_miscellaneous_executeHttpHostHttpRequestResponseHandler() throws Exception { + HttpGet x = new HttpGet("http://localhost/bean;); + x.addHeader("Accept", "text/json+simple"); + String res = MockRestClient + .create(A.class) + .build() + .execute(new HttpHost("localhost"), x, new BasicResponseHandler()); + assertEquals("{f:1}", res); + } + //---
[juneau] branch master updated: RestClient tests.
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 66191a6 RestClient tests. 66191a6 is described below commit 66191a63981619aa2d60f8494b75840008e25c41 Author: JamesBognar AuthorDate: Thu Jun 18 10:01:24 2020 -0400 RestClient tests. --- .../src/main/java/org/apache/juneau/Session.java | 2 +- .../apache/juneau/rest/client2/RestClientTest.java | 35 ++- .../apache/juneau/rest/mock2/MockRestClient.java | 21 +- .../apache/juneau/rest/mock2/MockRestRequest.java | 330 - .../juneau/rest/mock2/MockServletRequest.java | 74 + 5 files changed, 379 insertions(+), 83 deletions(-) diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Session.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Session.java index 0c2dfd1..3b3f1a1 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Session.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Session.java @@ -331,7 +331,7 @@ public abstract class Session { * @see Context#CONTEXT_locale * @return The session locale. */ - public final Locale getLocale() { + public Locale getLocale() { return locale; } diff --git a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java index b80713c..15cafef 100644 --- a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java +++ b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java @@ -49,6 +49,7 @@ import org.apache.juneau.http.header.*; import org.apache.juneau.http.header.ContentType; import org.apache.juneau.http.response.*; import org.apache.juneau.httppart.*; +import org.apache.juneau.internal.*; import org.apache.juneau.json.*; import org.apache.juneau.marshall.*; import org.apache.juneau.parser.*; @@ -1131,7 +1132,7 @@ public class RestClientTest { //-- @Test - public void c01_interceptors() throws RestCallException { + public void c01_miscellaneous_interceptors() throws RestCallException { MockRestClient .create(A.class) .simpleJson() @@ -1173,7 +1174,7 @@ public class RestClientTest { } @Test - public void c02_httpProcessor() throws RestCallException { + public void c02_miscellaneous_httpProcessor() throws RestCallException { MockRestClient .create(A.class) .simpleJson() @@ -1196,7 +1197,7 @@ public class RestClientTest { } @Test - public void c03_requestExecutor() throws RestCallException { + public void c03_miscellaneous_requestExecutor() throws RestCallException { AtomicBoolean b1 = new AtomicBoolean(); MockRestClient .create(A.class) @@ -1216,7 +1217,7 @@ public class RestClientTest { } @Test - public void c04_defaultHeaders() throws RestCallException { + public void c04_miscellaneous_defaultHeaders() throws RestCallException { MockRestClient .create(A.class) .simpleJson() @@ -1228,7 +1229,7 @@ public class RestClientTest { } @Test - public void c05_miscellaneous() { + public void c05_miscellaneous_httpClientBuilderMethods() { RestClient.create() .disableRedirectHandling() .redirectStrategy(DefaultRedirectStrategy.INSTANCE) @@ -1272,6 +1273,30 @@ public class RestClientTest { .evictIdleConnections(1, TimeUnit.DAYS); } + @SuppressWarnings("deprecation") + @Test + public void c06_miscellaneous_unusedHttpClientMethods() { + RestClient rc = RestClient + .create() + .build(); + + try { + assertNotNull(rc.getParams()); + } catch (UnsupportedOperationException e) {} + assertNotNull(rc.getConnectionManager()); + } + + @Test + public void c07_miscellaneous_executeHttpUriRequest() throws Exception { + HttpGet x = new HttpGet("http://localhost/bean;); + x.addHeader("Accept", "text/json+simple"); + HttpResponse res = MockRestClient +
[juneau] branch master updated: RestClient tests.
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 4146521 RestClient tests. 4146521 is described below commit 41465213e58b7a02f2a36cc670654a599a827dc3 Author: JamesBognar AuthorDate: Tue Jun 16 16:52:37 2020 -0400 RestClient tests. --- .../org/apache/juneau/utils/StringUtilsTest.java | 31 .../juneau/assertions/FluentStringAssertion.java | 73 +++-- .../org/apache/juneau/internal/StringUtils.java| 48 ++ .../apache/juneau/rest/client2/RestClientTest.java | 158 ++-- .../org/apache/juneau/rest/client2/RestClient.java | 34 - .../juneau/rest/client2/RestClientBuilder.java | 39 + .../apache/juneau/rest/client2/RestResponse.java | 4 +- .../org/apache/juneau/rest/mock2/MockConsole.java | 164 + .../org/apache/juneau/rest/mock2/MockLogger.java | 147 -- 9 files changed, 629 insertions(+), 69 deletions(-) diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/utils/StringUtilsTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/utils/StringUtilsTest.java index 7c1cf3a..db0980a 100755 --- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/utils/StringUtilsTest.java +++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/utils/StringUtilsTest.java @@ -1034,4 +1034,35 @@ public class StringUtilsTest { assertEquals("foo%7Bbar%7Dbaz", fixUrl("foo{bar}baz")); assertEquals("%7Dfoo%7Bbar%7Dbaz%7B", fixUrl("}foo{bar}baz{")); } + + // + // diffPosition(String,String) + // + @Test + public void testDiffPosition() throws Exception { + assertEquals(-1, diffPosition("a", "a")); + assertEquals(-1, diffPosition(null, null)); + assertEquals(0, diffPosition("a", "b")); + assertEquals(1, diffPosition("aa", "ab")); + assertEquals(1, diffPosition("aaa", "ab")); + assertEquals(1, diffPosition("aa", "abb")); + assertEquals(0, diffPosition("a", null)); + assertEquals(0, diffPosition(null, "b")); + } + + // + // diffPositionIc(String,String) + // + @Test + public void testDiffPositionIc() throws Exception { + assertEquals(-1, diffPositionIc("a", "a")); + assertEquals(-1, diffPositionIc("a", "A")); + assertEquals(-1, diffPositionIc(null, null)); + assertEquals(0, diffPositionIc("a", "b")); + assertEquals(1, diffPositionIc("aa", "Ab")); + assertEquals(1, diffPositionIc("aaa", "Ab")); + assertEquals(1, diffPositionIc("aa", "Abb")); + assertEquals(0, diffPositionIc("a", null)); + assertEquals(0, diffPositionIc(null, "b")); + } } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentStringAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentStringAssertion.java index 2b13f4f..d359bd5 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentStringAssertion.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentStringAssertion.java @@ -28,7 +28,7 @@ import org.apache.juneau.internal.*; * client * .get(URL) * .run() - * .assertBody().equals("OK"); + * .assertBody().is("OK"); * * @param The return type. */ @@ -67,13 +67,40 @@ public class FluentStringAssertion extends FluentAssertion { /** * Asserts that the text equals the specified value. * -* @param value The value to check against. +* Example: +* +* // Validates the response body of an HTTP call is the text "OK". +* client +* .get(URL) +* .run() +* .assertBody().e
[juneau] branch master updated: RestClient tests.
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 db31683 RestClient tests. db31683 is described below commit db316836b999775f94bd56e307a1a10341978f5d Author: JamesBognar AuthorDate: Mon Jun 15 20:11:18 2020 -0400 RestClient tests. --- .../remote/RrpcInterfaceMeta.java} | 38 +- .../remote/RrpcInterfaceMethodMeta.java} | 8 +- .../org/apache/juneau/remote/RemoteInterface.java | 5 + .../apache/juneau/rest/client2/RemotesTest.java| 512 ++--- ...erfaceProxyTest.java => RrpcInterfaceTest.java} | 6 +- .../org/apache/juneau/rest/client/RestClient.java | 6 +- .../org/apache/juneau/rest/client2/RestClient.java | 259 +-- .../java/org/apache/juneau/rest/RestContext.java | 7 +- .../org/apache/juneau/rest/RestMethodContext.java | 18 +- .../juneau/rest/RestMethodContextBuilder.java | 12 + .../apache/juneau/rest/annotation/RestMethod.java | 4 +- .../org/apache/juneau/rest/remote/RrpcServlet.java | 18 +- 12 files changed, 652 insertions(+), 241 deletions(-) diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/remote/RemoteInterfaceMeta.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/remote/RrpcInterfaceMeta.java similarity index 77% rename from juneau-core/juneau-marshall/src/main/java/org/apache/juneau/remote/RemoteInterfaceMeta.java rename to juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/remote/RrpcInterfaceMeta.java index f2d0f4e..de5fa05 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/remote/RemoteInterfaceMeta.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/remote/RrpcInterfaceMeta.java @@ -10,7 +10,7 @@ // * "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.juneau.remote; +package org.apache.juneau.http.remote; import static org.apache.juneau.internal.StringUtils.*; import java.lang.reflect.*; @@ -18,21 +18,22 @@ import java.util.*; import org.apache.juneau.collections.*; import org.apache.juneau.reflect.*; +import org.apache.juneau.remote.*; /** * Contains the meta-data about a remote proxy REST interface. * * - * Captures the information in {@link RemoteInterface @RemoteInterface} annotations for caching and reuse. + * Captures the information in {@link Remote @Remote} annotations for caching and reuse. * * * {@doc juneau-rest-server.restRPC} * */ -public class RemoteInterfaceMeta { +public class RrpcInterfaceMeta { - private final Map methods; - private final Map methodsByPath; + private final Map methods; + private final Map methodsByPath; private final String path; private final Class c; @@ -40,28 +41,33 @@ public class RemoteInterfaceMeta { * Constructor. * * @param c -* The interface class annotated with a {@link RemoteInterface @RemoteInterface} annotation. +* The interface class annotated with a {@link Remote @Remote} annotation. * Note that the annotations are optional. * @param uri * The absolute URL of the remote REST interface that implements this proxy interface. * This is only used on the client side. */ - public RemoteInterfaceMeta(Class c, String uri) { + @SuppressWarnings("deprecation") + public RrpcInterfaceMeta(Class c, String uri) { this.c = c; String path = ""; ClassInfo ci = ClassInfo.of(c); - List rr = ci.getAnnotations(RemoteInterface.class); - for (RemoteInterface r : rr) + + for (RemoteInterface r : ci.getAnnotations(RemoteInterface.class)) + if (! r.path().isEmpty()) + path = trimSlashes(r.path()); + + for (Remote r : ci.getAnnotations(Remote.class)) if (! r.path().isEmpty()) path = trimSlashes(r.path()); - AMap methods = AMap.of(); + AMap methods = AMap.of(); for (MethodInfo m : ci.getPublicMethods()) if (m.isPublic()) - methods.put(m.inner(), new RemoteInterfaceMethod(uri, m.inner())); + methods.put(m.inner(), new Rrp
[juneau] branch master updated: Throwables not always thrown from @Remote methods.
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 b6bed70 Throwables not always thrown from @Remote methods. b6bed70 is described below commit b6bed7012babe1ec941efb9da4ce7420f335dd3e Author: JamesBognar AuthorDate: Mon Jun 15 12:43:24 2020 -0400 Throwables not always thrown from @Remote methods. --- .../org/apache/juneau/internal/ThrowableUtils.java | 32 .../rest/test/client/ThirdPartyProxyTest.java | 6 +- .../juneau/rest/client2/InterfaceProxyTest.java| 4 +- .../apache/juneau/rest/client2/RemotesTest.java| 64 +++ .../juneau/rest/client2/RestCallException.java | 64 ++- .../org/apache/juneau/rest/client2/RestClient.java | 209 - 6 files changed, 203 insertions(+), 176 deletions(-) diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ThrowableUtils.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ThrowableUtils.java index ac7bc4b..227c8f3 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ThrowableUtils.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ThrowableUtils.java @@ -15,6 +15,7 @@ package org.apache.juneau.internal; import java.text.*; import org.apache.juneau.*; +import org.apache.juneau.reflect.*; /** * Various utility methods for creating and working with throwables. @@ -117,4 +118,35 @@ public class ThrowableUtils { } return null; } + + /** +* Given a list of available throwable types, attempts to create and throw the exception based on name. +* +* @param name The exception name. Can be a simple name or fully-qualified. +* @param message The exception message passed to the exception constructor. +* @param throwables The list of available throwable classes to choose from. +* @throws Throwable The thrown exception if it was possible to create. +*/ + public static void throwException(String name, String message, Class...throwables) throws Throwable { + if (name != null) + for (Class t : throwables) + if (t.getName().endsWith(name)) + doThrow(t, message); + } + + private static void doThrow(Class t, String msg) throws Throwable { + ConstructorInfo c = null; + ClassInfo ci = ClassInfo.of(t); + if (msg != null) { + c = ci.getPublicConstructor(String.class); + if (c != null) + throw c.invoke(msg); + c = ci.getPublicConstructor(Object.class); + if (c != null) + throw c.invoke(msg); + } + c = ci.getPublicConstructor(); + if (c != null) + throw c.invoke(); + } } diff --git a/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/client/ThirdPartyProxyTest.java b/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/client/ThirdPartyProxyTest.java index 2b65e84..bd7053a 100644 --- a/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/client/ThirdPartyProxyTest.java +++ b/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/client/ThirdPartyProxyTest.java @@ -66,7 +66,7 @@ public class ThirdPartyProxyTest extends RestTestcase { public ThirdPartyProxyTest(String label, Serializer serializer, Parser parser) { proxy = getCached(label, ThirdPartyProxy.class); if (proxy == null) { - this.proxy = getClient(label, serializer, parser).builder().partSerializer(UonSerializer.DEFAULT.builder().addBeanTypes().addRootType().build()).build().getRemote(ThirdPartyProxy.class, null, serializer, parser); + this.proxy = getClient(label, serializer, parser).builder().ignoreErrors().partSerializer(UonSerializer.DEFAULT.builder().addBeanTypes().addRootType().build()).build().getRemote(ThirdPartyProxy.class, null, serializer, parser); cache(label, proxy); } } @@ -2352,7 +2352,7 @@ public class ThirdPartyProxyTest extends RestTestcase { // Various primitives @RemoteMethod(method="POST", path="/setInt") - void setInt(@Body int x); + void setInt(@Body int x) throws AssertionError; @RemoteMethod(method="POST", path="/setInteger") void
[juneau] branch master updated: RestClient tests.
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 10fbdc8 RestClient tests. 10fbdc8 is described below commit 10fbdc8f01a5fced232261d7ee6acf320226cd3a Author: JamesBognar AuthorDate: Sat Jun 13 17:03:10 2020 -0400 RestClient tests. --- .../org/apache/juneau/reflect/ConstructorInfo.java | 10 +++ .../org/apache/juneau/reflect/ExecutableInfo.java | 5 ++ .../java/org/apache/juneau/reflect/MethodInfo.java | 10 +++ .../main/ConfigurablePropertyCodeGenerator.java| 5 +- .../juneau/rest/client2/InterfaceProxyTest.java| 4 +- .../apache/juneau/rest/client2/RemotesTest.java| 67 -- .../juneau/rest/client2/RequestBeanProxyTest.java | 50 ++--- .../org/apache/juneau/rest/client2/RestClient.java | 8 +-- .../apache/juneau/rest/mock2/MockRestClient.java | 82 +- .../juneau/rest/mock2/MockRestClientBuilder.java | 1 - .../org/apache/juneau/rest/StatusCodesTest.java| 6 +- .../rest/annotation/RestMethodGuardsTest.java | 2 +- .../rest/annotation/RestResourceLoggingTest.java | 2 +- .../annotation/RestResourceSerializersTest.java| 2 +- .../annotation/RestResourceStaticFilesTest.java| 2 +- .../rest/annotation2/BodyAnnotationTest.java | 10 +-- .../rest/annotation2/PathAnnotationTest.java | 14 ++-- .../rest/annotation2/ResponseAnnotationTest.java | 6 +- .../rest/annotation2/RestResourceParsersTest.java | 2 +- .../juneau/rest/annotation2/RoleGuardTest.java | 76 ++-- .../apache/juneau/rest/exceptions/BasicTest.java | 14 ++-- .../juneau/rest/headers/AcceptCharsetTest.java | 2 +- .../juneau/rest/headers/AcceptEncodingTest.java| 4 +- .../org/apache/juneau/rest/headers/AcceptTest.java | 10 +-- .../juneau/rest/headers/ContentEncodingTest.java | 2 +- .../juneau/rest/headers/ContentTypeTest.java | 8 +-- .../apache/juneau/rest/responses/BasicTest.java| 4 +- 27 files changed, 300 insertions(+), 108 deletions(-) diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ConstructorInfo.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ConstructorInfo.java index 8b93b7b..367a18b 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ConstructorInfo.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ConstructorInfo.java @@ -175,4 +175,14 @@ public final class ConstructorInfo extends ExecutableInfo implements Comparable< } return i; } + + // + + @Override /* GENERATED - ExecutableInfo */ + public ConstructorInfo accessible() { + super.accessible(); + return this; + } + + // } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ExecutableInfo.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ExecutableInfo.java index b60ac3e..a8d24af 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ExecutableInfo.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ExecutableInfo.java @@ -688,6 +688,7 @@ public abstract class ExecutableInfo { * * @return This object (for method chaining). */ + @FluentSetter public ExecutableInfo accessible() { setAccessible(); return this; @@ -827,4 +828,8 @@ public abstract class ExecutableInfo { public String toString() { return getShortName(); } + + // + + // } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/MethodInfo.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/MethodInfo.java index 96635cc..c2bfe43 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/MethodInfo.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/MethodInfo.java @@ -580,4 +580,14 @@ public final class MethodInfo extends ExecutableInfo implements Comparable + + @Override /* GENERATED - ExecutableInfo */ + public MethodInfo accessible() { + super.accessible(); + return this; + } + + // } diff --git a/juneau-releng/juneau-all/src/java/main/ConfigurablePropertyCodeGenerator.java b/juneau-releng/juneau-all/src/java/main/ConfigurablePropertyCodeGenerator.java index 9781e10..9e96693 100644 --- a/juneau-releng/juneau-all/src/java/main/ConfigurablePropertyCodeGenerator.java +++ b/juneau-releng/juneau-all/src/java/main/ConfigurablePropertyCodeGenerator.java @@ -168,7 +168,10 @@ public class ConfigurablePropertyCodeGenera
[juneau] branch master updated: RestClient tests.
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 31dceb4 RestClient tests. 31dceb4 is described below commit 31dceb4882e1a576efb61801c16dfabd7ecac66c Author: JamesBognar AuthorDate: Sat Jun 13 14:55:01 2020 -0400 RestClient tests. --- .../apache/juneau/http/remote/RemoteMethod.java| 5 ++- .../juneau/httppart/bean/RequestBeanMeta.java | 10 ++--- .../09.juneau-rest-client/01.RestProxies.html | 24 ++-- .../apache/juneau/rest/client2/RemotesTest.java| 44 ++ .../org/apache/juneau/rest/client/RestClient.java | 10 + .../rest/client/remote/RemoteMethodMeta.java | 25 ++-- .../org/apache/juneau/rest/client2/RestClient.java | 13 +-- .../apache/juneau/rest/mock2/MockRestClient.java | 1 - 8 files changed, 78 insertions(+), 54 deletions(-) diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/remote/RemoteMethod.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/remote/RemoteMethod.java index 064489e..5b06fa5 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/remote/RemoteMethod.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/remote/RemoteMethod.java @@ -21,7 +21,10 @@ import java.lang.annotation.*; import org.apache.juneau.http.annotation.*; /** - * Annotation applied to Java methods on REST proxy. + * Annotation applied to Java methods on REST proxy interface classes. + * + * + * Note that this annotation is optional if you do not need to override any of the values. * * * {@doc juneau-rest-client.RestProxies} diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/RequestBeanMeta.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/RequestBeanMeta.java index 395724d..e176cc7 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/RequestBeanMeta.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/RequestBeanMeta.java @@ -102,11 +102,7 @@ public class RequestBeanMeta { if (m.isPublic()) { assertNoInvalidAnnotations(m, ResponseHeader.class, ResponseBody.class, ResponseStatus.class); String n = m.getSimpleName(); - if (m.hasAnnotation(Body.class)) { - assertNoArgs(m, Body.class); - assertReturnNotVoid(m, Body.class); - properties.put(n, RequestBeanPropertyMeta.create(BODY, Body.class, m)); - } else if (m.hasAnnotation(Header.class)) { + if (m.hasAnnotation(Header.class)) { assertNoArgs(m, Header.class); assertReturnNotVoid(m, Header.class); properties.put(n, RequestBeanPropertyMeta.create(HEADER, Header.class, m)); @@ -122,6 +118,10 @@ public class RequestBeanMeta { assertNoArgs(m, Path.class); assertReturnNotVoid(m, Path.class); properties.put(n, RequestBeanPropertyMeta.create(PATH, Path.class, m)); + } else if (m.hasAnnotation(Body.class)) { + assertNoArgs(m, Body.class); + assertReturnNotVoid(m, Body.class); + properties.put(n, RequestBeanPropertyMeta.create(BODY, Body.class, m)); } } } diff --git a/juneau-doc/docs/Topics/09.juneau-rest-client/01.RestProxies.html b/juneau-doc/docs/Topics/09.juneau-rest-client/01.RestProxies.html index 5e84350..42279c2 100644 --- a/juneau-doc/docs/Topics/09.juneau-rest-client/01.RestProxies.html +++ b/juneau-doc/docs/Topics/09.juneau-rest-client/01.RestProxies.html @@ -13,7 +13,8 @@ ***/ --> -REST Proxies +{8.1.4-updated} +Remote REST Proxies The juneau-rest-client library can also be used to define interface proxies against 3rd-party REST interfaces. @@ -38,8 +39,8 @@ REST Proxies {@link oaj.http.remote} - {@link oaj.http.remote.Rem
[juneau] branch master updated: RestClient tests
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 64bde2a RestClient tests 64bde2a is described below commit 64bde2ae99748170c2f6e4daa5d459da2963bd52 Author: JamesBognar AuthorDate: Sat Jun 13 12:57:59 2020 -0400 RestClient tests --- .../org/apache/juneau/rest/test/MockRestTest.java | 58 .../java/org/apache/juneau/rest/test/Root.java | 1 - .../org/apache/juneau/rest/test/_TestSuite.java| 6 - .../rest/test/client/RestClientResource.java | 38 - .../juneau/rest/test/client/RestClientTest.java| 157 - juneau-rest/juneau-rest-client-utest/pom.xml | 5 + .../juneau/rest/client2}/ClientFuturesTest.java| 4 +- .../apache/juneau/rest/client2}/FormDataTest.java | 6 +- .../juneau/rest/client2}/InterfaceProxyTest.java | 2 +- .../juneau/rest/client2}/RequestBeanProxyTest.java | 2 +- .../apache/juneau/rest/client2/RestClientTest.java | 57 +++- .../rest/client2/BasicRestCallInterceptor.java | 11 -- .../juneau/rest/client2/RestCallInterceptor.java | 4 +- .../org/apache/juneau/rest/client2/RestClient.java | 43 -- .../juneau/rest/client2/RestClientBuilder.java | 51 +-- .../apache/juneau/rest/client2/RestRequest.java| 11 +- .../apache/juneau/rest/client2/RestResponse.java | 6 +- .../juneau/rest/mock2/MockRestClientBuilder.java | 5 +- 18 files changed, 139 insertions(+), 328 deletions(-) diff --git a/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/MockRestTest.java b/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/MockRestTest.java deleted file mode 100644 index 58f465b..000 --- a/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/MockRestTest.java +++ /dev/null @@ -1,58 +0,0 @@ -// *** -// * 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.juneau.rest.test; - -import static org.apache.juneau.http.HttpMethodName.*; -import static org.junit.Assert.*; -import static org.junit.runners.MethodSorters.*; - -import org.apache.juneau.http.annotation.Body; -import org.apache.juneau.json.*; -import org.apache.juneau.rest.annotation.*; -import org.apache.juneau.rest.client2.*; -import org.apache.juneau.rest.mock2.*; -import org.junit.*; - -@FixMethodOrder(NAME_ASCENDING) -public class MockRestTest { - - //= - // Basic tests - //= - - @Rest - public static class A { - @RestMethod(name=PUT, path="/a01") - public String a01(@Body String body) { - return body; - } - - @RestMethod(name=PUT, path="/a02", serializers=JsonSerializer.class, parsers=JsonParser.class) - public String a02(@Body String body) { - return body; - } - } - - @Test - public void a01() throws Exception { - RestClient rc = MockRestClient.build(A.class); - asse
[juneau] branch master updated: RestClient tests.
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 3608a7e RestClient tests. 3608a7e is described below commit 3608a7e3dd13f9d1395c3ad259bb38b6460de047 Author: JamesBognar AuthorDate: Thu Jun 11 18:16:02 2020 -0400 RestClient tests. --- .../apache/juneau/rest/client2/RestClientTest.java | 67 +++- .../org/apache/juneau/rest/client2/RestClient.java | 90 ++ .../apache/juneau/rest/client2/RestRequest.java| 81 ++- .../apache/juneau/rest/client2/RestResponse.java | 34 .../org/apache/juneau/rest/mock2/MockLogger.java | 44 --- .../apache/juneau/rest/mock2/MockRestClient.java | 5 -- 6 files changed, 216 insertions(+), 105 deletions(-) diff --git a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java index 9b55f60..59f9a89 100644 --- a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java +++ b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java @@ -22,6 +22,7 @@ import java.net.*; import java.util.*; import java.util.concurrent.*; import java.util.concurrent.atomic.*; +import java.util.function.*; import java.util.logging.*; import org.apache.http.*; @@ -572,6 +573,9 @@ public class RestClientTest { @Test public void a23_basicCalls_formPost_exhaustiveBodyTypes() throws Exception { + Supplier + s1 = () -> new StringReader("f=1"), + s2 = () -> new ByteArrayInputStream("f=1".getBytes()); List bodies = AList.of( /*[ 0]*/ bean, @@ -587,7 +591,9 @@ public class RestClientTest { /*[10]*/ StreamResource.create().contents("f=1").build(), /*[11]*/ StreamResource.create().contents("f=1"), /*[12]*/ StreamResource.create().contents("f=1").mediaType("application/x-www-form-urlencoded").build(), - /*[13]*/ StreamResource.create().contents("f=1").mediaType("application/x-www-form-urlencoded") + /*[13]*/ StreamResource.create().contents("f=1").mediaType("application/x-www-form-urlencoded"), + /*[14]*/ s1, + /*[15]*/ s2 ); for (int i = 0; i < bodies.size(); i++) { @@ -841,6 +847,7 @@ public class RestClientTest { MockRestClient .create(A.class) .simpleJson() + .logRequests(DetailLevel.SIMPLE, Level.SEVERE) .logToConsole() .build() .post("/bean", bean) @@ -879,6 +886,56 @@ public class RestClientTest { ); } + public static class B02a extends BasicRestCallInterceptor { + @Override /* RestCallInterceptor */ + public void onConnect(RestRequest req, RestResponse res) throws Exception { + req.log(Level.WARNING, "Foo"); + req.log(Level.WARNING, new RuntimeException(), "Foo"); + res.log(Level.WARNING, "Foo"); + res.log(Level.WARNING, new RuntimeException(), "Foo"); + } + } + + @SuppressWarnings("unchecked") + @Test + public void b02a_loggingOther() throws Exception { + MockLogger ml = new MockLogger(); + + MockRestClient + .create(A.class) + .simpleJson() + .logger(ml) + .interceptors(B02a.class) + .build() + .post("/bean", bean) + .complete(); + + ml.assertCount(4); + } + + public static class B03 extends RestClient { + private static boolean METHOD_CALLED; + public B03(PropertyStore ps) { + super(ps); + } + + @Override + protected RestRequest createRequest(java.net.URI uri, String method, boolean hasBody) throws RestCallException { + METHOD_CALLED = true; + return super.createRequest(uri, method, hasBody); + } + } + + @Test + public void b03_overrideCreateRequest() throws Excepti
[juneau] branch master updated: RestClient tests
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 8adc426 RestClient tests 8adc426 is described below commit 8adc426b01904a976b4d32dd6799e158fe0862a5 Author: JamesBognar AuthorDate: Thu Jun 11 10:02:50 2020 -0400 RestClient tests --- .../apache/juneau/assertions/FluentAssertion.java | 11 ++--- .../juneau/assertions/FluentDateAssertion.java | 4 ++-- .../juneau/assertions/FluentIntegerAssertion.java | 4 ++-- .../juneau/assertions/FluentLongAssertion.java | 4 ++-- .../juneau/assertions/FluentStringAssertion.java | 4 ++-- .../org/apache/juneau/internal/FluentSetters.java | 5 .../main/ConfigurablePropertyCodeGenerator.java| 15 ++-- .../apache/juneau/rest/client2/RestClientTest.java | 5 ++-- .../juneau/rest/client2/RestClientBuilder.java | 28 +- .../juneau/rest/mock2/MockRestClientBuilder.java | 18 -- .../org/apache/juneau/rest/RestContextBuilder.java | 1 + 11 files changed, 39 insertions(+), 60 deletions(-) diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentAssertion.java index cb13360..c436681 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentAssertion.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentAssertion.java @@ -12,6 +12,8 @@ // *** package org.apache.juneau.assertions; +import static org.apache.juneau.internal.StringUtils.*; + import org.apache.juneau.*; import org.apache.juneau.internal.*; @@ -24,6 +26,7 @@ public abstract class FluentAssertion { private final R returns; private String msg; + private Object[] msgArgs; private boolean stdout, stderr; /** @@ -51,11 +54,13 @@ public abstract class FluentAssertion { * String can contain "{msg}" to represent the original message. * * @param msg The assertion failure message. +* @param args Optional message arguments. * @return This object (for method chaining). */ @FluentSetter - public FluentAssertion msg(String msg) { + public FluentAssertion msg(String msg, Object...args) { this.msg = msg; + this.msgArgs = args; return this; } @@ -89,10 +94,10 @@ public abstract class FluentAssertion { * @return A new {@link BasicAssertionError}. */ protected BasicAssertionError error(String msg, Object...args) { - msg = StringUtils.format(msg, args); + msg = format(msg, args); if (this.msg != null) { if (this.msg.contains("{msg}")) - msg = this.msg.replace("{msg}", msg); + msg = format(this.msg.replace("{msg}", msg), msgArgs); else msg = this.msg; } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentDateAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentDateAssertion.java index 27cf562..86540fd 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentDateAssertion.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentDateAssertion.java @@ -207,8 +207,8 @@ public class FluentDateAssertion extends FluentAssertion { // @Override /* GENERATED - FluentAssertion */ - public FluentDateAssertion msg(String msg) { - super.msg(msg); + public FluentDateAssertion msg(String msg, Object...args) { + super.msg(msg, args); return this; } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentIntegerAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentIntegerAssertion.java index f87facc..f1a5b9b 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentIntegerAssertion.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentIntegerAssertion.java @@ -329,8 +329,8 @@ public class FluentIntegerAssertion extends FluentAssertion { // @Override /* GENERATED - FluentAssertion */ - public FluentIntegerAssertion msg(String msg) { - super.msg(msg); + public FluentIntegerAssertion msg(String msg, Object
[juneau] branch master updated: RestClient tests
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 6152565 RestClient tests 6152565 is described below commit 61525655c23fd7c43fa001961ad1fe8280c4e439 Author: JamesBognar AuthorDate: Thu Jun 11 09:41:03 2020 -0400 RestClient tests --- .../apache/juneau/assertions/FluentAssertion.java | 64 .../juneau/assertions/FluentDateAssertion.java | 39 - .../juneau/assertions/FluentIntegerAssertion.java | 47 -- .../juneau/assertions/FluentLongAssertion.java | 47 -- .../juneau/assertions/FluentStringAssertion.java | 166 +++-- .../FluentSetters.java}| 35 ++--- .../main/ConfigurablePropertyCodeGenerator.java| 16 +- .../apache/juneau/rest/client2/RestClientTest.java | 74 ++--- 8 files changed, 333 insertions(+), 155 deletions(-) diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentAssertion.java index 515bd7a..cb13360 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentAssertion.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentAssertion.java @@ -12,6 +12,9 @@ // *** package org.apache.juneau.assertions; +import org.apache.juneau.*; +import org.apache.juneau.internal.*; + /** * Parent class of all fluent assertion calls. * @@ -20,6 +23,8 @@ package org.apache.juneau.assertions; public abstract class FluentAssertion { private final R returns; + private String msg; + private boolean stdout, stderr; /** * Constructor. @@ -38,4 +43,63 @@ public abstract class FluentAssertion { protected R returns() { return returns; } + + /** +* Allows to to specify the assertion failure message. +* +* +* String can contain "{msg}" to represent the original message. +* +* @param msg The assertion failure message. +* @return This object (for method chaining). +*/ + @FluentSetter + public FluentAssertion msg(String msg) { + this.msg = msg; + return this; + } + + /** +* If an error occurs, send the error message to STDOUT. +* +* @return This object (for method chaining). +*/ + @FluentSetter + public FluentAssertion stdout() { + this.stdout = true; + return this; + } + + /** +* If an error occurs, send the error message to STDERR. +* +* @return This object (for method chaining). +*/ + @FluentSetter + public FluentAssertion stderr() { + this.stderr = true; + return this; + } + + /** +* Creates a new {@link BasicAssertionError}. +* +* @param msg The message. +* @param args The message arguments. +* @return A new {@link BasicAssertionError}. +*/ + protected BasicAssertionError error(String msg, Object...args) { + msg = StringUtils.format(msg, args); + if (this.msg != null) { + if (this.msg.contains("{msg}")) + msg = this.msg.replace("{msg}", msg); + else + msg = this.msg; + } + if (stdout) + System.out.println(msg); + if (stderr) + System.err.println(msg); + return new BasicAssertionError(msg); + } } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentDateAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentDateAssertion.java index 2a84ddc..27cf562 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentDateAssertion.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentDateAssertion.java @@ -16,7 +16,7 @@ package org.apache.juneau.assertions; import java.util.*; import java.util.function.*; -import org.apache.juneau.*; +import org.apache.juneau.internal.*; /** * Used for fluent assertion calls. @@ -31,6 +31,7 @@ import org.apache.juneau.*; * * @param The return type. */ +@FluentSetters(returns="FluentDateAssertion") public class FluentDateAssertion extends FluentAssertion { private final Date value; @@ -55,7 +56,7 @@ public class Flue
[juneau] branch master updated: RestClient tests.
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 ef35e32 RestClient tests. ef35e32 is described below commit ef35e32afedbfd9cbb2db2903823fb81da7431ce Author: JamesBognar AuthorDate: Wed Jun 10 17:53:57 2020 -0400 RestClient tests. --- .../apache/juneau/internal/StateMachineState.java | 13 + .../org/apache/juneau/rest/test/_TestSuite.java| 1 - .../juneau/rest/client2}/CallbackStringsTest.java | 17 +- .../apache/juneau/rest/client2/RestClientTest.java | 457 ++--- .../org/apache/juneau/rest/client2/RestClient.java | 175 .../juneau/rest/client2/RestClientBuilder.java | 91 .../apache/juneau/rest/client2/RestRequest.java| 136 +- .../apache/juneau/rest/mock2/MockRestClient.java | 1 + .../juneau/rest/mock2/MockRestClientBuilder.java | 18 + 9 files changed, 760 insertions(+), 149 deletions(-) diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/StateMachineState.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/StateMachineState.java index 9232bff..755a0ef 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/StateMachineState.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/StateMachineState.java @@ -18,4 +18,17 @@ package org.apache.juneau.internal; @SuppressWarnings("javadoc") public enum StateMachineState { S01, S02, S03, S04, S05, S06, S07, S08, S09, S10, S11, S12, S13, S14, S15, S16, S17, S18, S19, S20; + + /** +* Returns true if the state is any one of the specified states. +* +* @param states The states to check. +* @return true if the state is any one of the specified states. +*/ + public boolean isAny(StateMachineState...states) { + for (StateMachineState s : states) + if (this == s) + return true; + return false; + } } diff --git a/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/_TestSuite.java b/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/_TestSuite.java index e1da651..f3ad721 100644 --- a/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/_TestSuite.java +++ b/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/_TestSuite.java @@ -25,7 +25,6 @@ import org.junit.runners.Suite.*; */ @RunWith(Suite.class) @SuiteClasses({ - CallbackStringsTest.class, ClientFuturesTest.class, ConfigTest.class, FormDataTest.class, diff --git a/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/client/CallbackStringsTest.java b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/CallbackStringsTest.java similarity index 88% rename from juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/client/CallbackStringsTest.java rename to juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/CallbackStringsTest.java index 4a520fe..6c43f28 100644 --- a/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/client/CallbackStringsTest.java +++ b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/CallbackStringsTest.java @@ -10,7 +10,7 @@ // * "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.juneau.rest.test.client; +package org.apache.juneau.rest.client2; import static org.apache.juneau.http.HttpMethodName.*; import static org.junit.Assert.*; @@ -21,7 +21,6 @@ import java.util.*; import org.apache.juneau.collections.*; import org.apache.juneau.rest.RestRequest; import org.apache.juneau.rest.annotation.*; -import org.apache.juneau.rest.client2.*; import org.apache.juneau.rest.mock2.*; import org.junit.*; @@ -53,7 +52,7 @@ public class CallbackStringsTest { static RestClient a = MockRestClient.build(A.class); @Test - public void a01() throws Exception { + public void a01_basicTests() throws Exception { String r; r = a.callback("GET /testCallback").run().getBody().asString(); @@ -74,4 +73,16 @@ public class CallbackStringsTest { r = a.callb
[juneau] branch master updated: RestClient tests.
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 c4716da RestClient tests. c4716da is described below commit c4716dacea9003e03390f71f5a56f48f8ea18270 Author: JamesBognar AuthorDate: Tue Jun 9 19:32:14 2020 -0400 RestClient tests. --- .../main/java/org/apache/juneau/Streamable.java| 4 +- .../org/apache/juneau/http/StreamResource.java | 2 +- .../java/org/apache/juneau/utils/ZipFileList.java | 2 +- .../main/ConfigurablePropertyCodeGenerator.java| 1 + .../juneau/rest/client2/EndToEndInterfaceTest.java | 4 +- .../apache/juneau/rest/client2/RestClientTest.java | 109 + .../org/apache/juneau/rest/client2/RestClient.java | 31 +- .../apache/juneau/rest/client2/RestRequest.java| 2 +- .../apache/juneau/rest/mock2/MockRestClient.java | 4 +- 9 files changed, 145 insertions(+), 14 deletions(-) diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Streamable.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Streamable.java index 331a3fb..97a81d0 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Streamable.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Streamable.java @@ -20,7 +20,7 @@ import org.apache.juneau.http.*; * Interface that identifies that an object can be serialized directly to an output stream. * * - * Instances must identify the media type of the content by implementing the {@link #getMediaType()} method. + * Instances must identify the media type of the content by implementing the {@link #getContentType()} method. */ public interface Streamable { @@ -37,5 +37,5 @@ public interface Streamable { * * @return The media type, or null if the media type is not known. */ - MediaType getMediaType(); + MediaType getContentType(); } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/StreamResource.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/StreamResource.java index 8214f11..151bec6 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/StreamResource.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/StreamResource.java @@ -237,7 +237,7 @@ public class StreamResource implements Streamable { @ResponseHeader("Content-Type") @Override /* Streamable */ - public MediaType getMediaType() { + public MediaType getContentType() { return mediaType; } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/ZipFileList.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/ZipFileList.java index 9818545..575eb1e 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/ZipFileList.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/ZipFileList.java @@ -40,7 +40,7 @@ public class ZipFileList extends LinkedList implements @Header("Content-Type") @Override /* Streamable */ - public MediaType getMediaType() { + public MediaType getContentType() { return MediaType.forString("application/zip"); } diff --git a/juneau-releng/juneau-all/src/java/main/ConfigurablePropertyCodeGenerator.java b/juneau-releng/juneau-all/src/java/main/ConfigurablePropertyCodeGenerator.java index 8fbadb6..b2cbfa3 100644 --- a/juneau-releng/juneau-all/src/java/main/ConfigurablePropertyCodeGenerator.java +++ b/juneau-releng/juneau-all/src/java/main/ConfigurablePropertyCodeGenerator.java @@ -82,6 +82,7 @@ public class ConfigurablePropertyCodeGenerator { RdfSerializerBuilder.class, ReaderParserBuilder.class, RestClientBuilder.class, + MockRestClientBuilder.class, RestContextBuilder.class, RestMethodContextBuilder.class, SerializerBuilder.class, diff --git a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/EndToEndInterfaceTest.java b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/EndToEndInterfaceTest.java index 0500a10..d20fc85 100644 --- a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/EndToEndInterfaceTest.java +++ b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/EndToEndInterfaceTest.java @@ -328,7 +328,7 @@ public class EndToEndInterfaceTest { assertEquals("foo", IOUtils.read(r.getContents())); assertEquals("foo", r.getHeaders().get("Foo")); assertEquals("bar"
[juneau] branch master updated: RestClient tests.
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 fe83c79 RestClient tests. fe83c79 is described below commit fe83c79e0dd613fc96dd6c3384efe8cc959b599b Author: JamesBognar AuthorDate: Tue Jun 9 16:38:54 2020 -0400 RestClient tests. --- .../main/ConfigurablePropertyCodeGenerator.java| 1 + .../apache/juneau/rest/client2/RestClientTest.java | 57 +++--- .../org/apache/juneau/rest/client2/RestClient.java | 50 +++ .../apache/juneau/rest/mock2/MockRestClient.java | 5 -- .../juneau/rest/mock2/MockRestClientBuilder.java | 54 5 files changed, 124 insertions(+), 43 deletions(-) diff --git a/juneau-releng/juneau-all/src/java/main/ConfigurablePropertyCodeGenerator.java b/juneau-releng/juneau-all/src/java/main/ConfigurablePropertyCodeGenerator.java index fe462cd..8fbadb6 100644 --- a/juneau-releng/juneau-all/src/java/main/ConfigurablePropertyCodeGenerator.java +++ b/juneau-releng/juneau-all/src/java/main/ConfigurablePropertyCodeGenerator.java @@ -45,6 +45,7 @@ import org.apache.juneau.xml.*; public class ConfigurablePropertyCodeGenerator { static Class[] classes = new Class[]{ + BasicRuntimeException.class, BeanContextBuilder.class, BeanTraverseBuilder.class, ConfigBuilder.class, diff --git a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java index c3ad079..7741ffb 100644 --- a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java +++ b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java @@ -34,6 +34,7 @@ import org.apache.http.message.*; import org.apache.http.protocol.*; import org.apache.juneau.*; import org.apache.juneau.annotation.*; +import org.apache.juneau.annotation.URI; import org.apache.juneau.collections.*; import org.apache.juneau.http.*; import org.apache.juneau.http.BasicNameValuePair; @@ -303,12 +304,56 @@ public class RestClientTest { @Test public void a10_basicCalls_head() throws Exception { MockRestClient - .create(A.class) - .simpleJson() - .build() - .head("/bean") - .run() - .assertBody().is(""); + .create(A.class) + .simpleJson() + .build() + .head("/bean") + .run() + .assertBody().is(""); + } + + @Test + public void a11_basicCalls_formPost() throws Exception { + MockRestClient + .create(A.class) + .build() + .formPost("/bean", bean) + .accept("application/json+simple") + .run() + .assertBody().is("{f:1}"); + + MockRestClient + .create(A.class) + .build() + .formPost("/bean") + .body(bean) + .accept("application/json+simple") + .run() + .assertBody().is("{f:1}"); + + MockRestClient + .create(A.class) + .build() + .formPost("/bean", NameValuePairs.of("f","1")) + .accept("application/json+simple") + .run() + .assertBody().is("{f:1}"); + + MockRestClient + .create(A.class) + .build() + .formPost("/bean", BasicNameValuePair.of("f","1")) + .accept("application/json+simple") + .run() + .assertBody().is("{f:1}"); + + MockRestClient + .create(A.class) + .build() + .formPostPairs("/bean", "f", "1") + .accept("application/json+simple") + .run() + .assertBody().is("{f:1}"); } //-- diff --git a/juneau-rest/juneau-rest
[juneau] branch master updated: RestClient tests.
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 75f178d RestClient tests. 75f178d is described below commit 75f178d6505b86d7cfa8e610abf93a85b0ac0842 Author: JamesBognar AuthorDate: Tue Jun 9 16:07:21 2020 -0400 RestClient tests. --- .../java/org/apache/juneau/BasicException.java | 13 + .../juneau/BasicIllegalArgumentException.java | 12 + .../org/apache/juneau/BasicRuntimeException.java | 13 + .../main/java/org/apache/juneau/BeanRegistry.java | 9 +- .../juneau/http/exception/HttpException.java | 7 +- .../org/apache/juneau/internal/ThrowableUtils.java | 18 ++ .../org/apache/juneau/reflect/ConstructorInfo.java | 2 + .../rest/client2/RestClientMarshallsTest.java | 3 +- .../apache/juneau/rest/client2/RestClientTest.java | 338 + .../juneau/rest/client2/RestCallException.java | 9 +- .../org/apache/juneau/rest/client2/RestClient.java | 18 +- .../apache/juneau/rest/mock2/MockRestClient.java | 7 +- .../apache/juneau/rest/HttpRuntimeException.java | 3 +- .../java/org/apache/juneau/rest/RestContext.java | 4 +- .../org/apache/juneau/rest/RestContextBuilder.java | 3 +- .../juneau/rest/RestMethodContextBuilder.java | 2 +- .../org/apache/juneau/rest/RestParamDefaults.java | 4 +- .../apache/juneau/rest/RestServletException.java | 26 +- .../org/apache/juneau/rest/SwaggerGenerator.java | 2 +- 19 files changed, 455 insertions(+), 38 deletions(-) diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BasicException.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BasicException.java index 2c6fb28..4e0bc03 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BasicException.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BasicException.java @@ -16,6 +16,8 @@ import static org.apache.juneau.internal.StringUtils.*; import java.text.*; +import org.apache.juneau.internal.*; + /** * Subclass of non-runtime exceptions that take in a message and zero or more arguments. */ @@ -53,4 +55,15 @@ public class BasicException extends Exception { public BasicException(Throwable causedBy) { this(causedBy, causedBy.getLocalizedMessage()); } + + /** +* Same as {@link #getCause()} but searches the throwable chain for an exception of the specified type. +* +* @param c The throwable type to search for. +* @param The throwable type to search for. +* @return The exception, or null if not found. +*/ + public T getCause(Class c) { + return ThrowableUtils.getCause(c, this); + } } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BasicIllegalArgumentException.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BasicIllegalArgumentException.java index 7f976a3..08b408d 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BasicIllegalArgumentException.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BasicIllegalArgumentException.java @@ -16,6 +16,7 @@ import static org.apache.juneau.internal.StringUtils.*; import java.text.*; +import org.apache.juneau.internal.*; import org.apache.juneau.reflect.*; /** @@ -57,4 +58,15 @@ public class BasicIllegalArgumentException extends IllegalArgumentException { if (! m.argsOnlyOfType(args)) throw new BasicIllegalArgumentException("Invalid arguments passed to method {0}. Only arguments of type {1} are allowed.", m, args); } + + /** +* Same as {@link #getCause()} but searches the throwable chain for an exception of the specified type. +* +* @param c The throwable type to search for. +* @param The throwable type to search for. +* @return The exception, or null if not found. +*/ + public T getCause(Class c) { + return ThrowableUtils.getCause(c, this); + } } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BasicRuntimeException.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BasicRuntimeException.java index 24d5e6a..a649fe5 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BasicRuntimeException.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BasicRuntimeException.java @@ -16,6 +16,8 @@ import static org.apache.juneau.internal.StringUtils.*; import java.text.*; +import org.apache.juneau.internal.*; + /** * Subclass of runtime exceptions that take in a message and zero or more arguments. */ @@ -60,4 +62,15 @@ public class BasicRuntimeException extends Runtim
[juneau] branch master updated: RestClient tests
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 27d2497 RestClient tests 27d2497 is described below commit 27d2497772822e269b3181b1654918d4a540074d Author: JamesBognar AuthorDate: Mon Jun 8 19:54:23 2020 -0400 RestClient tests --- .../apache/juneau/rest/client2/RestClientMarshallsTest.java | 3 +-- .../java/org/apache/juneau/rest/mock2/MockRestClient.java | 8 ++-- .../src/main/java/org/apache/juneau/rest/RestServlet.java | 11 ++- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientMarshallsTest.java b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientMarshallsTest.java index 38327ea..9e91c3b 100644 --- a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientMarshallsTest.java +++ b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientMarshallsTest.java @@ -76,7 +76,7 @@ public class RestClientMarshallsTest { private static RestClient a1h = MockRestClient.create(A.class).urlEnc().build(); private static RestClient a1i = MockRestClient.create(A.class).openApi().build(); private static RestClient a1j = MockRestClient.create(A.class).htmlDoc().build(); - private static RestClient a1k = MockRestClient.create(A.class).htmlStrippedDoc().debug().build(); + private static RestClient a1k = MockRestClient.create(A.class).htmlStrippedDoc().build(); @Test public void a01_singleLanguages() throws Exception { @@ -141,7 +141,6 @@ public class RestClientMarshallsTest { .assertStatus().is(200) .getBody().as(Bean.class).check(); a1k.post("/a01", bean) - .debug() .header("X-Accept", "text/html") .header("X-Content-Type", "text/html+stripped") .run() diff --git a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestClient.java b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestClient.java index 5275092..c9fd966 100644 --- a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestClient.java +++ b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestClient.java @@ -268,7 +268,8 @@ public class MockRestClient extends RestClient implements HttpClientConnection { Class c = restBean instanceof Class ? (Class)restBean : restBean.getClass(); Map,RestContext> contexts = isDebug ? CONTEXTS_DEBUG : CONTEXTS_NORMAL; if (! contexts.containsKey(c)) { - Object o = restBean instanceof Class ? ((Class)restBean).newInstance() : restBean; + boolean isClass = restBean instanceof Class; + Object o = isClass ? ((Class)restBean).newInstance() : restBean; RestContextBuilder rcb = RestContext.create(o); if (isDebug) { rcb.debug(Enablement.TRUE); @@ -276,7 +277,10 @@ public class MockRestClient extends RestClient implements HttpClientConnection { } RestContext rc = rcb.build(); if (o instanceof RestServlet) { - ((RestServlet)o).setContext(rc); + RestServlet rs = (RestServlet)o; + if (! rs.isInitialized()) + rs.setContext(rc); + rc = rs.getContext(); } else { rc.postInit(); } diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestServlet.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestServlet.java index 9c9f401..1004d8f 100644 --- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestServlet.java +++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestServlet.java @@ -106,6 +106,15 @@ public abstract class RestServlet extends HttpServlet implements RestCallHandler } /** +* Returns true if this servlet has been initialized and {@link #getContext()} returns a value. +* +* @return true if this servlet ha
[juneau] branch master updated: RestClient tests
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 39bd632 RestClient tests 39bd632 is described below commit 39bd632c4715491b6f4f0d23c7296ada4a4d728c Author: JamesBognar AuthorDate: Mon Jun 8 12:10:06 2020 -0400 RestClient tests --- .../juneau/rest/client2/RestCallInterceptor.java | 25 - .../org/apache/juneau/rest/client2/RestClient.java | 122 - .../juneau/rest/client2/RestResponseBody.java | 3 + .../juneau/rest/client2/RestResponseHeader.java| 14 ++- 4 files changed, 158 insertions(+), 6 deletions(-) diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestCallInterceptor.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestCallInterceptor.java index 0241d01..fd26b3a 100644 --- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestCallInterceptor.java +++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestCallInterceptor.java @@ -19,7 +19,28 @@ import org.apache.http.*; * listening for call lifecycle events. * * - * Useful if you want to prevent {@link RestCallException RestCallExceptions} from being thrown on error conditions. + * The {@link BasicRestCallInterceptor} is provided as an adapter class for implementing this interface. + * + * + * Note that the {@link RestClient} class itself implements this interface so you can achieve the same results by + * overriding the methods on the client class as well. + * + * Example: + * + * // Specialized client that adds a header to every request. + * public class MyRestClient extends RestClient { + * @Override + * public void onInit(RestRequest req) { + * req.header("Foo", "bar"); + * } + * } + * + * // Instantiate the client. + * MyRestClient c = RestClient + * .create() + * .json() + * .build(MyRestClient.class); + * * * * {@link RestClient#RESTCLIENT_interceptors} @@ -31,7 +52,7 @@ public interface RestCallInterceptor extends HttpRequestInterceptor, HttpRespons /** * Called immediately after {@link RestRequest} object is created and all headers/query/form-data has been -* set on the request from the client. +* copied from the client to the request object. * * @param req The HTTP request object. * @throws Exception Any exception can be thrown. diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClient.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClient.java index dd71afc..4f9eca9 100644 --- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClient.java +++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClient.java @@ -949,7 +949,7 @@ import org.apache.http.client.CookieStore; * */ @ConfigurableContext(nocache=true) -public class RestClient extends BeanContext implements HttpClient, Closeable { +public class RestClient extends BeanContext implements HttpClient, Closeable, RestCallHandler, RestCallInterceptor { //--- // Configurable properties @@ -2025,6 +2025,15 @@ public class RestClient extends BeanContext implements HttpClient, Closeable { * * Subclasses can override this method to provide specialized handling. * +* +* The behavior of this method can also be modified by specifying a different {@link RestCallHandler}. +* +* +* {@link RestClient#RESTCLIENT_callHandler} +* {@link RestClientBuilder#callHandler(Class)} +* {@link RestClientBuilder#callHandler(RestCallHandler)} +* +* * @param target The target host for the request. * Implementations may accept null if they can still determine a route, for example to a default * target or by inspecting the request. @@ -2038,7 +2047,8 @@ public class RestClient extends BeanContext implements HttpClient, Closeable { * @throws IOException In case of a problem or the connection was aborted. * @throws ClientProtocolException In case of an http protocol error. */ - protected HttpResponse execute(HttpHost target, HttpRequestBase request, HttpContext context) throws ClientProtocolException, IOException { + @Override /* RestCallHandler */ + public HttpResponse execute(HttpHost target, HttpRequestBase request, HttpCon
[juneau] branch master updated: RestClient tests.
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 3275cd9 RestClient tests. 3275cd9 is described below commit 3275cd9b101873c1acdc82e1c51e046a4b283381 Author: JamesBognar AuthorDate: Sat Jun 6 11:42:31 2020 -0400 RestClient tests. --- .../juneau/assertions/FluentStringAssertion.java | 31 +- .../rest/client2/RestClientMarshallsTest.java | 14 + .../apache/juneau/rest/client2/RestClientTest.java | 434 ++--- 3 files changed, 410 insertions(+), 69 deletions(-) diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentStringAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentStringAssertion.java index 6653e99..d42386c 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentStringAssertion.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentStringAssertion.java @@ -12,6 +12,7 @@ // *** package org.apache.juneau.assertions; +import static org.apache.juneau.internal.StringUtils.*; import java.util.function.*; import java.util.regex.*; @@ -55,7 +56,7 @@ public class FluentStringAssertion extends FluentAssertion { * @throws AssertionError If assertion failed. */ public R equals(String value) throws AssertionError { - if (! StringUtils.isEquals(value, text)) { + if (! isEquals(value, text)) { if (value != null && value.startsWith("x")) { StringBuilder sb = new StringBuilder(); sb.append("Text did not equal expected."); @@ -83,6 +84,28 @@ public class FluentStringAssertion extends FluentAssertion { } /** +* Asserts that the text equals the specified value after the text has been URL-decoded. +* +* @param value The value to check against. +* @return The response object (for method chaining). +* @throws AssertionError If assertion failed. +*/ + public R urlDecodedIs(String value) throws AssertionError { + String t = urlDecode(text); + if (! isEqualsIc(value, t)) { + if (value != null && value.startsWith("x")) { + StringBuilder sb = new StringBuilder(); + sb.append("Text did not equal expected."); + sb.append("\nExpected: [").append(value.replaceAll("", "").replaceAll("\n", "n").replaceAll("\t", "t")).append("]"); + sb.append("\nActual : [").append(t.replaceAll("", "").replaceAll("\n", "n").replaceAll("\t", "t")).append("]"); + System.err.println(sb.toString()); + } + throw new BasicAssertionError("Text did not equal expected.\n\tExpected=[{0}]\n\tActual=[{1}]", value, t); + } + return returns(); + } + + /** * Asserts that the text equals the specified value ignoring case. * * @param value The value to check against. @@ -90,7 +113,7 @@ public class FluentStringAssertion extends FluentAssertion { * @throws AssertionError If assertion failed. */ public R equalsIc(String value) throws AssertionError { - if (! StringUtils.isEqualsIc(value, text)) { + if (! isEqualsIc(value, text)) { if (value != null && value.startsWith("x")) { StringBuilder sb = new StringBuilder(); sb.append("Text did not equal expected."); @@ -111,7 +134,7 @@ public class FluentStringAssertion extends FluentAssertion { * @throws AssertionError If assertion failed. */ public R doesNotEqual(String value) throws AssertionError { - if (StringUtils.isEquals(value, text)) { + if (isEquals(value, text)) { if (value != null && value.startsWith("x")) { StringBuilder sb = new StringBuilder(); sb.append("Text equaled unexpected."); @@ -145,7 +168,7 @@ public class FluentStringAssertion extends FluentAssertion { * @throws Ass
[juneau] branch master updated: RestClient tests.
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 d9037ac RestClient tests. d9037ac is described below commit d9037ac140da924d8dedb3fa981ceffe92175d0f Author: JamesBognar AuthorDate: Fri Jun 5 18:05:36 2020 -0400 RestClient tests. --- .../org/apache/juneau/testutils/TestSupplier.java | 33 +++ .../apache/juneau/rest/client2/RestClientTest.java | 66 +- .../juneau/rest/mock2/MockServletRequest.java | 1 + .../org/apache/juneau/rest/util/RestUtils.java | 2 +- 4 files changed, 86 insertions(+), 16 deletions(-) diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/testutils/TestSupplier.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/testutils/TestSupplier.java new file mode 100644 index 000..c6da0da --- /dev/null +++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/testutils/TestSupplier.java @@ -0,0 +1,33 @@ +// *** +// * 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.juneau.testutils; + +import java.util.function.*; + +public class TestSupplier implements Supplier { + public Object value; + + public static TestSupplier of(Object value) { + return new TestSupplier().set(value); + } + + public TestSupplier set(Object value) { + this.value = value; + return this; + } + + @Override + public Object get() { + return value; + } +} \ No newline at end of file diff --git a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java index 8589f91..f245344 100644 --- a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java +++ b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java @@ -20,7 +20,6 @@ import java.io.*; import java.util.*; import java.util.concurrent.*; import java.util.concurrent.atomic.*; -import java.util.function.*; import java.util.logging.*; import org.apache.http.*; @@ -53,6 +52,7 @@ import org.apache.juneau.rest.client2.RestResponse; import org.apache.juneau.rest.mock2.*; import org.apache.juneau.serializer.*; import org.apache.juneau.svl.*; +import org.apache.juneau.testutils.*; import org.apache.juneau.transform.*; import org.apache.juneau.xml.*; import org.junit.*; @@ -121,20 +121,7 @@ public class RestClientTest { CALENDAR.set(2000, 11, 31, 12, 34, 56); } - public static class TestSupplier implements Supplier { - public Object value; - public TestSupplier set(Object value) { - this.value = value; - return this; - } - - @Override - public Object get() { - return value; - } - - } //-- // Override client and builder. @@ -428,7 +415,7 @@ public class RestClientTest { @Test public void f01a_sup
[juneau] branch master updated: RestClient tests.
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 990928c RestClient tests. 990928c is described below commit 990928c06e304fc3cb76030a76466f00c76f344a Author: JamesBognar AuthorDate: Fri Jun 5 17:17:39 2020 -0400 RestClient tests. --- .../java/org/apache/juneau/BeanContextBuilder.java | 8 ++--- .../org/apache/juneau/http/BasicNameValuePair.java | 25 +- .../apache/juneau/http/ContentEncodingEnum.java| 38 .../org/apache/juneau/http/NameValuePairs.java | 19 ++ .../org/apache/juneau/http/SerializedHeader.java | 23 +++-- .../juneau/http/SerializedNameValuePair.java | 10 -- .../juneau/http/header/BasicCsvArrayHeader.java| 11 +++--- .../org/apache/juneau/http/header/BasicHeader.java | 22 .../org/apache/juneau/internal/StringUtils.java| 15 +--- .../apache/juneau/rest/client2/RestClientTest.java | 40 ++ 10 files changed, 137 insertions(+), 74 deletions(-) diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextBuilder.java index 5f8b3c3..2739e45 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextBuilder.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextBuilder.java @@ -1124,7 +1124,7 @@ public class BeanContextBuilder extends ContextBuilder { @FluentSetter public BeanContextBuilder bpi(Map values) { for (Map.Entry e : values.entrySet()) - prependTo(BEAN_annotations, new BeanAnnotation(e.getKey()).bpi(asString(e.getValue(; + prependTo(BEAN_annotations, new BeanAnnotation(e.getKey()).bpi(stringify(e.getValue(; return this; } @@ -1297,7 +1297,7 @@ public class BeanContextBuilder extends ContextBuilder { @FluentSetter public BeanContextBuilder bpx(Map values) { for (Map.Entry e : values.entrySet()) - prependTo(BEAN_annotations, new BeanAnnotation(e.getKey()).bpx(asString(e.getValue(; + prependTo(BEAN_annotations, new BeanAnnotation(e.getKey()).bpx(stringify(e.getValue(; return this; } @@ -1463,7 +1463,7 @@ public class BeanContextBuilder extends ContextBuilder { @FluentSetter public BeanContextBuilder bpro(Map values) { for (Map.Entry e : values.entrySet()) - prependTo(BEAN_annotations, new BeanAnnotation(e.getKey()).bpro(asString(e.getValue(; + prependTo(BEAN_annotations, new BeanAnnotation(e.getKey()).bpro(stringify(e.getValue(; return this; } @@ -1635,7 +1635,7 @@ public class BeanContextBuilder extends ContextBuilder { @FluentSetter public BeanContextBuilder bpwo(Map values) { for (Map.Entry e : values.entrySet()) - prependTo(BEAN_annotations, new BeanAnnotation(e.getKey()).bpwo(asString(e.getValue(; + prependTo(BEAN_annotations, new BeanAnnotation(e.getKey()).bpwo(stringify(e.getValue(; return this; } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/BasicNameValuePair.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/BasicNameValuePair.java index df9191d..6910f0f 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/BasicNameValuePair.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/BasicNameValuePair.java @@ -13,6 +13,9 @@ package org.apache.juneau.http; import static org.apache.juneau.internal.StringUtils.*; + +import java.util.function.*; + import org.apache.http.*; /** @@ -38,6 +41,20 @@ public class BasicNameValuePair implements NameValuePair { } /** +* Convenience creator using supplier. +* +* +* Value is re-evaluated on each call to {@link #getValue()}. +* +* @param name The parameter name. +* @param value The parameter value supplier. +* @return A new {@link BasicNameValuePair} object. +*/ + public static BasicNameValuePair of(String name, Supplier value) { + return new BasicNameValuePair(name, value); + } + + /** * Constructor. * * @param name The parameter name. @@ -55,6 +72,12 @@ public class BasicNameValuePair implements NameValuePair { @Override /* NameValuePair */ public String getValue() { - return stringify(value); + return stringify
[juneau] branch master updated: RestClient tests.
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 776e751 RestClient tests. 776e751 is described below commit 776e751d607c6249922ab49d98bdf8d768858d24 Author: JamesBognar AuthorDate: Fri Jun 5 09:10:49 2020 -0400 RestClient tests. --- .../org/apache/juneau/http/BasicObjectHeader.java | 13 + .../juneau/http/SerializedNameValuePair.java | 22 +- .../org/apache/juneau/internal/StringUtils.java| 3 + .../apache/juneau/rest/client2/RestClientTest.java | 5 +- .../org/apache/juneau/rest/client2/RestClient.java | 34 +- .../juneau/rest/client2/RestClientBuilder.java | 319 ++- .../apache/juneau/rest/client2/RestRequest.java| 963 + .../juneau/rest/mock2/MockRestClientBuilder.java | 12 +- 8 files changed, 1151 insertions(+), 220 deletions(-) diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/BasicObjectHeader.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/BasicObjectHeader.java index 25edaf3..f0814e3 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/BasicObjectHeader.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/BasicObjectHeader.java @@ -12,6 +12,8 @@ // *** package org.apache.juneau.http; +import java.util.function.*; + import org.apache.http.message.BasicHeader; import org.apache.juneau.internal.*; @@ -36,6 +38,17 @@ public class BasicObjectHeader extends BasicHeader { } /** +* Convenience creator. +* +* @param name The parameter name. +* @param value The parameter value. +* @return A new {@link BasicObjectHeader} object. +*/ + public static BasicObjectHeader of(String name, Supplier value) { + return new BasicObjectHeader(name, value); + } + + /** * Constructor. * * @param name The HTTP header name. diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/SerializedNameValuePair.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/SerializedNameValuePair.java index f054feb..90d73e9 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/SerializedNameValuePair.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/SerializedNameValuePair.java @@ -14,6 +14,8 @@ package org.apache.juneau.http; import static org.apache.juneau.internal.StringUtils.*; +import java.util.function.*; + import org.apache.http.*; import org.apache.juneau.*; import org.apache.juneau.httppart.*; @@ -115,6 +117,17 @@ public class SerializedNameValuePair implements NameValuePair { } /** +* Sets the POJO to serialize to the parameter value. +* +* @param value The new value for this property. +* @return This object (for method chaining). +*/ + public Builder value(Supplier value) { + this.value = value; + return this; + } + + /** * Sets the HTTP part type. * * @param value The new value for this property. @@ -189,15 +202,18 @@ public class SerializedNameValuePair implements NameValuePair { @Override /* NameValuePair */ public String getValue() { try { - if (value == null) { + Object v = value; + if (v instanceof Supplier) + v = ((Supplier)v).get(); + if (v == null) { if (schema == null) return null; if (schema.getDefault() == null && ! schema.isRequired()) return null; } - if (isEmpty(value) && skipIfEmpty && schema.getDefault() == null) + if (isEmpty(v) && skipIfEmpty && schema.getDefault() == null) return null; - return serializer.serialize(type, schema, value); + return serializer.serialize(type, schema, v); } catch (SchemaValidationException e) { throw new BasicRuntimeException(e, "Validation error on request {0} parameter ''{1}''=''{2}''", type, name, value); } catch (SerializeException e) { diff --git a/juneau-core/juneau
[juneau] branch master updated: RestClient tests.
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 39580c1 RestClient tests. 39580c1 is described below commit 39580c1c615e5ecda43207b6e023bff9e38acd9e Author: JamesBognar AuthorDate: Thu Jun 4 13:06:33 2020 -0400 RestClient tests. --- .../juneau/SerializerPropertiesComboTest.java | 2 +- .../juneau/httppart/OpenApiPartParserTest.java | 48 +++--- .../juneau/httppart/OpenApiPartSerializerTest.java | 48 +++--- .../java/org/apache/juneau/oapi/OpenApiTest.java | 94 +-- .../juneau/serializer/UriResolutionTest.java | 2 +- .../utils/UriContextResolutionComboTest.java | 24 +-- .../juneau/utils/UriContextUriComboTest.java | 2 +- .../main/java/org/apache/juneau/UriContext.java| 17 ++ .../main/java/org/apache/juneau/UriResolver.java | 12 ++ .../apache/juneau/http/BasicCsvArrayHeader.java| 11 ++ .../org/apache/juneau/http/BasicDateHeader.java| 11 ++ .../http/BasicEntityValidatorArrayHeader.java | 11 ++ .../java/org/apache/juneau/http/BasicHeader.java | 12 ++ .../org/apache/juneau/http/BasicIntegerHeader.java | 11 ++ .../org/apache/juneau/http/BasicLongHeader.java| 11 ++ .../org/apache/juneau/http/BasicNameValuePair.java | 11 ++ .../org/apache/juneau/http/BasicObjectHeader.java | 11 ++ .../apache/juneau/http/BasicRangeArrayHeader.java | 11 ++ .../org/apache/juneau/http/BasicStringHeader.java | 11 ++ .../org/apache/juneau/http/BasicUriHeader.java | 11 ++ .../org/apache/juneau/httppart/HttpPartSchema.java | 88 ++ .../juneau/serializer/SerializerSession.java | 2 +- .../apache/juneau/rest/client2/RestClientTest.java | 161 -- .../apache/juneau/rest/client2/RestRequest.java| 185 + .../juneau/rest/client2/RestResponseHeader.java| 16 +- .../java/org/apache/juneau/rest/RestRequest.java | 6 +- 26 files changed, 696 insertions(+), 133 deletions(-) diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/SerializerPropertiesComboTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/SerializerPropertiesComboTest.java index 941bb40..6477760 100644 --- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/SerializerPropertiesComboTest.java +++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/SerializerPropertiesComboTest.java @@ -320,7 +320,7 @@ public class SerializerPropertiesComboTest extends ComboRoundTripTest { .rdfXml("\n\n\n\n\n") .rdfXmlT("\n\n\n\n\n") .rdfXmlR("\n \n \n \n\n") - .properties(OMap.of(SERIALIZER_uriContext, new UriContext("https://localhost:80;, "/context", "/resource", "/path"), SERIALIZER_uriRelativity, UriRelativity.PATH_INFO, SERIALIZER_uriResolution, UriResolution.ABSOLUTE)) + .properties(OMap.of(SERIALIZER_uriContext, UriContext.of("https://localhost:80;, "/context", "/resource", "/path"), SERIALIZER_uriRelativity, UriRelativity.PATH_INFO, SERIALIZER_uriResolution, UriResolution.ABSOLUTE)) .convert(x -> new T9()) .skipTest(x -> x.contains("parseRdf") || x.contains("verifyRdf")) }, diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/httppart/OpenApiPartParserTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/httppart/OpenApiPartParserTest.java index fb19559..497601e 100644 --- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/httppart/OpenApiPartParserTest.java +++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/httppart/OpenApiPartParserTest.java @@ -48,7 +48,7 @@ public class OpenApiPartParserTest { @Test public void a01_inputValidations_nullInput() throws Exception { - HttpPartSchema s = tNone().build(); + HttpPartSchema s = T_NONE; assertNull(parse(s, null, String.class)); s = tNone().required(false).build(); @@ -285,7 +285,7 @@ public class OpenApiPartParserTest { @Test public void c01_stringType_simple() throws Exception { - HttpPartSchema s = tString().build(); + HttpPartSchema s = T_STRING; assertEquals("foo", parse(s, "foo", String.class)); } @@ -298,7 +298,7 @@ public class OpenApiPartParserTest { @Test public void c03_stringType_byteFormat() throws Exception { -
[juneau] branch master updated: RestClient tests.
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 954a98b RestClient tests. 954a98b is described below commit 954a98ba724fd214bbd05f5637225f15de3a70f0 Author: JamesBognar AuthorDate: Thu Jun 4 10:42:08 2020 -0400 RestClient tests. --- .../juneau/reflection/ExecutableInfoTest.java | 8 ++--- .../org/apache/juneau/reflect/ExecutableInfo.java | 10 ++ .../java/org/apache/juneau/reflect/FieldInfo.java | 22 .../apache/juneau/rest/client2/RestClientTest.java | 39 -- .../juneau/rest/client2/RestClientBuilder.java | 2 +- 5 files changed, 59 insertions(+), 22 deletions(-) diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/reflection/ExecutableInfoTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/reflection/ExecutableInfoTest.java index 24f2fbb..b6467ec 100644 --- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/reflection/ExecutableInfoTest.java +++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/reflection/ExecutableInfoTest.java @@ -570,10 +570,10 @@ public class ExecutableInfoTest { @Test public void setAccessible() { - f_isPublic.setAccessible(); - f_isProtected.setAccessible(); - f_isPrivate.setAccessible(); - f_isDefault.setAccessible(); + f_isPublic.accessible(); + f_isProtected.accessible(); + f_isPrivate.accessible(); + f_isDefault.accessible(); } @Test diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ExecutableInfo.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ExecutableInfo.java index a0a7963..b60ac3e 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ExecutableInfo.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ExecutableInfo.java @@ -686,6 +686,16 @@ public abstract class ExecutableInfo { /** * Attempts to call x.setAccessible(true) and quietly ignores security exceptions. * +* @return This object (for method chaining). +*/ + public ExecutableInfo accessible() { + setAccessible(); + return this; + } + + /** +* Attempts to call x.setAccessible(true) and quietly ignores security exceptions. +* * @return true if call was successful. */ public final boolean setAccessible() { diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/FieldInfo.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/FieldInfo.java index 4f9ad19..84772e2 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/FieldInfo.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/FieldInfo.java @@ -324,6 +324,16 @@ public final class FieldInfo implements Comparable { /** * Attempts to call x.setAccessible(true) and quietly ignores security exceptions. * +* @return This object (for method chaining). +*/ + public FieldInfo accessible() { + setAccessible(); + return this; + } + + /** +* Attempts to call x.setAccessible(true) and quietly ignores security exceptions. +* * @return true if call was successful. */ public boolean setAccessible() { @@ -379,4 +389,16 @@ public final class FieldInfo implements Comparable { public String getName() { return f.getName(); } + + /** +* Invokes this field on the specified object. +* +* @param o The object containing the field. +* @return The field value. +* @throws IllegalAccessException Field was not accessible. +* @throws IllegalArgumentException Field does not belong to object. +*/ + public Object invoke(Object o) throws IllegalArgumentException, IllegalAccessException { + return f.get(o); + } } diff --git a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java index aa7b716..30a443a 100644 --- a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java +++ b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java @@ -135,16 +135,7 @@ public class RestClientTest { @Test public void a02_useNoArgConstructor() { -// new A2
[juneau] branch master updated: RestClient improvements.
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 e90bba5 RestClient improvements. e90bba5 is described below commit e90bba550e5ae87f8bc3f6c02ec28d8adf87a1b3 Author: JamesBognar AuthorDate: Wed Jun 3 20:02:06 2020 -0400 RestClient improvements. --- ...shallTest.java => RestClientMarshallsTest.java} | 21 -- .../org/apache/juneau/rest/client2/RestClient.java | 47 +- .../juneau/rest/client2/RestClientBuilder.java | 11 - .../apache/juneau/rest/mock2/MockRestClient.java | 10 + .../juneau/rest/mock2/MockRestClientBuilder.java | 6 +++ 5 files changed, 45 insertions(+), 50 deletions(-) diff --git a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/MarshallTest.java b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientMarshallsTest.java similarity index 96% rename from juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/MarshallTest.java rename to juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientMarshallsTest.java index 3af41c0..aff46d3 100644 --- a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/MarshallTest.java +++ b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientMarshallsTest.java @@ -24,7 +24,7 @@ import org.apache.juneau.rest.mock2.*; import org.junit.*; @FixMethodOrder(NAME_ASCENDING) -public class MarshallTest { +public class RestClientMarshallsTest { public static class Bean { public int f; @@ -75,6 +75,8 @@ public class MarshallTest { private static RestClient a1g = MockRestClient.create(A.class).uon().build(); private static RestClient a1h = MockRestClient.create(A.class).urlEnc().build(); private static RestClient a1i = MockRestClient.create(A.class).openApi().build(); + private static RestClient a1j = MockRestClient.create(A.class).htmlDoc().build(); + private static RestClient a1k = MockRestClient.create(A.class).htmlStrippedDoc().debug().build(); @Test public void a01_singleLanguages() throws Exception { @@ -132,6 +134,19 @@ public class MarshallTest { .run() .assertStatus().is(200) .getBody().as(Bean.class).check(); + a1j.post("/a01", bean) + .header("X-Accept", "text/html") + .header("X-Content-Type", "text/html") + .run() + .assertStatus().is(200) + .getBody().as(Bean.class).check(); + a1k.post("/a01", bean) + .debug() + .header("X-Accept", "text/html") + .header("X-Content-Type", "text/html+stripped") + .run() + .assertStatus().is(200) + .getBody().as(Bean.class).check(); } @Test @@ -146,11 +161,11 @@ public class MarshallTest { .getBody().as(Bean.class).check(); } - private static RestClient a1j = MockRestClient.create(A.class).build(); + private static RestClient a3 = MockRestClient.create(A.class).build(); @Test public void a03_noLanguages() throws Exception { - a1j.post("/a01", bean) + a3.post("/a01", bean) .header("Accept", "application/json") .header("Content-Type", "application/json") .header("X-Accept", "application/json") diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClient.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClient.java index fae2f36..6824dd1 100644 --- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClient.java +++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClient.java @@ -1008,37 +1008,6 @@ public class RestClient extends BeanContext implements HttpClient, Closeable { public static final String RESTCLIENT_callHandler = PREFIX + "callHandler.o"; /** -* Configuration property: Debug. -* -* Property: -* -* ID: {@link org.apache.juneau.rest.client2.RestClient#RESTCLIENT_debug RESTCLIENT_debug} -* Name: "RestClient.debug.b&q
[juneau] branch master updated: MockRestClient improvements.
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 73c845e MockRestClient improvements. 73c845e is described below commit 73c845e3037f4d7abcd49ac979a9c02d09cf9acd Author: JamesBognar AuthorDate: Wed Jun 3 19:20:59 2020 -0400 MockRestClient improvements. --- .../10.juneau-rest-mock/01.MockRestClient.html | 29 +- .../apache/juneau/rest/client2/RestRequest.java| 38 -- .../rest/mock2/MockHttpClientConnection.java | 126 .../mock2/MockHttpClientConnectionManager.java | 23 +- .../juneau/rest/mock2/MockHttpConnection.java | 37 -- .../juneau/rest/mock2/MockHttpConnectionImpl.java | 113 .../apache/juneau/rest/mock2/MockHttpRequest.java | 65 -- .../apache/juneau/rest/mock2/MockHttpResponse.java | 53 -- .../apache/juneau/rest/mock2/MockHttpSession.java | 131 +++- .../org/apache/juneau/rest/mock2/MockLogger.java | 37 ++ .../apache/juneau/rest/mock2/MockPathResolver.java | 2 +- .../apache/juneau/rest/mock2/MockRestClient.java | 597 ++- .../juneau/rest/mock2/MockRestClientBuilder.java | 78 +-- .../apache/juneau/rest/mock2/MockRestRequest.java | 657 - .../apache/juneau/rest/mock2/MockRestResponse.java | 5 +- .../juneau/rest/mock2/MockServletRequest.java | 487 +-- .../juneau/rest/mock2/MockServletResponse.java | 83 +-- .../juneau/rest/BasicRestCallLoggerTest.java | 18 +- .../juneau/rest/RestCallLoggerConfigTest.java | 2 +- 19 files changed, 1473 insertions(+), 1108 deletions(-) diff --git a/juneau-doc/docs/Topics/10.juneau-rest-mock/01.MockRestClient.html b/juneau-doc/docs/Topics/10.juneau-rest-mock/01.MockRestClient.html index fed94f7..de43681 100644 --- a/juneau-doc/docs/Topics/10.juneau-rest-mock/01.MockRestClient.html +++ b/juneau-doc/docs/Topics/10.juneau-rest-mock/01.MockRestClient.html @@ -112,6 +112,31 @@ MockRestClient + The {@link oajr.mock2.MockRestRequest} object has convenience methods provided to allow you to set properties + directly on the underlying {@link javax.servlet.HttpServletRequest} object. The following example shows how + this can be used to directly set roles on the request object to perform security testing. + +Example: + + @Rest(roleGuard="ADMIN") + public class A { + @RestMethod + public String get() { + return "OK"; + } + } + + @Test + public void mytest() throws Exception { + MockRestClient a = MockRestClient.build(A.class); + + // Admin user should get 200, but anyone else should get 403-Unauthorized. + a.get().roles("ADMIN").run().assertStatus().is(200); + a.get().roles("USER").run().assertStatus().is(403); + } + + + The {@link oajr.mock2.MockRestClient} class has a debug mode that will cause your HTTP requests and responses to be sent to the console: @@ -124,7 +149,7 @@ MockRestClient - The {@link oajr.mock2.MockRestclient} class can also be used for testing of {@link oaj.http.annotation.Remote}-annotated + The {@link oajr.mock2.MockRestClient} class can also be used for testing of {@link oaj.http.annotation.Remote}-annotated interfaces against {@link oajr.annotation.Rest @Rest}-annotated resources. Example: @@ -141,7 +166,7 @@ MockRestClient @Rest public class MyRest { - @RestMethod(name=GET, path="/echoQuery") + @RestMethod(name=GET, path="/echoQuery") public int echoQuery(@Query("id") String id) { return id; } diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestRequest.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestRequest.java index 49d19ba..be03ca4 100644 --- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestRequest.java +++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestRequest.java @@ -2722,44 +2722,6 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur } /** -* Sets the value for the X-Roles request header. -* -* -* This is a shortcut for calling header("X-Roles", value); -* -* -* Typically not used in production, but allows you to set roles on a request for use in mocked testing. -* For example, the MockRestClient class uses this value to directly set roles on the HttpServletRequest -* object. -* -* Example:
[juneau] branch master updated: MockRestClient improvements.
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 3208b36 MockRestClient improvements. 3208b36 is described below commit 3208b367dcf2eadc16044cefcdd271047d88698d Author: JamesBognar AuthorDate: Tue Jun 2 18:53:41 2020 -0400 MockRestClient improvements. --- .../apache/juneau/rest/mock2/MockHttpClientConnection.java| 4 +++- .../juneau/rest/mock2/MockHttpClientConnectionManager.java| 11 +-- .../java/org/apache/juneau/rest/mock2/MockRestClient.java | 1 + .../org/apache/juneau/rest/mock2/MockRestClientBuilder.java | 4 +++- 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockHttpClientConnection.java b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockHttpClientConnection.java index e8451c9..05dedcd 100644 --- a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockHttpClientConnection.java +++ b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockHttpClientConnection.java @@ -29,6 +29,7 @@ import org.apache.juneau.internal.*; public class MockHttpClientConnection implements HttpClientConnection { private final MockHttpConnection c; + private final MockRestClient rc; private volatile MockHttpRequest req; private volatile MockHttpResponse res; @@ -37,8 +38,9 @@ public class MockHttpClientConnection implements HttpClientConnection { * * @param c The API for performing the connections. */ - public MockHttpClientConnection(MockHttpConnection c) { + public MockHttpClientConnection(MockHttpConnection c, MockRestClient rc) { this.c = c; + this.rc = rc; } @Override /* HttpClientConnection */ diff --git a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockHttpClientConnectionManager.java b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockHttpClientConnectionManager.java index 51cf236..99c6f3a 100644 --- a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockHttpClientConnectionManager.java +++ b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockHttpClientConnectionManager.java @@ -27,7 +27,10 @@ import org.apache.http.protocol.*; */ public class MockHttpClientConnectionManager implements HttpClientConnectionManager { - final ConnectionRequest cr; + private ConnectionRequest cr; + private MockRestClient restClient; + private MockHttpConnection httpConnection; + /** * Constructor. @@ -35,7 +38,11 @@ public class MockHttpClientConnectionManager implements HttpClientConnectionMana * @param c The mocked connection. */ public MockHttpClientConnectionManager(final MockHttpConnection c) { - final HttpClientConnection hcc = new MockHttpClientConnection(c); + this.httpConnection = c; + } + + public void init(MockRestClient mrc) { + final HttpClientConnection hcc = new MockHttpClientConnection(httpConnection, restClient); this.cr = new ConnectionRequest() { @Override public boolean cancel() { diff --git a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestClient.java b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestClient.java index d4a4b34..1fae967 100644 --- a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestClient.java +++ b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestClient.java @@ -37,6 +37,7 @@ public class MockRestClient extends RestClient { */ public MockRestClient(PropertyStore ps) { super(ps); + ps.getInstanceProperty("MockRestClient.MockHttpClientConnectionManager.o", MockHttpClientConnectionManager.class, null).init(this); } /** diff --git a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestClientBuilder.java b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestClientBuilder.java index b38d7aa..05ea4e3 100644 --- a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestClientBuilder.java +++ b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestClientBuilder.java @@ -178,7 +178,9 @@ public class MockRestClientBuilder extends RestClientBuilder { public T build(Class c) { boolean debug = (peek(BeanContext.BEAN_debug) == Bo
[juneau] branch master updated: MockRestClient improvements.
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 05b4c82 MockRestClient improvements. 05b4c82 is described below commit 05b4c82894e5c85c85c8589d2e9b7dc1a3f954b5 Author: JamesBognar AuthorDate: Mon Jun 1 15:03:04 2020 -0400 MockRestClient improvements. --- .../juneau/rest/mock2/MockServletRequest.java | 101 - 1 file changed, 101 deletions(-) diff --git a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockServletRequest.java b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockServletRequest.java index 6e67e0d..d483ec8 100644 --- a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockServletRequest.java +++ b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockServletRequest.java @@ -114,107 +114,6 @@ public class MockServletRequest implements HttpServletRequest, MockHttpRequest { } /** -* Specifies the Accept header value. -* -* @param value The Accept header value. -* @return This object (for method chaining). -*/ - public MockServletRequest accept(String value) { - return header("Accept", value); - } - - /** -* Specifies the Content-Type header value. -* -* @param value The Content-Type header value. -* @return This object (for method chaining). -*/ - public MockServletRequest contentType(String value) { - return header("Content-Type", value); - } - - /** -* Convenience method for setting Accept and Content-Type headers to "application/json". -* -* @return This object (for method chaining). -*/ - public MockServletRequest json() { - return accept("application/json").contentType("application/json"); - } - - /** -* Convenience method for setting Accept and Content-Type headers to "application/json+simple". -* -* @return This object (for method chaining). -*/ - public MockServletRequest simpleJson() { - return accept("application/json+simple").contentType("application/json+simple"); - } - - /** -* Convenience method for setting Accept and Content-Type headers to "text/xml". -* -* @return This object (for method chaining). -*/ - public MockServletRequest xml() { - return accept("text/xml").contentType("text/xml"); - } - - /** -* Convenience method for setting Accept and Content-Type headers to "text/html". -* -* @return This object (for method chaining). -*/ - public MockServletRequest html() { - return accept("text/html").contentType("text/html"); - } - - /** -* Convenience method for setting Accept and Content-Type headers to "text/plain". -* -* @return This object (for method chaining). -*/ - public MockServletRequest plainText() { - return accept("text/plain").contentType("text/plain"); - } - - /** -* Convenience method for setting Accept and Content-Type headers to "octal/msgpack". -* -* @return This object (for method chaining). -*/ - public MockServletRequest msgpack() { - return accept("octal/msgpack").contentType("octal/msgpack"); - } - - /** -* Convenience method for setting Accept and Content-Type headers to "text/uon". -* -* @return This object (for method chaining). -*/ - public MockServletRequest uon() { - return accept("text/uon").contentType("text/uon"); - } - - /** -* Convenience method for setting Accept and Content-Type headers to "application/x-www-form-urlencoded". -* -* @return This object (for method chaining). -*/ - public MockServletRequest urlEnc() { - return accept("application/x-www-form-urlencoded").contentType("application/x-www-form-urlencoded"); - } - - /** -* Convenience method for setting Accept and Content-Type headers to "text/yaml". -* -* @return This object (for method chaining). -*/ - public MockServletRequest yaml() { - return accept("text/yaml").contentType("text/yaml"); - } - - /** * Fluent setter. * * @param uri The URI of the request.
[juneau] branch master updated: MockRestClient improvements.
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 2abc948 MockRestClient improvements. 2abc948 is described below commit 2abc948eb1e5cf5affb91c186ff9fc479f45a924 Author: JamesBognar AuthorDate: Sun May 31 19:20:40 2020 -0400 MockRestClient improvements. --- .../apache/juneau/rest/client2/RestRequest.java| 50 -- .../juneau/rest/client2/RestRequestCreated.java| 31 ++ .../apache/juneau/rest/mock2/MockRestRequest.java | 1 + 3 files changed, 70 insertions(+), 12 deletions(-) diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestRequest.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestRequest.java index 2207124..49d19ba 100644 --- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestRequest.java +++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestRequest.java @@ -97,19 +97,9 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur super(client, BeanSessionArgs.DEFAULT); this.client = client; if (hasBody) { - this.request = new HttpEntityEnclosingRequestBase() { - @Override /* HttpRequest */ - public String getMethod() { - return method; - } - }; + this.request = new EntityRequest(method); } else { - this.request = new HttpRequestBase() { - @Override /* HttpRequest */ - public String getMethod() { - return method; - } - }; + this.request = new Request(method); } this.request.setURI(uri); this.errorCodes = client.errorCodes; @@ -118,6 +108,42 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur this.ignoreErrors = client.ignoreErrors; } + private class Request extends HttpRequestBase implements RestRequestCreated { + private final String method; + + Request(String method) { + this.method = method; + } + + @Override /* RestRequestCreated */ + public RestRequest getRestRequest() { + return RestRequest.this; + } + + @Override /* HttpRequestBase */ + public String getMethod() { + return method; + } + } + + private class EntityRequest extends HttpEntityEnclosingRequestBase implements RestRequestCreated { + private final String method; + + EntityRequest(String method) { + this.method = method; + } + + @Override /* RestRequestCreated */ + public RestRequest getRestRequest() { + return RestRequest.this; + } + + @Override /* HttpRequestBase */ + public String getMethod() { + return method; + } + } + //-- // Configuration //-- diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestRequestCreated.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestRequestCreated.java new file mode 100644 index 000..c89b805 --- /dev/null +++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestRequestCreated.java @@ -0,0 +1,31 @@ +// *** +// * 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 t
[juneau] branch master updated: MockRestClient improvements.
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 b12a571 MockRestClient improvements. b12a571 is described below commit b12a571a8ebf0173f667e14cf84ef92f687b0b05 Author: JamesBognar AuthorDate: Sun May 31 19:00:33 2020 -0400 MockRestClient improvements. --- .../org/apache/juneau/rest/client2/RestClient.java | 55 +++--- .../apache/juneau/rest/client2/RestRequest.java| 23 +++-- .../apache/juneau/rest/mock2/MockRestClient.java | 11 +++-- .../apache/juneau/rest/mock2/MockRestRequest.java | 11 +++-- 4 files changed, 52 insertions(+), 48 deletions(-) diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClient.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClient.java index 27da129..fae2f36 100644 --- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClient.java +++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClient.java @@ -2802,46 +2802,25 @@ public class RestClient extends BeanContext implements HttpClient, Closeable { throw new RestCallException("RestClient.close() has already been called. This client cannot be reused. Closed location stack trace can be displayed by setting the system property 'org.apache.juneau.rest.client2.RestClient.trackCreation' to true."); } - RestRequest req = null; - final String methodUC = method.toUpperCase(Locale.ENGLISH); try { - HttpRequestBase reqb = null; - final URI uri = toURI(url); - if (hasBody) { - reqb = new HttpEntityEnclosingRequestBase() { - @Override /* HttpRequest */ - public String getMethod() { - return methodUC; - } - }; - reqb.setURI(uri); - req = createRequest(reqb); - } else { - reqb = new HttpRequestBase() { - @Override /* HttpRequest */ - public String getMethod() { - return methodUC; - } - }; - reqb.setURI(uri); - req = createRequest(reqb); - } - } catch (URISyntaxException e1) { - throw new RestCallException(e1); - } + RestRequest req = createRequest(toURI(url), method.toUpperCase(Locale.ENGLISH), hasBody); + + for (Object o : headers) + req.header(toHeader(o)); - for (Object o : headers) - req.header(toHeader(o)); + for (Object o : query) + req.query(toQuery(o)); - for (Object o : query) - req.query(toQuery(o)); + for (Object o : formData) + req.formData(toFormData(o)); - for (Object o : formData) - req.formData(toFormData(o)); + req.interceptors(interceptors); - req.interceptors(interceptors); + return req; - return req; + } catch (URISyntaxException e1) { + throw new RestCallException(e1); + } } /** @@ -2850,12 +2829,14 @@ public class RestClient extends BeanContext implements HttpClient, Closeable { * * Subclasses can override this method to provide their own specialized {@link RestRequest} objects. * -* @param httpRequest The request object to wrap. +* @param uri The target. +* @param method The HTTP method (uppercase). +* @param hasBody Whether this method has a request entity. * @return A new {@link RestRequest} object. * @throws RestCallException If an exception or non-200 response code occurred during the connection attempt. */ - protected RestRequest createRequest(HttpRequestBase httpRequest) throws RestCallException { - return new RestRequest(this, httpRequest); + protected RestRequest createRequest(URI uri, String method, boolean hasBody) throws RestCallException { + return new R
[juneau] branch master updated: MockRestClient improvements.
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 44bc156 MockRestClient improvements. 44bc156 is described below commit 44bc1560c81d4809601869c21751ab004e456319 Author: JamesBognar AuthorDate: Sun May 31 18:17:58 2020 -0400 MockRestClient improvements. --- .../apache/juneau/rest/client2/RestResponse.java | 1 + .../apache/juneau/rest/mock2/MockRestClient.java | 16 ++ .../apache/juneau/rest/mock2/MockRestRequest.java | 58 ++ .../apache/juneau/rest/mock2/MockRestResponse.java | 41 +++ 4 files changed, 116 insertions(+) diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestResponse.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestResponse.java index 39d0d2f..989166b 100644 --- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestResponse.java +++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestResponse.java @@ -53,6 +53,7 @@ public class RestResponse implements HttpResponse { /** * Constructor. +* * @param client The RestClient that created this response. * @param request The REST request. * @param response The HTTP response. Can be null. diff --git a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestClient.java b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestClient.java index b6902eb..a6813af 100644 --- a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestClient.java +++ b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestClient.java @@ -12,6 +12,8 @@ // *** package org.apache.juneau.rest.mock2; +import org.apache.http.*; +import org.apache.http.client.methods.*; import org.apache.juneau.*; import org.apache.juneau.rest.annotation.*; import org.apache.juneau.rest.client2.*; @@ -102,6 +104,20 @@ public class MockRestClient extends RestClient { return create(impl).simpleJson().build(MockRestClient.class); } + /** +* Creates a {@link RestRequest} object from the specified {@link HttpRequest} object. +* +* +* Subclasses can override this method to provide their own specialized {@link RestRequest} objects. +* +* @param httpRequest The request object to wrap. +* @return A new {@link RestRequest} object. +* @throws RestCallException If an exception or non-200 response code occurred during the connection attempt. +*/ + @Override + protected MockRestRequest createRequest(HttpRequestBase httpRequest) throws RestCallException { + return new MockRestRequest(this, httpRequest); + } // diff --git a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestRequest.java b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestRequest.java new file mode 100644 index 000..c1ec765 --- /dev/null +++ b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestRequest.java @@ -0,0 +1,58 @@ +// *** +// * 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 limitation
[juneau] branch master updated: MockRestClient improvements.
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 abbf69b MockRestClient improvements. abbf69b is described below commit abbf69bfebdaba735a7742fe166626f000e8c5be Author: JamesBognar AuthorDate: Sun May 31 17:15:23 2020 -0400 MockRestClient improvements. --- .../org/apache/juneau/rest/client2/RestRequest.java | 21 +++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestRequest.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestRequest.java index b6d300f..02962e9 100644 --- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestRequest.java +++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestRequest.java @@ -2895,9 +2895,9 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur try { if (request2 != null) - response = new RestResponse(client, this, client.execute(target, request2, context), parser); + response = createResponse(client, client.execute(target, request2, context), parser); else - response = new RestResponse(client, this, client.execute(target, this.request, context), parser); + response = createResponse(client, client.execute(target, this.request, context), parser); } catch (Exception e) { throw e; } @@ -2930,6 +2930,23 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur } /** +* Creates a {@link RestResponse} object from the specified {@link HttpResponse} object. +* +* +* Subclasses can override this method to provide their own specialized {@link RestResponse} objects. +* +* @param client The client that created the request. +* @param httpResponse The response object to wrap. +* @param parser The parser to use to parse the response. +* +* @return A new {@link RestResponse} object. +* @throws RestCallException If an exception or non-200 response code occurred during the connection attempt. +*/ + protected RestResponse createResponse(RestClient client, HttpResponse httpResponse, Parser parser) throws RestCallException { + return new RestResponse(client, this, httpResponse, parser); + } + + /** * Same as {@link #run()} but allows you to run the call asynchronously. * * Example:
[juneau] branch master updated: MockRestClient improvements.
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 7fbf4f6 MockRestClient improvements. 7fbf4f6 is described below commit 7fbf4f6862c3d9c32c4173df11224b2117a0d9b5 Author: JamesBognar AuthorDate: Fri May 29 12:58:05 2020 -0400 MockRestClient improvements. --- .../rest/mock2/MockHttpClientConnection.java | 2 +- .../apache/juneau/rest/mock2/MockHttpResponse.java | 2 +- .../juneau/rest/mock2/MockServletRequest.java | 6 +- .../juneau/rest/mock2/MockServletResponse.java | 167 + .../juneau/rest/mock2/MockServletResponseBody.java | 193 --- .../rest/mock2/MockServletResponseHeader.java | 263 - 6 files changed, 9 insertions(+), 624 deletions(-) diff --git a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockHttpClientConnection.java b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockHttpClientConnection.java index e70cddb..e8451c9 100644 --- a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockHttpClientConnection.java +++ b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockHttpClientConnection.java @@ -115,7 +115,7 @@ public class MockHttpClientConnection implements HttpClientConnection { @Override /* HttpClientConnection */ public void receiveResponseEntity(HttpResponse response) throws HttpException, IOException { BasicHttpEntity e = new BasicHttpEntity(); - e.setContent(res.getBody().asInputStream()); + e.setContent(new ByteArrayInputStream(res.getBody())); response.setEntity(e); } diff --git a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockHttpResponse.java b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockHttpResponse.java index 0749e69..ac1ebd3 100644 --- a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockHttpResponse.java +++ b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockHttpResponse.java @@ -49,5 +49,5 @@ public interface MockHttpResponse { * * @return The body of the response. */ - MockServletResponseBody getBody(); + byte[] getBody(); } diff --git a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockServletRequest.java b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockServletRequest.java index 69e5821..6e67e0d 100644 --- a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockServletRequest.java +++ b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockServletRequest.java @@ -317,7 +317,11 @@ public class MockServletRequest implements HttpServletRequest, MockHttpRequest { for (String h2 : h.getValue()) sb.append("\n").append(h.getKey()).append(": ").append(h2); sb.append("\n---response content---\n"); - sb.append(res.getBody().asString()); + try { + sb.append(IOUtils.read(res.getBody())); + } catch (IOException e) { + e.printStackTrace(); + } sb.append("\n=== END ==="); System.err.println(sb); // NOT DEBUG diff --git a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockServletResponse.java b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockServletResponse.java index 879eb39..a854d2f 100644 --- a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockServletResponse.java +++ b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockServletResponse.java @@ -18,7 +18,6 @@ import java.util.*; import javax.servlet.*; import javax.servlet.http.*; -import org.apache.juneau.assertions.*; import org.apache.juneau.internal.*; import org.apache.juneau.rest.util.*; @@ -352,174 +351,12 @@ public class MockServletResponse implements HttpServletResponse, MockHttpRespons * @return The body of the request. */ @Override /* MockHttpResponse */ - public MockServletResponseBody getBody() { - return new MockServletResponseBody(this, baos.toByteArray()); + public byte[] getBody() { + return baos.toByteArray(); } @Override /* MockHttpResponse */ public Map getHeaders() { return headerMap; } - - /** -* Used for fluent a
[juneau] branch master updated: MockRestClient improvements.
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 b92c316 MockRestClient improvements. b92c316 is described below commit b92c3169d6c9fc89016a3cfeec19ae182cb0f2af Author: JamesBognar AuthorDate: Fri May 29 12:28:37 2020 -0400 MockRestClient improvements. --- .../org/apache/juneau/rest/client2/RestClient.java | 21 +++-- .../org/apache/juneau/rest/client2/RestRequest.java | 7 +++ 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClient.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClient.java index b197ef2..27da129 100644 --- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClient.java +++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClient.java @@ -2806,6 +2806,7 @@ public class RestClient extends BeanContext implements HttpClient, Closeable { final String methodUC = method.toUpperCase(Locale.ENGLISH); try { HttpRequestBase reqb = null; + final URI uri = toURI(url); if (hasBody) { reqb = new HttpEntityEnclosingRequestBase() { @Override /* HttpRequest */ @@ -2813,7 +2814,8 @@ public class RestClient extends BeanContext implements HttpClient, Closeable { return methodUC; } }; - req = new RestRequest(this, reqb, toURI(url)); + reqb.setURI(uri); + req = createRequest(reqb); } else { reqb = new HttpRequestBase() { @Override /* HttpRequest */ @@ -2821,7 +2823,8 @@ public class RestClient extends BeanContext implements HttpClient, Closeable { return methodUC; } }; - req = new RestRequest(this, reqb, toURI(url)); + reqb.setURI(uri); + req = createRequest(reqb); } } catch (URISyntaxException e1) { throw new RestCallException(e1); @@ -2842,6 +2845,20 @@ public class RestClient extends BeanContext implements HttpClient, Closeable { } /** +* Creates a {@link RestRequest} object from the specified {@link HttpRequest} object. +* +* +* Subclasses can override this method to provide their own specialized {@link RestRequest} objects. +* +* @param httpRequest The request object to wrap. +* @return A new {@link RestRequest} object. +* @throws RestCallException If an exception or non-200 response code occurred during the connection attempt. +*/ + protected RestRequest createRequest(HttpRequestBase httpRequest) throws RestCallException { + return new RestRequest(this, httpRequest); + } + + /** * Create a new proxy interface against a 3rd-party REST interface. * * diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestRequest.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestRequest.java index 93640ea..b6d300f 100644 --- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestRequest.java +++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestRequest.java @@ -61,7 +61,7 @@ import org.apache.juneau.xml.*; * {@doc juneau-rest-client} * */ -public final class RestRequest extends BeanSession implements HttpUriRequest, Configurable { +public class RestRequest extends BeanSession implements HttpUriRequest, Configurable { private static final ContentType TEXT_PLAIN = ContentType.create("text/plain"); @@ -89,16 +89,15 @@ public final class RestRequest extends BeanSession implements HttpUriRequest, Co * * @param client The client that created this request. * @param request The wrapped Apache HTTP client request object. -* @param uri The URI for this call. * @throws RestCallException If an exception or non-200 response code occurred during the connection attempt. */ - protected RestRequest(RestClient client, HttpRequestBase request, URI uri) throws RestCal
[juneau] branch master updated: Javadocs
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 d9d8fa9 Javadocs d9d8fa9 is described below commit d9d8fa9a3c84b101e554cd8704dcf7808c43df7a Author: JamesBognar AuthorDate: Fri May 29 12:03:34 2020 -0400 Javadocs --- .../java/org/apache/juneau/BeanContextBuilder.java | 6 +- .../33.LoggingAndDebugging.html| 23 +- juneau-doc/src/main/javadoc/overview.html | 406 + juneau-doc/src/main/javadoc/resources/docs.txt | 3 +- .../src/main/javadoc/resources/fragments/toc.html | 7 +- 5 files changed, 118 insertions(+), 327 deletions(-) diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextBuilder.java index 84c62bc..d68b44f 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextBuilder.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextBuilder.java @@ -418,7 +418,7 @@ public class BeanContextBuilder extends ContextBuilder { * BeanContext configuration property: Bean dictionary. * * -* Deprecated - Use {@link #dictonary(Object...)} +* Deprecated - Use {@link #dictionary(Object...)} * */ @SuppressWarnings("javadoc") @@ -2986,7 +2986,7 @@ public class BeanContextBuilder extends ContextBuilder { * BeanContext configuration property: POJO swaps. * * -* Deprecated - Use {@link #swapsReplace(Object...)} +* Deprecated - Use {@link #set(String,Object)} * */ @SuppressWarnings("javadoc") @@ -3000,7 +3000,7 @@ public class BeanContextBuilder extends ContextBuilder { * BeanContext configuration property: POJO swaps. * * -* Deprecated - Use {@link #swapsRemove(Object...)} +* Deprecated - Use {@link #removeFrom(String,Object)} * */ @SuppressWarnings("javadoc") diff --git a/juneau-doc/docs/Topics/06.juneau-rest-server/33.LoggingAndDebugging.html b/juneau-doc/docs/Topics/06.juneau-rest-server/33.LoggingAndDebugging.html index 3d04f59..1b74b4a 100644 --- a/juneau-doc/docs/Topics/06.juneau-rest-server/33.LoggingAndDebugging.html +++ b/juneau-doc/docs/Topics/06.juneau-rest-server/33.LoggingAndDebugging.html @@ -13,7 +13,7 @@ ***/ --> -{8.1.0-new} +{8.1.0-new,8.1.4-updated} Logging / Debugging @@ -102,11 +102,15 @@ Logging / Debugging } } - static MockRest MY_REST = MockRest.build(MyRestClass.class, null); - @Test public void test() throws Exception { - MY_REST.post("/foo?foo=bar", "Foo").header("Foo", "bar").execute().assertStatus(500); + MockRestClient.create(MyRestClass.class) + .simpleJson() + .build() + .post<("/foo?foo=bar", "Foo") + .header("Foo", "bar") + .run() + .assertStatus().is(500); } @@ -311,12 +315,15 @@ Logging / Debugging } } - static MockRest MY_REST = MockRest.build(MyRestClass.class, null); - @Test public void test() throws Exception { - MY_REST.post("/foo?foo=bar", "Foo").header("Foo", "bar").execute().assertStatus(500); - MY_REST.post("/foo?foo=bar", "Foo").header("Foo", "bar").execute().assertStatus(500); + MockRestClient.create(MyRestClass.class) + .json() + .build() + .post("/foo?foo=bar", "Foo") + .header("Foo", "bar") + .run() + .assertStatus().is(500); } diff --git a/juneau-doc/src/main/javadoc/overview.html b/juneau-doc/src/main/javadoc/overview.html index 6db0989..c12ab8f 100644 --- a/juneau-doc/src/main/javadoc/overview.html +++ b/juneau-doc/src/main/javadoc/overview.html @@ -439,7 +439,7 @@ Stylesheets8.1.0-updated Default Headers - Logging / Debugging8.1.0-new + Logging / Debugging8.1.0-new,8.1.4-updated HTTP Status Codes Overloading HTTP Methods
[juneau] branch master updated: Javadocs.
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 e6c9cf0 Javadocs. e6c9cf0 is described below commit e6c9cf0e434e9d88d3bdd3412941e5faa0d4709d Author: JamesBognar AuthorDate: Fri May 29 11:10:03 2020 -0400 Javadocs. --- juneau-doc/docs/ReleaseNotes/8.1.4.html| 8 +- juneau-doc/docs/Topics/10.juneau-rest-mock.html| 14 +- .../Topics/10.juneau-rest-mock/01.MockRest.html| 275 - .../10.juneau-rest-mock/01.MockRestClient.html | 162 .../Topics/10.juneau-rest-mock/02.MockRemote.html | 126 -- 5 files changed, 169 insertions(+), 416 deletions(-) diff --git a/juneau-doc/docs/ReleaseNotes/8.1.4.html b/juneau-doc/docs/ReleaseNotes/8.1.4.html index 1d9c4b2..a114811 100644 --- a/juneau-doc/docs/ReleaseNotes/8.1.4.html +++ b/juneau-doc/docs/ReleaseNotes/8.1.4.html @@ -477,6 +477,10 @@ p> -juneau-doc +juneau-rest-mock - + + The MockRest and MockRemote classes have been remove entirely and all existing functions + have been moved into the improved {@link oajr.mock2.MockRestClient} class. All REST test mocking can be + done through this single class. + diff --git a/juneau-doc/docs/Topics/10.juneau-rest-mock.html b/juneau-doc/docs/Topics/10.juneau-rest-mock.html index c4969da..7161095 100644 --- a/juneau-doc/docs/Topics/10.juneau-rest-mock.html +++ b/juneau-doc/docs/Topics/10.juneau-rest-mock.html @@ -13,7 +13,7 @@ ***/ --> -{8.1.0-new} +{8.1.0-new,8.1.4-updated} juneau-rest-mock Maven Dependency @@ -41,15 +41,3 @@ juneau-rest-mock Each of the APIs provide the ability to fully test your server and client REST interfaces without the need for a running servlet container. - - - The API consists of the following classes: - - - {@link oajr.mock2} - - {@link oajr.mock2.MockRest} - API for unit testing {@link oajr.annotation.Rest @Rest}-annotated classes. - {@link oajr.mock2.MockRemote} - API for unit testing {@link oaj.http.remote.Remote @Remote}-annotated classes. - - - diff --git a/juneau-doc/docs/Topics/10.juneau-rest-mock/01.MockRest.html b/juneau-doc/docs/Topics/10.juneau-rest-mock/01.MockRest.html deleted file mode 100644 index 2813d2f..000 --- a/juneau-doc/docs/Topics/10.juneau-rest-mock/01.MockRest.html +++ /dev/null @@ -1,275 +0,0 @@ - - -{8.1.0-new} -MockRest - - - The {@link oajr.mock2.MockRest} class is used for performing serverless unit testing of {@link oajr.annotation.Rest @Rest}-annotated - classes. These include both parent resource classes that extend from {@link oajr.RestServlet} and child resources that do not. - - - The API consists of the following classes: - - - {@link oajr.mock2} - - {@link oajr.mock2.MockRest} - The API for instantiating mocks of REST resource classes. - {@link oajr.mock2.MockServletRequest} - An implementation of {@link javax.servlet.http.HttpServletRequest} with additional convenience methods for building requests. - {@link oajr.mock2.MockServletResponse} - An implementation of {@link javax.servlet.http.HttpServletRequest} with additional convenience methods for testing responses. - - - - The following shows a simple example of invoking a PUT method on a simple REST interface and asserting - the correct status code and response body: - - - public class MockTest { - - // Our REST resource to test. - @Rest( - serializers=SimpleJsonSerializer.class, - parsers=JsonParser.class - ) - public static class EchoRest { - - @RestMethod( - name=PUT, - path="/echo" - ) - public String echo(@Body String body) { - return body; - } - } - - // Our JUnit test. - @Test - public void testEcho() throws Exception { - - MockRest mr = MockRest.build(EchoRest.class); - - mr - .put("/echo", "'foo'") - .execute() - .assertStatus(200) - .assertBody("'foo'"); -
[juneau] branch master updated: MockRestClient improvements.
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 c02b45c MockRestClient improvements. c02b45c is described below commit c02b45c68065468478b1f6f27e59256ce5ef2c76 Author: JamesBognar AuthorDate: Thu May 28 19:12:49 2020 -0400 MockRestClient improvements. --- .../rest/mock2/MockHttpClientConnection.java | 2 +- .../juneau/rest/mock2/MockHttpConnection.java | 6 +- .../{MockRest.java => MockHttpConnectionImpl.java} | 105 ++--- .../apache/juneau/rest/mock2/MockRestClient.java | 2 +- .../juneau/rest/mock2/MockRestClientBuilder.java | 17 ++-- 5 files changed, 43 insertions(+), 89 deletions(-) diff --git a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockHttpClientConnection.java b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockHttpClientConnection.java index 5cb818b..e70cddb 100644 --- a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockHttpClientConnection.java +++ b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockHttpClientConnection.java @@ -87,7 +87,7 @@ public class MockHttpClientConnection implements HttpClientConnection { target = httpHost.toURI(); } path = target + path; - req = c.request(rl.getMethod(), path, request.getAllHeaders(), null); + req = c.request(rl.getMethod(), path, request.getAllHeaders()); } catch (Exception e) { throw new HttpException(e.getMessage(), e); } diff --git a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockHttpConnection.java b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockHttpConnection.java index 53233a5..cf2cba4 100644 --- a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockHttpConnection.java +++ b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockHttpConnection.java @@ -18,8 +18,8 @@ import org.apache.http.*; * Represent the basic connection for mock HTTP requests. * * - * Used as a shim between the server and client APIs that allow the RestClient - * class to send and receive mocked requests using the MockRest interface. + * Used as a shim between the server and client APIs that allow the MockRestClient class to send and receive mocked + * requests directly against @Rest-annotated beans. */ public interface MockHttpConnection { @@ -33,5 +33,5 @@ public interface MockHttpConnection { * @return A new mock request. * @throws Exception */ - MockHttpRequest request(String method, String uri, Header[] headers, Object body) throws Exception; + MockHttpRequest request(String method, String uri, Header[] headers) throws Exception; } diff --git a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRest.java b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockHttpConnectionImpl.java similarity index 54% rename from juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRest.java rename to juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockHttpConnectionImpl.java index a0efe27..edd2fad 100644 --- a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRest.java +++ b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockHttpConnectionImpl.java @@ -13,78 +13,42 @@ package org.apache.juneau.rest.mock2; import static org.apache.juneau.rest.util.RestUtils.*; +import static org.apache.juneau.internal.StringUtils.*; -import java.io.*; import java.util.*; import java.util.concurrent.*; import org.apache.http.*; -import org.apache.juneau.internal.*; import org.apache.juneau.rest.*; import org.apache.juneau.rest.annotation.*; /** - * Creates a mocked interface against a REST resource class. - * - * - * Allows you to test your REST resource classes without a running servlet container. - * - * Example: - * - * public class MockTest { - * - * // Our REST resource to test. - * @Rest(serializers=JsonSerializer.Simple.class, parsers=JsonParser.class) - * public static class MyRest { - * - * @RestMethod(name=PUT, path="/String") - * public String echo(@Body String b) { - * return b; - * } - * } - * - * @Test - * public void testEcho() throws Exception { - * MockRest - * .create(MyRest.class) - * .json() - * .build() - * .put("/String", "'foo
[juneau] branch master updated: MockRestClient improvements.
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 f24a77a MockRestClient improvements. f24a77a is described below commit f24a77ac2197b176d72de53bcfa46a20a6a39491 Author: JamesBognar AuthorDate: Thu May 28 18:51:42 2020 -0400 MockRestClient improvements. --- .../org/apache/juneau/rest/mock2/MockRest.java | 38 - .../apache/juneau/rest/mock2/MockRestBuilder.java | 91 -- .../juneau/rest/mock2/MockRestClientBuilder.java | 19 +++-- 3 files changed, 26 insertions(+), 122 deletions(-) diff --git a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRest.java b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRest.java index aa3dba6..a0efe27 100644 --- a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRest.java +++ b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRest.java @@ -66,22 +66,25 @@ public class MockRest implements MockHttpConnection { private final RestContext ctx; /** Debug mode enabled. */ - protected final boolean debug; + private final boolean debug; final String contextPath, servletPath, rootUrl; /** * Constructor. * -* @param b Builder. +* @param impl The {@link Rest @Rest} annotated servlet. +* @param contextPath The context path of the servlet. +* @param servletPath The servlet path of the servlet. +* @param debug Enable debug mode on the servlet side. */ - protected MockRest(MockRestBuilder b) { + protected MockRest(Object impl, String contextPath, String servletPath, boolean debug) { try { - debug = false; - Class c = b.impl instanceof Class ? (Class)b.impl : b.impl.getClass(); + this.debug = debug; + Class c = impl instanceof Class ? (Class)impl : impl.getClass(); Map,RestContext> contexts = debug ? CONTEXTS_DEBUG : CONTEXTS_NORMAL; if (! contexts.containsKey(c)) { - Object o = b.impl instanceof Class ? ((Class)b.impl).newInstance() : b.impl; + Object o = impl instanceof Class ? ((Class)impl).newInstance() : impl; RestContextBuilder rcb = RestContext.create(o); if (debug) { rcb.debug(Enablement.TRUE); @@ -97,10 +100,10 @@ public class MockRest implements MockHttpConnection { contexts.put(c, rc); } ctx = contexts.get(c); - contextPath = b.contextPath; - if (b.servletPath.isEmpty()) - b.servletPath = toValidContextPath(ctx.getPath()); - servletPath = b.servletPath; + this.contextPath = contextPath; + if (servletPath.isEmpty()) + servletPath = toValidContextPath(ctx.getPath()); + this.servletPath = servletPath; rootUrl = new StringBuilder().append(contextPath).append(servletPath).toString(); } catch (Exception e) { throw new RuntimeException(e); @@ -108,21 +111,6 @@ public class MockRest implements MockHttpConnection { } /** -* Creates a new builder with the specified REST implementation bean or bean class. -* -* -* No Accept or Content-Type header is specified by default. -* -* @param impl -* The REST bean or bean class annotated with {@link Rest @Rest}. -* If a class, it must have a no-arg constructor. -* @return A new builder. -*/ - public static MockRestBuilder create(Object impl) { - return new MockRestBuilder(impl); - } - - /** * Performs a REST request against the REST interface. * * @param method The HTTP method diff --git a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestBuilder.java b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestBuilder.java deleted file mode 100644 index d36644c..000 --- a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestBuilder.java +++ /dev/null @@ -1,91 +0,0 @@ -// *** -// * Licensed to the Apache Software Foundation (ASF) under one or m
[juneau] branch master updated: MockRestClient improvements.
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 1cda316 MockRestClient improvements. 1cda316 is described below commit 1cda316b2f71d2f0f0028b6f3b10223d7aedbaf2 Author: JamesBognar AuthorDate: Thu May 28 18:21:38 2020 -0400 MockRestClient improvements. --- .../java/org/apache/juneau/rest/mock2/MockRestClientBuilder.java | 8 +--- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestClientBuilder.java b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestClientBuilder.java index d2dc27c..3c55e88 100644 --- a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestClientBuilder.java +++ b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestClientBuilder.java @@ -168,13 +168,7 @@ public class MockRestClientBuilder extends RestClientBuilder { @Override /* ContextBuilder */ public MockRestClient build() { - MockRest mr = mrb.build(); - connectionManager(new MockHttpClientConnectionManager(mr)); - Object rootUrl = peek(RestClient.RESTCLIENT_rootUri); - if (rootUrl == null) - rootUrl = "http://localhost;; - rootUrl(rootUrl + mr.rootUrl); - return super.build(MockRestClient.class); + return build(MockRestClient.class); } @Override /* ContextBuilder */
[juneau] branch master updated: MockRestClient improvements.
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 30a347a MockRestClient improvements. 30a347a is described below commit 30a347a8f647977400194fb6fb2dd6350eab48ce Author: JamesBognar AuthorDate: Thu May 28 18:14:49 2020 -0400 MockRestClient improvements. --- .../apache/juneau/rest/mock2/PathResolverTest.java | 2 +- .../{PathResolver.java => MockPathResolver.java} | 4 +- .../org/apache/juneau/rest/mock2/MockRest.java | 42 -- .../apache/juneau/rest/mock2/MockRestBuilder.java | 66 -- .../juneau/rest/mock2/MockRestClientBuilder.java | 4 -- 5 files changed, 14 insertions(+), 104 deletions(-) diff --git a/juneau-rest/juneau-rest-mock-utest/src/test/java/org/apache/juneau/rest/mock2/PathResolverTest.java b/juneau-rest/juneau-rest-mock-utest/src/test/java/org/apache/juneau/rest/mock2/PathResolverTest.java index 69363d7..ede5c96 100644 --- a/juneau-rest/juneau-rest-mock-utest/src/test/java/org/apache/juneau/rest/mock2/PathResolverTest.java +++ b/juneau-rest/juneau-rest-mock-utest/src/test/java/org/apache/juneau/rest/mock2/PathResolverTest.java @@ -20,7 +20,7 @@ import org.junit.*; public class PathResolverTest { - public static class PathResolver2 extends PathResolver { + public static class PathResolver2 extends MockPathResolver { public PathResolver2(String target, String contextPath, String servletPath, String pathToResolve, Map pathVars) { super(target, contextPath, servletPath, pathToResolve, pathVars); diff --git a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/PathResolver.java b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockPathResolver.java similarity index 97% rename from juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/PathResolver.java rename to juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockPathResolver.java index fd2f590..a5df7f5 100644 --- a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/PathResolver.java +++ b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockPathResolver.java @@ -23,7 +23,7 @@ import org.apache.juneau.rest.util.*; /** * Used to resolve incoming URLS to the various URL artifacts of HttpServletRequest. */ -public class PathResolver { +public class MockPathResolver { private String uri, target, contextPath, servletPath, remainder; private String error; @@ -44,7 +44,7 @@ public class PathResolver { * @param pathVars * Optional path variables to resolve in the context path or servlet path. */ - public PathResolver(String target, String contextPath, String servletPath, String pathToResolve, Map pathVars) { + public MockPathResolver(String target, String contextPath, String servletPath, String pathToResolve, Map pathVars) { try { init(target, contextPath, servletPath, pathToResolve, pathVars); } catch (Exception e) { diff --git a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRest.java b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRest.java index a7583a5..aa3dba6 100644 --- a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRest.java +++ b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRest.java @@ -65,9 +65,6 @@ public class MockRest implements MockHttpConnection { private final RestContext ctx; - /** Requests headers to add to every request. */ - protected final Map headers; - /** Debug mode enabled. */ protected final boolean debug; @@ -80,7 +77,7 @@ public class MockRest implements MockHttpConnection { */ protected MockRest(MockRestBuilder b) { try { - debug = b.debug; + debug = false; Class c = b.impl instanceof Class ? (Class)b.impl : b.impl.getClass(); Map,RestContext> contexts = debug ? CONTEXTS_DEBUG : CONTEXTS_NORMAL; if (! contexts.containsKey(c)) { @@ -100,7 +97,6 @@ public class MockRest implements MockHttpConnection { contexts.put(c, rc); } ctx = contexts.get(c); - headers = new LinkedHashMap<>(b.headers); contextPath = b.contextPath; if (b.servletPath.isEmpty()) b.servletPath = toValidContextPath(ctx.getPath()); @@ -146,7 +142,7 @@ public class MockRes
[juneau] branch master updated: Remote MockRemote.
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 e7f6480 Remote MockRemote. e7f6480 is described below commit e7f6480a58c957a68dd68ab46175a2936f6fdcde Author: JamesBognar AuthorDate: Thu May 28 18:01:16 2020 -0400 Remote MockRemote. --- .../rest/test/client/RequestBeanProxyTest.java | 40 +- .../juneau/rest/client2/BodyAnnotationTest.java| 6 +- .../juneau/rest/client2/EndToEndInterfaceTest.java | 17 +- .../rest/client2/FormDataAnnotationTest.java | 20 +- .../juneau/rest/client2/HeaderAnnotationTest.java | 20 +- .../juneau/rest/client2/PathAnnotationTest.java| 16 +- .../juneau/rest/client2/QueryAnnotationTest.java | 20 +- .../rest/client2/RemoteMethodAnnotationTest.java | 24 +- .../rest/client2/RemoteResourceAnnotationTest.java | 11 +- .../juneau/rest/client2/RequestAnnotationTest.java | 10 +- .../rest/client2/ResponseAnnotationTest.java | 2 +- .../org/apache/juneau/rest/mock2/MockRemote.java | 650 - 12 files changed, 92 insertions(+), 744 deletions(-) diff --git a/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/client/RequestBeanProxyTest.java b/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/client/RequestBeanProxyTest.java index 7e2529a..b534334 100644 --- a/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/client/RequestBeanProxyTest.java +++ b/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/client/RequestBeanProxyTest.java @@ -87,7 +87,7 @@ public class RequestBeanProxyTest { @Override public String getX7() { return "123"; } } - static A01_RemoteResource a01a = MockRemote.build(A01_RemoteResource.class, A.class); + static A01_RemoteResource a01a = MockRestClient.build(A.class).getRemote(A01_RemoteResource.class); static A01_RemoteResource a01b = MockRestClient.create(A.class).partSerializer(UonSerializer.class).build().getRemote(A01_RemoteResource.class); @Test @@ -136,7 +136,7 @@ public class RequestBeanProxyTest { } } - static A02_RemoteResource a02a = MockRemote.build(A02_RemoteResource.class, A.class); + static A02_RemoteResource a02a = MockRestClient.build(A.class).getRemote(A02_RemoteResource.class); static A02_RemoteResource a02b = MockRestClient.create(A.class).partSerializer(UonSerializer.class).build().getRemote(A02_RemoteResource.class); @Test @@ -188,7 +188,7 @@ public class RequestBeanProxyTest { } } - static A03_RemoteResource a03a = MockRemote.build(A03_RemoteResource.class, A.class); + static A03_RemoteResource a03a = MockRestClient.build(A.class).getRemote(A03_RemoteResource.class); static A03_RemoteResource a03b = MockRestClient.create(A.class).partSerializer(UonSerializer.class).build().getRemote(A03_RemoteResource.class); @Test @@ -224,7 +224,7 @@ public class RequestBeanProxyTest { } } - static A04_RemoteResource a04a = MockRemote.build(A04_RemoteResource.class, A.class); + static A04_RemoteResource a04a = MockRestClient.build(A.class).getRemote(A04_RemoteResource.class); @Test public void a04a_query_charSequence() throws Exception { @@ -249,7 +249,7 @@ public class RequestBeanProxyTest { } } - static A05_RemoteResource a05a = MockRemote.build(A05_RemoteResource.class, A.class); + static A05_RemoteResource a05a = MockRestClient.build(A.class).getRemote(A05_RemoteResource.class); @Test public void a05a_query_reader() throws Exception { @@ -310,7 +310,7 @@ public class RequestBeanProxyTest { } } - static A06_RemoteResource a06a = MockRemote.build(A06_RemoteResource.class, A.class); + static A06_RemoteResource a06a = MockRestClient.build(A.class).getRemote(A06_RemoteResource.class); static A06_RemoteResource a06b = MockRestClient.create(A.class).partSerializer(UonSerializer.class).build().getRemote(A06_RemoteResource.class); @Test @@ -386,7 +386,7 @@ public class RequestBeanProxyTest { } } - static C01_RemoteResource c01a = MockRemote.build(C01_RemoteResource.class, C.class); + static C01_RemoteResource c01a = MockRestClient.build(C.class).getRemote(C01_RemoteResource.class); static C01_RemoteResource c01b = MockRestClient.create(C.class).partSerializer(UonSerializer.class).build().getRemote(C01_RemoteResource.class); @Test @@ -438,7 +438,7 @@ public class RequestBeanProxyTest { } } -
[juneau] branch master updated: MockRestClient improvements.
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 6865d15 MockRestClient improvements. 6865d15 is described below commit 6865d1562157f1d4814b346cd471ccc55a170c82 Author: JamesBognar AuthorDate: Thu May 28 17:16:01 2020 -0400 MockRestClient improvements. --- .../org/apache/juneau/rest/mock2/MockRest.java | 111 .../apache/juneau/rest/mock2/MockRestBuilder.java | 142 - 2 files changed, 253 deletions(-) diff --git a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRest.java b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRest.java index ee910f9..a7583a5 100644 --- a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRest.java +++ b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRest.java @@ -20,11 +20,8 @@ import java.util.concurrent.*; import org.apache.http.*; import org.apache.juneau.internal.*; -import org.apache.juneau.marshall.*; -import org.apache.juneau.parser.*; import org.apache.juneau.rest.*; import org.apache.juneau.rest.annotation.*; -import org.apache.juneau.serializer.*; /** * Creates a mocked interface against a REST resource class. @@ -130,114 +127,6 @@ public class MockRest implements MockHttpConnection { } /** -* Convenience method for creating a MockRest over the specified REST implementation bean or bean class. -* -* -* Accept and Content-Type headers are not added to the request. -* -* -* Equivalent to calling: -* -* MockRest.create(impl, null, null).build(); -* -* -* @param impl -* The REST bean or bean class annotated with {@link Rest @Rest}. -* If a class, it must have a no-arg constructor. -* @return A new {@link MockRest} object. -*/ - public static MockRest build(Object impl) { - return build(impl, null, null); - } - - /** -* Convenience method for creating a MockRest over the specified REST implementation bean or bean class. -* -* -* Accept and Content-Type headers are set to the primary media types on the specified marshall. -* -* -* Note that the marshall itself is not involved in any serialization or parsing. -* -* -* Equivalent to calling: -* -* MockRest.create(impl, SimpleJson.DEFAULT).marshall(m).build(); -* -* -* @param impl -* The REST bean or bean class annotated with {@link Rest @Rest}. -* If a class, it must have a no-arg constructor. -* @param m -* The marshall to use for specifying the Accept and Content-Type headers. -* If null, headers will be reset. -* @return A new {@link MockRest} object. -*/ - public static MockRest build(Object impl, Marshall m) { - return create(impl).marshall(m).build(); - } - - /** -* Convenience method for creating a MockRest over the specified REST implementation bean or bean class. -* -* -* Accept and Content-Type headers are set to the primary media types on the specified serializer and parser. -* -* -* Note that the serializer and parsers are not involved in any serialization or parsing. -* -* -* Equivalent to calling: -* -* MockRest.create(impl).serializer(s).parser(p).build(); -* -* -* @param impl -* The REST bean or bean class annotated with {@link Rest @Rest}. -* If a class, it must have a no-arg constructor. -* @param s -* The serializer to use for specifying the Content-Type header. -* If null, header will be reset. -* @param p -* The parser to use for specifying the Accept header. -* If null, header will be reset. -* @return A new {@link MockRest} object. -*/ - public static MockRest build(Object impl, Serializer s, Parser p) { - return create(impl).serializer(s).parser(p).build(); - } - - /** -* Shortcut builder. -* -* -* Shortcut for calling create(impl).json().build(). -* -* @param impl -* The REST bean or bean class annotated with {@link Rest @Rest}. -* If a class, it must have a no-arg constructor. -* @return A new {@link MockRest} object. -*/ - public static MockRest buildJson(Object impl) { - return create(impl).json().build
[juneau] branch master updated: MockRestClient improvements.
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 7283a1d MockRestClient improvements. 7283a1d is described below commit 7283a1da5335be0e1abcbe37f00829bda30938c1 Author: JamesBognar AuthorDate: Thu May 28 17:05:26 2020 -0400 MockRestClient improvements. --- .../juneau/config/store/ConfigFileStoreTest.java | 2 +- .../juneau/assertions/FluentStringAssertion.java | 2 +- .../org/apache/juneau/internal/StringUtils.java| 33 +- .../apache/juneau/rest/mock2/PathResolverTest.java | 360 + .../rest/mock2/MockHttpClientConnection.java | 11 +- .../juneau/rest/mock2/MockHttpConnection.java | 4 +- .../org/apache/juneau/rest/mock2/MockRest.java | 195 +-- .../apache/juneau/rest/mock2/MockRestBuilder.java | 2 +- .../juneau/rest/mock2/MockRestClientBuilder.java | 14 +- .../juneau/rest/mock2/MockServletRequest.java | 6 +- .../org/apache/juneau/rest/mock2/PathResolver.java | 237 ++ .../java/org/apache/juneau/rest/PathsTest.java | 80 ++--- .../annotation/RestResourcePropertiesTest.java | 2 +- .../rest/annotation2/PathAnnotationTest.java | 210 ++-- .../org/apache/juneau/rest/RestContextBuilder.java | 2 +- 15 files changed, 820 insertions(+), 340 deletions(-) diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/config/store/ConfigFileStoreTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/config/store/ConfigFileStoreTest.java index ce9652e..bd29861 100644 --- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/config/store/ConfigFileStoreTest.java +++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/config/store/ConfigFileStoreTest.java @@ -24,7 +24,7 @@ import org.junit.*; @FixMethodOrder(NAME_ASCENDING) public class ConfigFileStoreTest { - private static final File DIR = new File("./config"); + private static final File DIR = new File("./target/config"); @After public void cleanUp() { diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentStringAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentStringAssertion.java index bd851c0..6653e99 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentStringAssertion.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentStringAssertion.java @@ -60,7 +60,7 @@ public class FluentStringAssertion extends FluentAssertion { StringBuilder sb = new StringBuilder(); sb.append("Text did not equal expected."); sb.append("\nExpected: [").append(value.replaceAll("", "").replaceAll("\n", "n").replaceAll("\t", "t")).append("]"); - sb.append("\nActual : [").append(text.replaceAll("", "").replaceAll("\n", "n").replaceAll("\t", "t")).append("]"); + sb.append("\nActual : [").append(text == null ? null : text.replaceAll("", "").replaceAll("\n", "n").replaceAll("\t", "t")).append("]"); System.err.println(sb.toString()); } throw new BasicAssertionError("Text did not equal expected.\n\tExpected=[{0}]\n\tActual=[{1}]", value, text); diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/StringUtils.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/StringUtils.java index e7cbad9..b8f8816 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/StringUtils.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/StringUtils.java @@ -1467,7 +1467,7 @@ public final class StringUtils { if (s == null) return null; - if (s.indexOf('{') == -1) + if (m == null || m.isEmpty() || s.indexOf('{') == -1) return s; int S1 = 1;// Not in variable, looking for { @@ -1846,6 +1846,20 @@ public final class StringUtils { } /** +* Trims '/' characters from the beginning of the specified string. +* +* @param s The string to trim. +* @return A new trimmed string, or the same
[juneau] branch master updated: MockRestClient improvements.
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 bd0ee42 MockRestClient improvements. bd0ee42 is described below commit bd0ee4221338b6dfd7b1de88760efdb42526cbe4 Author: JamesBognar AuthorDate: Thu May 28 10:40:44 2020 -0400 MockRestClient improvements. --- .../org/apache/juneau/rest/mock2/MockServletResponse.java | 14 ++ .../org/apache/juneau/rest/headers/AcceptCharsetTest.java | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockServletResponse.java b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockServletResponse.java index ad53494..879eb39 100644 --- a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockServletResponse.java +++ b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockServletResponse.java @@ -91,6 +91,19 @@ public class MockServletResponse implements HttpServletResponse, MockHttpRespons @Override /* HttpServletResponse */ public void setCharacterEncoding(String charset) { this.characterEncoding = charset; + updateContentTypeHeader(); + } + + private void updateContentTypeHeader() { + String contentType = getContentType(); + String charset = characterEncoding; + if (contentType != null && charset != null) { + if (contentType.indexOf("charset=") != -1) + contentType = contentType.replaceAll("\\;\\s*charset=.*", ""); + if (! "UTF-8".equalsIgnoreCase(charset)) + contentType = contentType + ";charset=" + charset; + header("Content-Type", contentType); + } } /** @@ -128,6 +141,7 @@ public class MockServletResponse implements HttpServletResponse, MockHttpRespons @Override /* HttpServletResponse */ public void setContentType(String type) { setHeader("Content-Type", type); + updateContentTypeHeader(); } /** diff --git a/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/headers/AcceptCharsetTest.java b/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/headers/AcceptCharsetTest.java index a562727..4aa7a2d 100644 --- a/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/headers/AcceptCharsetTest.java +++ b/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/headers/AcceptCharsetTest.java @@ -40,7 +40,7 @@ public class AcceptCharsetTest { return "foo"; } } - static MockRest a = MockRest.build(A.class); + static MockRestClient a = MockRestClient.build(A.class); @Test public void a01_qValues() throws Exception {
[juneau] branch master updated: MockRestClient improvements.
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 59b077b MockRestClient improvements. 59b077b is described below commit 59b077b38d1a5c9c032ef54476e461903d613ed3 Author: JamesBognar AuthorDate: Thu May 28 10:19:56 2020 -0400 MockRestClient improvements. --- .../org/apache/juneau/rest/client2/RestClientBuilder.java | 14 ++ .../java/org/apache/juneau/rest/client2/RestRequest.java | 14 ++ .../apache/juneau/rest/headers/ContentEncodingTest.java| 4 ++-- 3 files changed, 30 insertions(+), 2 deletions(-) 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 12e88c8..0ef4c35 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 @@ -1401,6 +1401,20 @@ public class RestClientBuilder extends BeanContextBuilder { } /** +* Sets the value for the Content-Encoding request header on all requests. +* +* +* This is a shortcut for calling header("Content-Encoding", value); +* +* @param value The new header value. +* @return This object (for method chaining). +*/ + @ConfigurationProperty + public RestClientBuilder contentEncoding(Object value) { + return header("Content-Encoding", value); + } + + /** * Sets the value for the Date request header on all requests. * * diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestRequest.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestRequest.java index 23d4e4d..93640ea 100644 --- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestRequest.java +++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestRequest.java @@ -2442,6 +2442,20 @@ public final class RestRequest extends BeanSession implements HttpUriRequest, Co } /** +* Sets the value for the Content-Encoding request header. +* +* +* This is a shortcut for calling header("Content-Encoding", value); +* +* @param value The new header value. +* @return This object (for method chaining). +* @throws RestCallException Invalid input. +*/ + public RestRequest contentEncoding(Object value) throws RestCallException { + return header("Content-Encoding", value); + } + + /** * Sets the value for the Date request header. * * diff --git a/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/headers/ContentEncodingTest.java b/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/headers/ContentEncodingTest.java index 541c6e2..7137279 100644 --- a/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/headers/ContentEncodingTest.java +++ b/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/headers/ContentEncodingTest.java @@ -47,7 +47,7 @@ public class ContentEncodingTest { return in; } } - static MockRest a = MockRest.build(A.class); + static MockRestClient a = MockRestClient.build(A.class); @Test public void a01_noCompression() throws Exception { @@ -76,7 +76,7 @@ public class ContentEncodingTest { return in; } } - static MockRest b = MockRest.build(B.class); + static MockRestClient b = MockRestClient.build(B.class); @Test public void b01_withCompression_identity() throws Exception {
[juneau] branch master updated: MockRestClient improvements.
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 e46d393 MockRestClient improvements. e46d393 is described below commit e46d393132aa8facab579330d8bb1eb4a6352733 Author: JamesBognar AuthorDate: Thu May 28 10:05:57 2020 -0400 MockRestClient improvements. --- .../juneau/rest/headers/ContentTypeTest.java | 55 ++ 1 file changed, 24 insertions(+), 31 deletions(-) diff --git a/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/headers/ContentTypeTest.java b/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/headers/ContentTypeTest.java index e7916ea..b864507 100644 --- a/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/headers/ContentTypeTest.java +++ b/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/headers/ContentTypeTest.java @@ -68,25 +68,24 @@ public class ContentTypeTest { return in; } } - private static MockRest a = MockRest.build(A.class); + private static MockRestClient a = MockRestClient.build(A.class); @Test public void a01_defaultHeadersOnServletAnnotation_valid() throws Exception { - a.put("/a01", null) + a.put("/a01", null, "") .run() .assertBody().is("p2"); - a.put("/a01", null).contentType("text/p1") + a.put("/a01", null, "text/p1") .run() .assertBody().is("p1"); - a.put("/a01", null).contentType("text/p2") + a.put("/a01", null, "text/p2") .run() .assertBody().is("p2"); } @Test public void a02_defaultHeadersOnServletAnnotation_invalid() throws Exception { - a.put("/a01?noTrace=true", null) - .contentType("text/p3") + a.put("/a01?noTrace=true", null, "text/p3") .run() .assertStatus().is(415) .assertBody().contains("Unsupported media-type in request header 'Content-Type': 'text/p3'"); @@ -107,7 +106,7 @@ public class ContentTypeTest { return in; } } - private static MockRest b = MockRest.build(B.class); + private static MockRestClient b = MockRestClient.build(B.class); @Test public void b01_restMethodWithParsersSerializers_valid() throws Exception { @@ -116,21 +115,21 @@ public class ContentTypeTest { @Test public void b02_restMethodWithParsersSerializers_invalid() throws Exception { - b.put("/b?noTrace=true", null) + b.put("/b?noTrace=true", null, "") .run() .assertStatus().is(415) .assertBody().contains( "Unsupported media-type in request header 'Content-Type': 'text/p2'", "Supported media-types: ['text/p3']" ); - b.put("/b?noTrace=true", null).contentType("text/p1") + b.put("/b?noTrace=true", null, "text/p1") .run() .assertStatus().is(415) .assertBody().contains( "Unsupported media-type in request header 'Content-Type': 'text/p1'", "Supported media-types: ['text/p3']" ); - b.put("/b?noTrace=true", null).contentType("text/p2") + b.put("/b?noTrace=true", null, "text/p2") .run() .assertStatus().is(415) .assertBody().contains( @@ -154,14 +153,14 @@ public class ContentTypeTest { return in; } } - private static MockRest c = MockRest.build(C.class); + private static MockRestClient c = MockRestClient.build(C.class); @Test public void c01_restMethodAddParsersSerializersInherit() throws Exception { - c.put("/c", null).run().assertBody().is("p2"); - c.put("/c", null).contentType("text/p1").run().assertBody().is("p1"); - c.put("/c", null).co
[juneau] branch master updated: MockRestClient improvements.
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 e49b119 MockRestClient improvements. e49b119 is described below commit e49b1196881d1cf0282b1bf30e0a61c1f462456b Author: JamesBognar AuthorDate: Thu May 28 09:49:15 2020 -0400 MockRestClient improvements. --- .../apache/juneau/rest/client2/RestRequest.java| 39 ++- .../rest/mock2/MockHttpClientConnection.java | 4 +- .../juneau/rest/mock2/MockHttpConnection.java | 4 +- .../org/apache/juneau/rest/mock2/MockRest.java | 32 +++-- .../apache/juneau/rest/mock2/MockRestBuilder.java | 65 +- .../juneau/rest/mock2/MockRestClientBuilder.java | 73 - .../juneau/rest/mock2/MockServletRequest.java | 3 +- .../juneau/rest/annotation2/RoleGuardTest.java | 76 +++--- .../org/apache/juneau/rest/util/RestUtils.java | 23 +++ 9 files changed, 232 insertions(+), 87 deletions(-) diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestRequest.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestRequest.java index fa5323a..23d4e4d 100644 --- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestRequest.java +++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestRequest.java @@ -2666,6 +2666,44 @@ public final class RestRequest extends BeanSession implements HttpUriRequest, Co } /** +* Sets the value for the X-Roles request header. +* +* +* This is a shortcut for calling header("X-Roles", value); +* +* +* Typically not used in production, but allows you to set roles on a request for use in mocked testing. +* For example, the MockRestClient class uses this value to directly set roles on the HttpServletRequest +* object. +* +* Example: +* +* // Admin users should be able to make POST requests. +* MockRestClient.create(MyRest.class) +* .post("/url", new MyBean()) +* .roles("ROLE_ADMIN") +* .run() +* .assertStatus().is(200); +* +* // Non-admin users should be rejected. +* MockRestClient.create(MyRest.class) +* .post("/url", new MyBean()) +* .roles("ROLE_USER") +* .run() +* .assertStatus().is(401); +* +* +* @param value +* The new header value converted to a comma-delimited list. +* Non-string values are converted to strings using the {@link #toString()} method. +* @return This object (for method chaining). +* @throws RestCallException Invalid input. +*/ + public RestRequest roles(Object...value) throws RestCallException { + return header("X-Roles", StringUtils.join(value, ',')); + } + + /** * Sets the value for the TE request header. * * @@ -2780,7 +2818,6 @@ public final class RestRequest extends BeanSession implements HttpUriRequest, Co try { HttpEntityEnclosingRequestBase request2 = request instanceof HttpEntityEnclosingRequestBase ? (HttpEntityEnclosingRequestBase)request : null; - request.setURI(uriBuilder.build()); // Pick the serializer if it hasn't been overridden. diff --git a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockHttpClientConnection.java b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockHttpClientConnection.java index b2086e6..d782795 100644 --- a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockHttpClientConnection.java +++ b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockHttpClientConnection.java @@ -78,9 +78,7 @@ public class MockHttpClientConnection implements HttpClientConnection { public void sendRequestHeader(HttpRequest request) throws HttpException, IOException { try { RequestLine rl = request.getRequestLine(); - req = c.request(rl.getMethod(), rl.getUri(), null, null); - for (Header h : request.getAllHeaders()) - req.header(h.getName(), h.getValue()); + req = c.request(rl.getMethod(), rl.getUri(), request.getAllHeaders(), null); } catch (Exception e) { throw new HttpExceptio
[juneau] branch master updated: MockRestClient improvements.
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 2fc6794 MockRestClient improvements. 2fc6794 is described below commit 2fc6794ec71a79ee2857b87bd5c18fb23e82a7ce Author: JamesBognar AuthorDate: Wed May 27 19:22:35 2020 -0400 MockRestClient improvements. --- .../juneau/assertions/FluentStringAssertion.java | 2 +- .../juneau/rest/client2/RestResponseBody.java | 14 ++-- .../juneau/rest/mock2/MockRestClientBuilder.java | 16 + .../rest/annotation2/PathAnnotationTest.java | 28 +++ .../juneau/rest/headers/AcceptEncodingTest.java| 42 +++--- .../org/apache/juneau/rest/headers/AcceptTest.java | 12 +++ 6 files changed, 77 insertions(+), 37 deletions(-) diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentStringAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentStringAssertion.java index d0fa678..bd851c0 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentStringAssertion.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentStringAssertion.java @@ -235,7 +235,7 @@ public class FluentStringAssertion extends FluentAssertion { */ public R isNull() throws AssertionError { if (text != null) - throw new BasicAssertionError("Text was not null."); + throw new BasicAssertionError("Text was not null. Text=["+text+"]"); return returns(); } diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestResponseBody.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestResponseBody.java index c006f65..5f9d121 100644 --- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestResponseBody.java +++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestResponseBody.java @@ -341,10 +341,18 @@ public class RestResponseBody implements HttpEntity { * The HTTP response message body reader, never null. * For responses without a body(e.g. HTTP 204), returns an empty reader. * @return The HTTP response body as a byte array. -* @throws IOException If an exception occurred. +* @throws RestCallException If an exception occurred. */ - public byte[] asBytes() throws IOException { - cache(); + public byte[] asBytes() throws RestCallException { + if (cache == null) { + try { + cache = IOUtils.readBytes(entity.getContent()); + } catch (IOException e) { + throw new RestCallException(e); + } finally { + response.close(); + } + } return cache; } diff --git a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestClientBuilder.java b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestClientBuilder.java index b1143d3..a1fe9cd 100644 --- a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestClientBuilder.java +++ b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestClientBuilder.java @@ -81,6 +81,22 @@ public class MockRestClientBuilder extends RestClientBuilder { ignoreErrors(); } + public MockRestClientBuilder contextPath(String value) { + mrb.contextPath(value); + return this; + } + + public MockRestClientBuilder servletPath(String value) { + mrb.servletPath(value); + return this; + } + + public MockRestClientBuilder roles(String...values) { + mrb.roles(values); + return this; + } + + @Override /* ContextBuilder */ public MockRestClient build() { if (peek(BeanContext.BEAN_debug) == Boolean.TRUE) diff --git a/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/annotation2/PathAnnotationTest.java b/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/annotation2/PathAnnotationTest.java index e96fce6..51fc6d8 100644 --- a/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/annotation2/PathAnnotationTest.java +++ b/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/annotation2/PathAnnotationTest.java @@ -60,7 +60,7 @@ public class PathAnnotationTest {
[juneau] branch master updated: MockRestClient improvements.
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 1a1c32c MockRestClient improvements. 1a1c32c is described below commit 1a1c32c937f11991d79669511a55f04a44f016f7 Author: JamesBognar AuthorDate: Wed May 27 18:29:58 2020 -0400 MockRestClient improvements. --- .../org/apache/juneau/rest/StatusCodesTest.java| 38 -- 1 file changed, 14 insertions(+), 24 deletions(-) diff --git a/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/StatusCodesTest.java b/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/StatusCodesTest.java index 9d779ce..b607352 100644 --- a/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/StatusCodesTest.java +++ b/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/StatusCodesTest.java @@ -39,7 +39,7 @@ public class StatusCodesTest { return new StringReader(b); } } - private static MockRest a = MockRest.build(A.class); + private static MockRestClient a = MockRestClient.build(A.class); @Test public void a01a_OK() throws Exception { @@ -106,12 +106,11 @@ public class StatusCodesTest { return "OK"; } } - private static MockRest b = MockRest.build(B.class); + private static MockRestClient b = MockRestClient.build(B.class); @Test public void b01a_nonExistentBeanProperties() throws Exception { - b.put("/nonExistentBeanProperties?noTrace=true", "{f2:'foo'}") - .json() + b.put("/nonExistentBeanProperties?noTrace=true", "{f2:'foo'}", "application/json") .run() .assertStatus().is(400) .assertBody().contains( @@ -120,8 +119,7 @@ public class StatusCodesTest { } @Test public void b01b_nonExistentBeanProperties() throws Exception { - b.put("/nonExistentBeanProperties?noTrace=true", "{f1:'foo', f2:'foo'}") - .json() + b.put("/nonExistentBeanProperties?noTrace=true", "{f1:'foo', f2:'foo'}", "application/json") .run() .assertStatus().is(400) .assertBody().contains( @@ -130,8 +128,7 @@ public class StatusCodesTest { } @Test public void b02_wrongDataType() throws Exception { - b.put("/wrongDataType?noTrace=true", "{f1:'foo'}") - .json() + b.put("/wrongDataType?noTrace=true", "{f1:'foo'}", "application/json") .run() .assertStatus().is(400) .assertBody().contains( @@ -140,8 +137,7 @@ public class StatusCodesTest { } @Test public void b03_parseIntoNonConstructableBean() throws Exception { - b.put("/parseIntoNonConstructableBean?noTrace=true", "{f1:1}") - .json() + b.put("/parseIntoNonConstructableBean?noTrace=true", "{f1:1}", "application/json") .run() .assertStatus().is(400) .assertBody().contains( @@ -150,8 +146,7 @@ public class StatusCodesTest { } @Test public void b04_parseIntoNonStaticInnerClass() throws Exception { - b.put("/parseIntoNonStaticInnerClass?noTrace=true", "{f1:1}") - .json() + b.put("/parseIntoNonStaticInnerClass?noTrace=true", "{f1:1}", "application/json") .run() .assertStatus().is(400) .assertBody().contains( @@ -160,8 +155,7 @@ public class StatusCodesTest { } @Test public void b05_parseIntoNonStaticInnerClass() throws Exception { - b.put("/parseIntoNonPublicInnerClass?noTrace=true", "{f1:1}") - .json() + b.put("/parseIntoNonPublicInnerClass?noTrace=true", "{f1:1}", "application/json") .run() .assertStatus().is(400) .assertBody().contains( @@ -170,8 +164,7 @@ public class StatusCodesTest { } @Test public void b06_thrownConstructorException() throws Exception { - b.put("/thrownConstructorException?noTrace=true
[juneau] branch master updated: MockRestClient improvements.
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 cebe62c MockRestClient improvements. cebe62c is described below commit cebe62cdf6065ed5dfceb43ec78b3a8658007c86 Author: JamesBognar AuthorDate: Wed May 27 18:23:34 2020 -0400 MockRestClient improvements. --- .../main/ConfigurablePropertyCodeGenerator.java| 2 +- .../juneau/rest/client2/RestClientBuilder.java | 47 .../juneau/rest/mock2/MockRestClientBuilder.java | 310 + .../juneau/rest/mock2/MockServletRequest.java | 5 + .../apache/juneau/rest/responses/BasicTest.java| 42 ++- 5 files changed, 381 insertions(+), 25 deletions(-) diff --git a/juneau-releng/juneau-all/src/java/main/ConfigurablePropertyCodeGenerator.java b/juneau-releng/juneau-all/src/java/main/ConfigurablePropertyCodeGenerator.java index 39ab810..d2f071d 100644 --- a/juneau-releng/juneau-all/src/java/main/ConfigurablePropertyCodeGenerator.java +++ b/juneau-releng/juneau-all/src/java/main/ConfigurablePropertyCodeGenerator.java @@ -67,7 +67,7 @@ public class ConfigurablePropertyCodeGenerator { JsonSerializerBuilder.class, JsoParserBuilder.class, JsoSerializerBuilder.class, - MockRestClient.class, + MockRestClientBuilder.class, MsgPackParserBuilder.class, MsgPackSerializerBuilder.class, OpenApiParserBuilder.class, 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 9ab33a1..12e88c8 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 @@ -4722,6 +4722,7 @@ public class RestClientBuilder extends BeanContextBuilder { * @return This object (for method chaining). * @see HttpClientBuilder#disableRedirectHandling() */ + @ConfigurationProperty public RestClientBuilder disableRedirectHandling() { httpClientBuilder.disableRedirectHandling(); return this; @@ -4738,6 +4739,7 @@ public class RestClientBuilder extends BeanContextBuilder { * @return This object (for method chaining). * @see HttpClientBuilder#setRedirectStrategy(RedirectStrategy) */ + @ConfigurationProperty public RestClientBuilder redirectStrategy(RedirectStrategy redirectStrategy) { httpClientBuilder.setRedirectStrategy(redirectStrategy); return this; @@ -4750,6 +4752,7 @@ public class RestClientBuilder extends BeanContextBuilder { * @return This object (for method chaining). * @see HttpClientBuilder#setDefaultCookieSpecRegistry(Lookup) */ + @ConfigurationProperty public RestClientBuilder defaultCookieSpecRegistry(Lookup cookieSpecRegistry) { httpClientBuilder.setDefaultCookieSpecRegistry(cookieSpecRegistry); return this; @@ -4762,6 +4765,7 @@ public class RestClientBuilder extends BeanContextBuilder { * @return This object (for method chaining). * @see HttpClientBuilder#setRequestExecutor(HttpRequestExecutor) */ + @ConfigurationProperty public RestClientBuilder requestExecutor(HttpRequestExecutor requestExec) { httpClientBuilder.setRequestExecutor(requestExec); return this; @@ -4779,6 +4783,7 @@ public class RestClientBuilder extends BeanContextBuilder { * @return This object (for method chaining). * @see HttpClientBuilder#setSSLHostnameVerifier(HostnameVerifier) */ + @ConfigurationProperty public RestClientBuilder sslHostnameVerifier(HostnameVerifier hostnameVerifier) { httpClientBuilder.setSSLHostnameVerifier(hostnameVerifier); return this; @@ -4795,6 +4800,7 @@ public class RestClientBuilder extends BeanContextBuilder { * @return This object (for method chaining). * @see HttpClientBuilder#setPublicSuffixMatcher(PublicSuffixMatcher) */ + @ConfigurationProperty public RestClientBuilder publicSuffixMatcher(PublicSuffixMatcher publicSuffixMatcher) { httpClientBuilder.setPublicSuffixMatcher(publicSuffixMatcher); return this; @@ -4812,6 +4818,7 @@ public class RestClientBuilder extends BeanContextBuilder { * @return This object (for method chaining). * @see HttpClientBuilder#setSSLContext(SSLContext) */ + @ConfigurationProperty public
[juneau] branch master updated: MockRestClient improvements.
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 ee89324 MockRestClient improvements. ee89324 is described below commit ee893248d63ab0b20316e4a1ce81bf1068c4e708 Author: JamesBognar AuthorDate: Wed May 27 17:59:47 2020 -0400 MockRestClient improvements. --- .../org/apache/juneau/utils/StringUtilsTest.java | 14 .../org/apache/juneau/internal/StringUtils.java| 42 ++ .../org/apache/juneau/rest/client2/RestClient.java | 3 +- .../apache/juneau/rest/headers/HeadersTest.java| 18 +- 4 files changed, 66 insertions(+), 11 deletions(-) diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/utils/StringUtilsTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/utils/StringUtilsTest.java index 980ac79..7c1cf3a 100755 --- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/utils/StringUtilsTest.java +++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/utils/StringUtilsTest.java @@ -1020,4 +1020,18 @@ public class StringUtilsTest { assertObjectEquals("['x','y','z']", splitMethodArgs("x,y,z")); assertObjectEquals("['x','y,d>','z']", splitMethodArgs("x,y,d>,z")); } + + // + // fixUrl(String) + // + @Test + public void testFixUrl() throws Exception { + assertEquals(null, fixUrl(null)); + assertEquals("", fixUrl("")); + assertEquals("xxx", fixUrl("xxx")); + assertEquals("+x+x+", fixUrl(" x x ")); + assertEquals("++x++x++", fixUrl(" x x ")); + assertEquals("foo%7Bbar%7Dbaz", fixUrl("foo{bar}baz")); + assertEquals("%7Dfoo%7Bbar%7Dbaz%7B", fixUrl("}foo{bar}baz{")); + } } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/StringUtils.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/StringUtils.java index f69e05f..e7cbad9 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/StringUtils.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/StringUtils.java @@ -2838,4 +2838,46 @@ public final class StringUtils { return l.toArray(new String[l.size()]); } + + private static final AsciiSet URI_CHARS = AsciiSet.create().chars("?#+%;/:@&=+$,-_.!~*'()").range('0','9').range('A','Z').range('a','z').build(); + + /** +* Attempts to escape any invalid characters found in a URI. +* +* @param in The URI to fix. +* @return The fixed URI. +*/ + public static String fixUrl(String in) { + + if (in == null) + return null; + + StringBuilder sb = null; + + int m = 0; + for (int i = 0; i < in.length(); i++) { + char c = in.charAt(i); + if (c <= 127 && ! URI_CHARS.contains(c)) { + sb = append(sb, in.substring(m, i)); + if (c == ' ') + sb.append("+"); + else + sb.append('%').append(toHex2(c)); + m = i+1; + } + } + if (sb != null) { + sb.append(in.substring(m)); + return sb.toString(); + } + return in; + + } + + private static StringBuilder append(StringBuilder sb, String in) { + if (sb == null) + return new StringBuilder(in); + sb.append(in); + return sb; + } } diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClient.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClient.java index f61b708..b197ef2 100644 --- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClient.java +++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClient.java @@ -3521,8 +3521,7 @@ public class RestClient extends BeanContext implements HttpClient, Closeable {
[juneau] branch master updated: MockRestClient improvements.
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 54d773e MockRestClient improvements. 54d773e is described below commit 54d773eb260162de82b02d2f636f1755a0c9add2 Author: JamesBognar AuthorDate: Wed May 27 17:10:54 2020 -0400 MockRestClient improvements. --- .../apache/juneau/rest/client2/RestRequest.java| 4 +- .../rest/annotation2/BodyAnnotationTest.java | 98 +++--- .../rest/annotation2/FormDataAnnotationTest.java | 8 +- .../annotation2/HasFormDataAnnotationTest.java | 2 +- .../rest/annotation2/HasQueryAnnotationTest.java | 2 +- .../rest/annotation2/QueryAnnotationTest.java | 10 +-- .../juneau/rest/annotation2/RestHookTest.java | 16 ++-- .../annotation2/RestResourcePojoSwapsTest.java | 10 +-- 8 files changed, 75 insertions(+), 75 deletions(-) diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestRequest.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestRequest.java index 8acc59d..fa5323a 100644 --- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestRequest.java +++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestRequest.java @@ -1890,7 +1890,7 @@ public final class RestRequest extends BeanSession implements HttpUriRequest, Co * @throws RestCallException If a retry was attempted, but the entity was not repeatable. */ public RestRequest stringBody(String input) throws RestCallException { - return body(new StringReader(input)); + return body(input == null ? null : new StringReader(input)); } /** @@ -2803,7 +2803,7 @@ public final class RestRequest extends BeanSession implements HttpUriRequest, Co if (hasInput || formData != null) { - if (hasInput && formData != null) + if (hasInput && formData != null && input != null) throw new RestCallException("Both input and form-data found on same request."); if (request2 == null) diff --git a/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/annotation2/BodyAnnotationTest.java b/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/annotation2/BodyAnnotationTest.java index 1638f94..14b20ea 100644 --- a/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/annotation2/BodyAnnotationTest.java +++ b/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/annotation2/BodyAnnotationTest.java @@ -383,11 +383,11 @@ public class BodyAnnotationTest { @Override public String toString() { return s; } } } - private static MockRest b = MockRest.build(B.class); + private static MockRestClient b = MockRestClient.build(B.class); @Test public void b01a_onPojo_StringTransform() throws Exception { - b.put("/StringTransform", "'foo'").json() + b.put("/StringTransform", "'foo'", "application/json") .run() .assertBody().is("'foo'"); } @@ -400,25 +400,25 @@ public class BodyAnnotationTest { } @Test public void b02a_onPojo_Bean() throws Exception { - b.put("/Bean", "{f1:'a'}").json() + b.put("/Bean", "{f1:'a'}", "application/json") .run() .assertBody().is("{f1:'a'}"); } @Test public void b02b_onPojo_Bean_noContentType() throws Exception { - b.put("/Bean", "(f1=a)") + b.put("/Bean", "(f1=a)", "text/openapi") .run() .assertStatus().is(415); } @Test public void b03a_onPojo_BeanList() throws Exception { - b.put("/BeanList", "[{f1:'a'}]").json() + b.put("/BeanList", "[{f1:'a'}]", "application/json") .run() .assertBody().is("[{f1:'a'}]"); } @Test public void b03b_onPojo_BeanList_noContentType() throws Exception { - b.put("/BeanList", "(f1=a)") + b.put("/BeanList", "(f1=a)", "text/openapi") .run() .assert
[juneau] branch master updated: MockRestClient improvements.
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 ea4072c MockRestClient improvements. ea4072c is described below commit ea4072cbfd3a4e795399070bb7ff17dbcc09013f Author: JamesBognar AuthorDate: Wed May 27 16:50:19 2020 -0400 MockRestClient improvements. --- .../org/apache/juneau/rest/client2/RestClient.java | 76 +- .../apache/juneau/rest/client2/RestRequest.java| 39 ++- .../annotation2/AnnotationInheritanceTest.java | 4 +- .../rest/annotation2/BodyAnnotationTest.java | 25 +++ 4 files changed, 127 insertions(+), 17 deletions(-) diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClient.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClient.java index 2f18fc7..f61b708 100644 --- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClient.java +++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClient.java @@ -2137,7 +2137,6 @@ public class RestClient extends BeanContext implements HttpClient, Closeable { return request("GET", null, false); } - /** * Perform a PUT request against the specified URL. * @@ -2181,6 +2180,31 @@ public class RestClient extends BeanContext implements HttpClient, Closeable { } /** +* Perform a PUT request against the specified URL using a plain text body bypassing the serializer. +* +* @param url +* The URL of the remote REST resource. +* Can be any of the following types: +* +* {@link URIBuilder} +* {@link URI} +* {@link URL} +* {@link String} +* {@link Object} - Converted to String using toString() +* +* @param body +* The object to serialize and transmit to the URL as the body of the request bypassing the serializer. +* @param contentType The content type of the request. +* @return +* A {@link RestRequest} object that can be further tailored before executing the request +* and getting the response as a parsed object. +* @throws RestCallException If any authentication errors occurred. +*/ + public RestRequest put(Object url, String body, String contentType) throws RestCallException { + return request("PUT", url, true).stringBody(body).contentType(contentType); + } + + /** * Same as {@link #put(Object, Object)} but don't specify the input yet. * * @@ -2253,6 +2277,32 @@ public class RestClient extends BeanContext implements HttpClient, Closeable { } /** +* Perform a POST request against the specified URL as a plain text body bypassing the serializer. +* +* @param url +* The URL of the remote REST resource. +* Can be any of the following types: +* +* {@link URIBuilder} +* {@link URI} +* {@link URL} +* {@link String} +* {@link Object} - Converted to String using toString() +* +* @param body +* The object to serialize and transmit to the URL as the body of the request bypassing the serializer. +* @param contentType +* The content type of the request. +* @return +* A {@link RestRequest} object that can be further tailored before executing the request and getting the response +* as a parsed object. +* @throws RestCallException If any authentication errors occurred. +*/ + public RestRequest post(Object url, String body, String contentType) throws RestCallException { + return request("POST", url, true).stringBody(body).contentType(contentType); + } + + /** * Same as {@link #post(Object, Object)} but don't specify the input yet. * * @@ -2524,6 +2574,30 @@ public class RestClient extends BeanContext implements HttpClient, Closeable { } /** +* Perform a PATCH request against the specified URL as a plain text body bypassing the serializer. +* +* @param url +* The URL of the remote REST resource. +* Can be any of the following types: +* +* {@link URIBuilder} +* {@link URI} +* {@link URL} +* {@link String} +* {@link Object
[juneau] branch master updated: MockRestClient improvements.
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 a591f39 MockRestClient improvements. a591f39 is described below commit a591f39cafb44ab29c8036500c5f62aacf5138fd Author: JamesBognar AuthorDate: Wed May 27 12:54:08 2020 -0400 MockRestClient improvements. --- .../java/org/apache/juneau/rest/client2/RestClient.java | 13 + .../java/org/apache/juneau/rest/client2/RestResponse.java | 15 +++ .../org/apache/juneau/rest/client2/RestResponseBody.java | 15 +++ .../juneau/rest/annotation2/HeaderAnnotationTest.java | 2 +- .../rest/annotation2/PathRemainderAnnotationTest.java | 4 ++-- .../juneau/rest/annotation2/RestMethodInheritTest.java| 8 .../org/apache/juneau/rest/headers/AcceptCharsetTest.java | 4 ++-- .../org/apache/juneau/rest/headers/ClientVersionTest.java | 4 ++-- .../java/org/apache/juneau/rest/helper/HyperlinkTest.java | 2 +- .../org/apache/juneau/rest/helper/ReaderResourceTest.java | 2 +- .../org/apache/juneau/rest/helper/StreamResourceTest.java | 2 +- 11 files changed, 57 insertions(+), 14 deletions(-) diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClient.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClient.java index 30dc7b8..ffc50ad 100644 --- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClient.java +++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClient.java @@ -2076,6 +2076,19 @@ public class RestClient extends BeanContext implements HttpClient, Closeable { } /** +* Perform a GET request against the root URL. +* +* @return +* A {@link RestRequest} object that can be further tailored before executing the request and getting the response +* as a parsed object. +* @throws RestCallException If any authentication errors occurred. +*/ + public RestRequest get() throws RestCallException { + return request("GET", null, false); + } + + + /** * Perform a PUT request against the specified URL. * * @param url diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestResponse.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestResponse.java index 90ea5e8..cc202dd 100644 --- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestResponse.java +++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestResponse.java @@ -25,6 +25,7 @@ import org.apache.http.params.*; import org.apache.http.util.*; import org.apache.juneau.*; import org.apache.juneau.assertions.*; +import org.apache.juneau.http.*; import org.apache.juneau.httppart.*; import org.apache.juneau.httppart.bean.*; import org.apache.juneau.utils.*; @@ -329,6 +330,20 @@ public class RestResponse implements HttpResponse { return getHeader(name).assertThatDate(); } + public FluentStringAssertion assertCharset() throws RestCallException { + return new FluentStringAssertion<>(getCharacterEncoding(), this); + } + + public String getCharacterEncoding() throws RestCallException { + Set s = getContentType().getParameters().get("charset"); + return s == null ? "utf-8" : s.iterator().next(); + + } + + public ContentType getContentType() throws RestCallException { + return getHeader("Content-Type").as(ContentType.class); + } + //-- // Body //-- diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestResponseBody.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestResponseBody.java index 7a221f6..fc0db44 100644 --- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestResponseBody.java +++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestResponseBody.java @@ -334,6 +334,21 @@ public class RestResponseBody implements HttpEntity { } } + + /** +* Returns the HTTP response message body as a byte array. +* +* The HTTP response message body reader, never null. +* For responses without a body(e.g. HTTP 204), returns an empty rea
[juneau] branch master updated: MockRestClient improvements.
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 7960cfb MockRestClient improvements. 7960cfb is described below commit 7960cfb1478e789d2259fbc921474087b96a5b2c Author: JamesBognar AuthorDate: Wed May 27 12:20:41 2020 -0400 MockRestClient improvements. --- .../juneau/rest/mock2/MockServletResponse.java | 2 +- .../org/apache/juneau/rest/StatusCodesTest.java| 28 +- .../rest/annotation2/BodyAnnotationTest.java | 54 +-- .../rest/annotation2/FormDataAnnotationTest.java | 16 +- .../rest/annotation2/HeaderAnnotationTest.java | 16 +- .../rest/annotation2/PathAnnotationTest.java | 194 - .../annotation2/PathRemainderAnnotationTest.java | 8 +- .../rest/annotation2/QueryAnnotationTest.java | 16 +- .../rest/annotation2/ResponseAnnotationTest.java | 54 +-- .../rest/annotation2/RestResourceParsersTest.java | 6 +- .../juneau/rest/annotation2/RoleGuardTest.java | 474 ++--- .../apache/juneau/rest/exceptions/BasicTest.java | 270 ++-- .../juneau/rest/headers/AcceptCharsetTest.java | 2 +- .../juneau/rest/headers/AcceptEncodingTest.java| 20 +- .../org/apache/juneau/rest/headers/AcceptTest.java | 12 +- .../juneau/rest/headers/ContentEncodingTest.java | 2 +- .../juneau/rest/headers/ContentTypeTest.java | 14 +- .../apache/juneau/rest/responses/BasicTest.java| 98 ++--- 18 files changed, 643 insertions(+), 643 deletions(-) diff --git a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockServletResponse.java b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockServletResponse.java index ad53494..c650556 100644 --- a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockServletResponse.java +++ b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockServletResponse.java @@ -384,7 +384,7 @@ public class MockServletResponse implements HttpServletResponse, MockHttpRespons * * @return A new fluent-style assertion object. */ - public FluentIntegerAssertion assertStatus() { + public FluentIntegerAssertion assertStatusCode() { return new FluentIntegerAssertion<>(getStatus(), this); } diff --git a/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/StatusCodesTest.java b/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/StatusCodesTest.java index 9d779ce..9816d52 100644 --- a/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/StatusCodesTest.java +++ b/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/StatusCodesTest.java @@ -45,7 +45,7 @@ public class StatusCodesTest { public void a01a_OK() throws Exception { a.put("/a01", "foo") .run() - .assertStatus().is(200); + .assertStatusCode().is(200); } //= @@ -113,7 +113,7 @@ public class StatusCodesTest { b.put("/nonExistentBeanProperties?noTrace=true", "{f2:'foo'}") .json() .run() - .assertStatus().is(400) + .assertStatusCode().is(400) .assertBody().contains( "Unknown property 'f2' encountered while trying to parse into class 'org.apache.juneau.rest.StatusCodesTest$B$B01'" ); @@ -123,7 +123,7 @@ public class StatusCodesTest { b.put("/nonExistentBeanProperties?noTrace=true", "{f1:'foo', f2:'foo'}") .json() .run() - .assertStatus().is(400) + .assertStatusCode().is(400) .assertBody().contains( "Unknown property 'f2' encountered while trying to parse into class 'org.apache.juneau.rest.StatusCodesTest$B$B01'" ); @@ -133,7 +133,7 @@ public class StatusCodesTest { b.put("/wrongDataType?noTrace=true", "{f1:'foo'}") .json() .run() - .assertStatus().is(400) + .assertStatusCode().is(400) .assertBody().contains( "Invalid number" ); @@ -143,7 +143,7 @@ public class StatusCodesTest { b.put(&
[juneau] branch master updated: Move usage of MockRest to MockRestClient.
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 0cc4a63 Move usage of MockRest to MockRestClient. 0cc4a63 is described below commit 0cc4a63292f8a3c402f58372cbf77293ab124043 Author: JamesBognar AuthorDate: Wed May 27 12:15:45 2020 -0400 Move usage of MockRest to MockRestClient. --- .../juneau/html/HtmlStrippedDocSerializer.java | 7 + .../org/apache/juneau/rest/client2/RestClient.java | 61 +++ .../juneau/rest/client2/RestClientBuilder.java | 4 +- .../apache/juneau/rest/client2/RestRequest.java| 485 + .../juneau/rest/annotation/HtmlDocAsideTest.java | 4 +- .../rest/annotation/HtmlDocConfigAsideTest.java| 4 +- .../rest/annotation/HtmlDocConfigFooterTest.java | 4 +- .../rest/annotation/HtmlDocConfigHeaderTest.java | 4 +- .../rest/annotation/HtmlDocConfigNavTest.java | 4 +- .../rest/annotation/HtmlDocConfigNavlinksTest.java | 4 +- .../rest/annotation/HtmlDocConfigScriptTest.java | 4 +- .../rest/annotation/HtmlDocConfigStyleTest.java| 4 +- .../juneau/rest/annotation/HtmlDocFooterTest.java | 4 +- .../juneau/rest/annotation/HtmlDocHeaderTest.java | 4 +- .../juneau/rest/annotation/HtmlDocNavTest.java | 4 +- .../rest/annotation/HtmlDocNavlinksTest.java | 4 +- .../juneau/rest/annotation/HtmlDocScriptTest.java | 4 +- .../juneau/rest/annotation/HtmlDocStyleTest.java | 4 +- .../annotation/ResponseHeaderAnnotationTest.java | 8 +- .../annotation/ResponseStatusAnnotationTest.java | 6 +- .../juneau/rest/annotation/RestMethodBpiTest.java | 14 +- .../rest/annotation/RestMethodGuardsTest.java | 14 +- .../rest/annotation/RestMethodMatchersTest.java| 2 +- .../juneau/rest/annotation/RestMethodPathTest.java | 4 +- .../rest/annotation/RestResourceLoggingTest.java | 48 +- .../rest/annotation/RestResourceMessagesTest.java | 4 +- .../rest/annotation/RestResourcePathTest.java | 2 +- .../annotation/RestResourcePropertiesTest.java | 2 +- .../annotation/RestResourceSerializersTest.java| 11 +- .../annotation/RestResourceStaticFilesTest.java| 24 +- .../juneau/rest/annotation/RestResourceTest.java | 106 ++--- 31 files changed, 713 insertions(+), 145 deletions(-) diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlStrippedDocSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlStrippedDocSerializer.java index 29146f6..f9c50b8 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlStrippedDocSerializer.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlStrippedDocSerializer.java @@ -36,6 +36,13 @@ import org.apache.juneau.serializer.*; public class HtmlStrippedDocSerializer extends HtmlSerializer { //--- + // Predefined instances + //--- + + /** Default serializer, all default settings. */ + public static final HtmlStrippedDocSerializer DEFAULT = new HtmlStrippedDocSerializer(PropertyStore.DEFAULT); + + //--- // Configurable properties //--- diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClient.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClient.java index f7c509f..30dc7b8 100644 --- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClient.java +++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClient.java @@ -1850,6 +1850,7 @@ public class RestClient extends BeanContext implements HttpClient, Closeable { final Level logRequestsLevel; private final boolean logToConsole; private StackTraceElement[] closedStack; + private static final ConcurrentHashMap,Context> requestContexts = new ConcurrentHashMap<>(); // These are read directly by RestCall. final SerializerGroup serializers; @@ -2263,6 +2264,28 @@ public class RestClient extends BeanContext implements HttpClient, Closeable { } /** +* Perform a HEAD request against the specified URL. +* +* @param url +* The URL of the remote REST resource. +* Can be any of the follow
[juneau] branch master updated: MockRest improvements.
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 9691ead MockRest improvements. 9691ead is described below commit 9691ead8b9065e695575c320207e2276204be495 Author: JamesBognar AuthorDate: Wed May 27 09:45:53 2020 -0400 MockRest improvements. --- .../rest/test/client/InterfaceProxyTest.java |1 - .../apache/juneau/rest/client2/RestClientTest.java | 20 +- .../juneau/rest/client2/RestClientBuilder.java |7 + .../apache/juneau/rest/client2/RestResponse.java |2 +- .../org/apache/juneau/rest/mock2/MockRemote.java |2 +- .../org/apache/juneau/rest/mock2/MockRest.java | 287 + .../apache/juneau/rest/mock2/MockRestBuilder.java | 302 + .../apache/juneau/rest/mock2/MockRestClient.java | 1169 +--- ...kRestClient.java => MockRestClientBuilder.java} | 472 .../juneau/rest/mock2/MockServletRequest.java |2 +- .../juneau/rest/BasicRestInfoProviderTest.java |2 +- .../juneau/rest/BeanContextPropertiesTest.java |2 +- .../java/org/apache/juneau/rest/DebugModeTest.java | 32 +- .../test/java/org/apache/juneau/rest/NlsTest.java |6 +- 14 files changed, 581 insertions(+), 1725 deletions(-) diff --git a/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/client/InterfaceProxyTest.java b/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/client/InterfaceProxyTest.java index 8c20150..367bd03 100644 --- a/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/client/InterfaceProxyTest.java +++ b/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/client/InterfaceProxyTest.java @@ -922,7 +922,6 @@ public class InterfaceProxyTest { }; } } - static MockRest interfaceProxyResource = MockRest.build(InterfaceProxyResource.class); private static Map cache = new LinkedHashMap<>(); diff --git a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java index 25e5e61..64e6719 100644 --- a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java +++ b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java @@ -127,8 +127,24 @@ public class RestClientTest { public void a01_overrideHttpClient() { HttpClientBuilder cb = HttpClientBuilder.create(); CloseableHttpClient hc = HttpClientBuilder.create().build(); - RestClient.create().httpClientBuilder(cb).build(); - RestClient.create().httpClient(hc).build(); + RestClient.create().httpClientBuilder(cb).build().builder().build(); + RestClient.create().httpClient(hc).build().builder().build(); + } + + public static class A2 extends RestClientBuilder {} + + @Test + public void a02_useNoArgConstructor() { +// new A2() +// . +// .create(A.class) +// .simpleJson() +// .logToConsole() +// .build() +// .post("/bean", bean) +// .complete(); +// A2.create().httpClientBuilder(cb).build().builder().build(); +// RestClient.create().httpClient(hc).build().builder().build(); } //-- 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 4e86792..58fcfb2 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 @@ -125,6 +125,13 @@ public class RestClientBuilder extends BeanContextBuilder { return new RestClient(getPropertyStore()); } + @Override /* ContextBuilder */ + public T build(Class c) { + set(RESTCLIENT_httpClient, getHttpClient()); + set(RESTCLIENT_httpClientBuilder, getHttpClientBuilder()); + return super.build(c); + } + //-- // Convenience marshall
[juneau] branch master updated: Tests.
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 3346a7e Tests. 3346a7e is described below commit 3346a7ef9ed7e1e6414bb7315ecd711206875e51 Author: JamesBognar AuthorDate: Tue May 26 18:11:48 2020 -0400 Tests. --- .../apache/juneau/rest/client2/RestClientTest.java | 262 + 1 file changed, 214 insertions(+), 48 deletions(-) diff --git a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java index 2afb04b..25e5e61 100644 --- a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java +++ b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java @@ -43,12 +43,14 @@ import org.apache.juneau.json.*; import org.apache.juneau.marshall.*; import org.apache.juneau.parser.*; import org.apache.juneau.parser.ParseException; +import org.apache.juneau.reflect.*; import org.apache.juneau.rest.*; import org.apache.juneau.rest.annotation.*; import org.apache.juneau.rest.client2.RestRequest; import org.apache.juneau.rest.client2.RestResponse; import org.apache.juneau.rest.mock2.*; import org.apache.juneau.serializer.*; +import org.apache.juneau.svl.*; import org.apache.juneau.transform.*; import org.apache.juneau.xml.*; import org.junit.*; @@ -4091,53 +4093,217 @@ public class RestClientTest { .assertBody().is("{foo:null}") .getBody().as(P1.class); } -// -// @Test -// public void p02_context_addToStringObject() throws Exception { fail(); } - public RestClientBuilder addTo(String name, Object value) { -// -// @Test -// public void p03_context_appendToStringObject() throws Exception { fail(); } - public RestClientBuilder appendTo(String name, Object value) { -// -// @Test -// public void p04_context_prependToStringObject() throws Exception { fail(); } - public RestClientBuilder prependTo(String name, Object value) { -// -// @Test -// public void p05_context_addToStringStringObject() throws Exception { fail(); } - public RestClientBuilder addTo(String name, String key, Object value) { -// -// @Test -// public void p06_context_apply() throws Exception { fail(); } - public RestClientBuilder apply(PropertyStore copyFrom) { -// -// @Test -// public void p07_context_applyAnnotationsClasses() throws Exception { fail(); } - public RestClientBuilder applyAnnotations(java.lang.Class...fromClasses) { -// -// @Test -// public void p08_context_applyAnnotationsMethods() throws Exception { fail(); } - public RestClientBuilder applyAnnotations(Method...fromMethods) { -// -// @Test -// public void p09_context_applyAnnotationsAnnotationList() throws Exception { fail(); } - public RestClientBuilder applyAnnotations(AnnotationList al, VarResolverSession r) { -// -// @Test -// public void p10_context_removeFrom() throws Exception { fail(); } - public RestClientBuilder removeFrom(String name, Object value) { -// -// @Test -// public void p11_context_setMap() throws Exception { fail(); } - public RestClientBuilder set(Map properties) { -// -// @Test -// public void p12_context_setStringObject() throws Exception { fail(); } - public RestClientBuilder set(String name, Object value) { -// -// @Test -// public void p13_context_annotations() throws Exception { fail(); } - public RestClientBuilder annotations(Annotation...values) { + public static class P2 { + public String foo; + @Override + public String toString() { + return foo; + } + public static P2 fromString(String s) { + P2 p2 = new P2(); + p2.foo = s; + return p2; + } + } + + @Test + public void p02_context_addToStringObject() throws Exception { + MockRestClient + .create(A.class) + .simpleJson() + .addTo(BeanContext.BEAN_notBeanClasses,P2.class) + .build() + .post("/echoBody", P2.fromString("bar")) + .run() + .cacheBody() + .assertBody().is("'bar'") + .getBody().as(P2.class); + } + + public static class P3 { + public int foo; + public P3 init() { +
[juneau] branch master updated: Tests.
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 d6d2a04 Tests. d6d2a04 is described below commit d6d2a0406a46f331a898c2c7da13a35f6fe327d8 Author: JamesBognar AuthorDate: Mon May 25 19:04:14 2020 -0400 Tests. --- .../apache/juneau/rest/client2/RestClientTest.java | 754 +++-- 1 file changed, 389 insertions(+), 365 deletions(-) diff --git a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java index 5b96fc6..2afb04b 100644 --- a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java +++ b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java @@ -2548,7 +2548,7 @@ public class RestClientTest { } @Test - public void o001_beanContext_beanClassVisibility() throws Exception { + public void o01_beanContext_beanClassVisibility() throws Exception { RestClient rc1 = MockRestClient .create(A.class) .simpleJson() @@ -2619,7 +2619,7 @@ public class RestClientTest { } @Test - public void o002_beanContext_beanConstructorVisibility() throws Exception { + public void o02_beanContext_beanConstructorVisibility() throws Exception { RestResponse rr = MockRestClient .create(O2R.class) .beanConstructorVisibility(Visibility.PROTECTED) @@ -2636,12 +2636,11 @@ public class RestClientTest { assertEquals(1, rr.getHeader("X").as(O2.class).f); } - - public static class O9 { + public static class O3 { public int f1; protected int f2; - O9 init() { + O3 init() { f1 = 1; f2 = 2; return this; @@ -2654,29 +2653,29 @@ public class RestClientTest { } @Test - public void o009_beanContext_beanFieldVisibility() throws Exception { + public void o03_beanContext_beanFieldVisibility() throws Exception { RestResponse rr = MockRestClient .create(O2R.class) .beanFieldVisibility(Visibility.PROTECTED) .simpleJson() .build() - .post("/test", new O9().init()) - .header("X", new O9().init()) + .post("/test", new O3().init()) + .header("X", new O3().init()) .run() .cacheBody() .assertBody().is("{f1:1,f2:2}") .assertHeader("X").is("f1=1,f2=2") ; - assertEquals(2, rr.getBody().as(O9.class).f2); - assertEquals(2, rr.getHeader("X").as(O9.class).f2); + assertEquals(2, rr.getBody().as(O3.class).f2); + assertEquals(2, rr.getHeader("X").as(O3.class).f2); } - public static interface O10I { + public static interface O4I { int getF3(); void setF3(int f3); } - public static class O10 implements O10I { + public static class O4 implements O4I { public int f1, f2; private int f3; @@ -2690,7 +2689,7 @@ public class RestClientTest { this.f3 = f3; } - O10 init() { + O4 init() { f1 = 1; f2 = 2; f3 = 3; @@ -2704,84 +2703,84 @@ public class RestClientTest { } @Test - public void o010_beanContext_beanFilters() throws Exception { + public void o04_beanContext_beanFilters() throws Exception { RestResponse rr = MockRestClient .create(O2R.class) - .bpi(O10.class, "f1") + .bpi(O4.class, "f1") .simpleJson() .build() - .post("/test", new O10().init()) - .header("X", new O10().init()) + .post("/test", new O4().init()) + .header("X", new O4().init()) .run() .cacheBody() .assertBody().is("{f1:1}") .assertH
[juneau] branch master updated: JUNEAU-236
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 8cac775 JUNEAU-236 8cac775 is described below commit 8cac7752add3e554be5e4077ca053bd33b073df2 Author: JamesBognar AuthorDate: Mon May 25 18:40:27 2020 -0400 JUNEAU-236 BEAN_addRootType doesn't work without BEAN_addBeanTypes --- .../apache/juneau/jena/RdfSerializerSession.java | 2 +- .../org/apache/juneau/BeanTraverseSession.java | 14 +- .../apache/juneau/json/JsonSerializerSession.java | 2 +- .../juneau/msgpack/MsgPackSerializerSession.java | 2 +- .../juneau/serializer/SerializerSession.java | 5 +- .../apache/juneau/uon/UonSerializerSession.java| 2 +- .../urlencoding/UrlEncodingSerializerSession.java | 2 +- .../apache/juneau/rest/client2/RestClientTest.java | 308 ++--- 8 files changed, 231 insertions(+), 106 deletions(-) diff --git a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerSession.java b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerSession.java index b808b73..10a971f 100644 --- a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerSession.java +++ b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerSession.java @@ -190,7 +190,7 @@ public final class RdfSerializerSession extends WriterSerializerSession { sType = eType.getSerializedClassMeta(this); } - String typeName = getBeanTypeName(eType, aType, bpm); + String typeName = getBeanTypeName(this, eType, aType, bpm); RDFNode n = null; diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseSession.java index 2f03183..236b256 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseSession.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseSession.java @@ -131,6 +131,18 @@ public class BeanTraverseSession extends BeanSession { } /** +* Returns true if we're processing the root node. +* +* +* Must be called after {@link #push(String, Object, ClassMeta)} and before {@link #pop()}. +* +* @return true if we're processing the root node. +*/ + protected final boolean isRoot() { + return depth == 1; + } + + /** * Returns true if {@link BeanTraverseContext#BEANTRAVERSE_detectRecursions} is enabled, and the specified * object is already higher up in the traversal chain. * @@ -154,7 +166,7 @@ public class BeanTraverseSession extends BeanSession { /** * Returns true if we're about to exceed the max depth for the document. -* +* * @return true if we're about to exceed the max depth for the document. */ protected final boolean willExceedDepth() { diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializerSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializerSession.java index c24a5cc..dd58819 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializerSession.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializerSession.java @@ -114,7 +114,7 @@ public class JsonSerializerSession extends WriterSerializerSession { } sType = aType; - String typeName = getBeanTypeName(eType, aType, pMeta); + String typeName = getBeanTypeName(this, eType, aType, pMeta); // Swap if necessary PojoSwap swap = aType.getSwap(this); diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerSession.java index 88ffd7c..cf01f44 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerSession.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerSession.java @@ -97,7 +97,7 @@ public final class MsgPackSerializerSession extends OutputStreamSerializerSessio } sType = aType; - String typeName = getBeanTypeName(eType, aType, pMeta); + String typeName = getBeanTypeName(this, eType, aType, pMeta); // Swap if necessary PojoSwap swap = aType.getSwap(this); diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache
[juneau] branch master updated: Improvements to fluent assertions on headers.
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 01e9741 Improvements to fluent assertions on headers. 01e9741 is described below commit 01e97411975981a13339c55a00dbf28f67224512 Author: JamesBognar AuthorDate: Mon May 25 17:59:23 2020 -0400 Improvements to fluent assertions on headers. --- .../main/java/org/apache/juneau/http/Accept.java | 2 +- .../java/org/apache/juneau/http/AcceptRanges.java | 2 +- .../java/org/apache/juneau/http/Authorization.java | 2 +- .../apache/juneau/http/BasicCsvArrayHeader.java| 13 +- .../org/apache/juneau/http/BasicDateHeader.java| 36 - .../http/BasicEntityValidatorArrayHeader.java | 4 +- .../org/apache/juneau/http/BasicEnumHeader.java| 3 +- .../java/org/apache/juneau/http/BasicHeader.java | 156 - .../org/apache/juneau/http/BasicIntegerHeader.java | 26 .../org/apache/juneau/http/BasicLongHeader.java| 26 ...{BasicUriHeader.java => BasicStringHeader.java} | 59 .../org/apache/juneau/http/BasicUriHeader.java | 2 +- .../java/org/apache/juneau/http/CacheControl.java | 2 +- .../java/org/apache/juneau/http/ClientVersion.java | 2 +- .../java/org/apache/juneau/http/Connection.java| 2 +- .../org/apache/juneau/http/ContentDisposition.java | 2 +- .../java/org/apache/juneau/http/ContentRange.java | 2 +- .../src/main/java/org/apache/juneau/http/ETag.java | 2 +- .../main/java/org/apache/juneau/http/Expect.java | 2 +- .../java/org/apache/juneau/http/Forwarded.java | 2 +- .../src/main/java/org/apache/juneau/http/From.java | 2 +- .../src/main/java/org/apache/juneau/http/Host.java | 2 +- .../main/java/org/apache/juneau/http/IfRange.java | 2 +- .../main/java/org/apache/juneau/http/NoTrace.java | 2 +- .../main/java/org/apache/juneau/http/Origin.java | 2 +- .../main/java/org/apache/juneau/http/Pragma.java | 2 +- .../org/apache/juneau/http/ProxyAuthenticate.java | 2 +- .../org/apache/juneau/http/ProxyAuthorization.java | 2 +- .../main/java/org/apache/juneau/http/Range.java| 2 +- .../java/org/apache/juneau/http/RetryAfter.java| 2 +- .../org/apache/juneau/http/SerializedHeader.java | 2 +- .../main/java/org/apache/juneau/http/Server.java | 2 +- .../main/java/org/apache/juneau/http/Trailer.java | 2 +- .../org/apache/juneau/http/TransferEncoding.java | 2 +- .../java/org/apache/juneau/http/UserAgent.java | 2 +- .../src/main/java/org/apache/juneau/http/Vary.java | 2 +- .../main/java/org/apache/juneau/http/Warning.java | 2 +- .../org/apache/juneau/http/WwwAuthenticate.java| 2 +- .../java/org/apache/juneau/internal/Cache.java | 4 +- .../juneau/rest/client2/RestResponseHeader.java| 65 + 40 files changed, 190 insertions(+), 262 deletions(-) diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/Accept.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/Accept.java index c8415fe..cf7a853 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/Accept.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/Accept.java @@ -143,7 +143,7 @@ import org.apache.juneau.internal.*; * */ @Header("Accept") -public class Accept extends BasicHeader { +public class Accept extends BasicStringHeader { private static final long serialVersionUID = 1L; diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/AcceptRanges.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/AcceptRanges.java index 35846b3..69cfc15 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/AcceptRanges.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/AcceptRanges.java @@ -61,7 +61,7 @@ import org.apache.juneau.http.annotation.*; * */ @Header("Accept-Ranges") -public class AcceptRanges extends BasicHeader { +public class AcceptRanges extends BasicStringHeader { private static final long serialVersionUID = 1L; diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/Authorization.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/Authorization.java index 48843ea..f2e049c 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/Authorization.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/Authorization.java @@ -70,7 +70,7 @@ import org.apache.juneau.http.annotation.*; * */ @Header("Authorization") -public class Authorization extends BasicHeader { +public class Authorization extends BasicStringHeader { private static final long serialVersionUID
[juneau] branch master updated: Better assertion methods in RestClient.
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 797be14 Better assertion methods in RestClient. 797be14 is described below commit 797be144549deaf938cc16ab08de7087b0dd3ded Author: JamesBognar AuthorDate: Sun May 24 11:02:02 2020 -0400 Better assertion methods in RestClient. --- .../apache/juneau/utils/FluentIntAssertion.java| 116 + .../apache/juneau/utils/FluentStringAssertion.java | 267 +++ .../juneau/rest/test/client/RestClientTest.java| 14 +- .../apache/juneau/rest/client2/MarshallTest.java | 78 +-- .../apache/juneau/rest/client2/RestClientTest.java | 529 +++-- .../org/apache/juneau/rest/client2/RestClient.java | 18 +- .../apache/juneau/rest/client2/RestResponse.java | 171 ++- .../juneau/rest/client2/RestResponseBody.java | 217 ++--- .../rest/client2/RestResponseBodyAssertion.java| 84 .../juneau/rest/client2/RestResponseHeader.java| 150 +- .../rest/client2/RestResponseHeaderAssertion.java | 82 .../client2/RestResponseStatusCodeAssertion.java | 40 ++ 12 files changed, 1112 insertions(+), 654 deletions(-) diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/FluentIntAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/FluentIntAssertion.java new file mode 100644 index 000..92d142d --- /dev/null +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/FluentIntAssertion.java @@ -0,0 +1,116 @@ +// *** +// * 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.juneau.utils; + + +import java.util.function.*; + +import org.apache.juneau.*; +import org.apache.juneau.marshall.*; + +/** + * Used for fluent assertion calls. + * + * Example: + * + * // Validates the response status code is 200 or 404. + * client + * .get(URL) + * .run() + * .assertStatus().isOneOf(200,404); + * + * @param The return type. + */ +public class FluentIntAssertion { + + private final int value; + private final R returns; + + /** +* Constructor. +* +* @param value The value being tested. +* @param returns The object to return after the test. +*/ + public FluentIntAssertion(int value, R returns) { + this.value = value; + this.returns = returns; + } + + /** +* Asserts that the value equals the specified value. +* +* @param value The value to check against. +* @return The response object (for method chaining). +* @throws AssertionError If assertion failed. +*/ + public R equals(int value) throws AssertionError { + if (this.value != value) + throw new BasicAssertionError("Unexpected value.\n\tExpected=[{0}]\n\tActual=[{1}]", value, this.value); + return returns; + } + + /** +* Asserts that the value equals the specified value. +* +* @param value The value to check against. +* @return The response object (for method chaining). +* @throws AssertionError If assertion failed. +*/ + public R notEquals(int value) throws AssertionError {
[juneau] branch master updated: Tests.
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 2ad221c Tests. 2ad221c is described below commit 2ad221c7cd8c778b2a4d74b30977269fd0492229 Author: JamesBognar AuthorDate: Sat May 23 20:30:35 2020 -0400 Tests. --- .../org/apache/juneau/jena/RdfParserBuilder.java | 2 +- .../apache/juneau/jena/RdfSerializerBuilder.java | 2 +- .../java/org/apache/juneau/BeanContextBuilder.java | 11 +- .../org/apache/juneau/BeanTraverseBuilder.java | 2 +- .../org/apache/juneau/csv/CsvParserBuilder.java| 2 +- .../apache/juneau/csv/CsvSerializerBuilder.java| 2 +- .../juneau/html/HtmlDocSerializerBuilder.java | 2 +- .../org/apache/juneau/html/HtmlParserBuilder.java | 2 +- .../juneau/html/HtmlSchemaSerializerBuilder.java | 2 +- .../apache/juneau/html/HtmlSerializerBuilder.java | 2 +- .../html/HtmlStrippedDocSerializerBuilder.java | 2 +- .../org/apache/juneau/jso/JsoParserBuilder.java| 2 +- .../apache/juneau/jso/JsoSerializerBuilder.java| 2 +- .../org/apache/juneau/json/JsonParserBuilder.java | 2 +- .../juneau/json/JsonSchemaSerializerBuilder.java | 2 +- .../apache/juneau/json/JsonSerializerBuilder.java | 2 +- .../juneau/json/SimpleJsonParserBuilder.java | 2 +- .../juneau/json/SimpleJsonSerializerBuilder.java | 2 +- .../jsonschema/JsonSchemaGeneratorBuilder.java | 2 +- .../juneau/msgpack/MsgPackParserBuilder.java | 2 +- .../juneau/msgpack/MsgPackSerializerBuilder.java | 2 +- .../apache/juneau/oapi/OpenApiParserBuilder.java | 2 +- .../juneau/oapi/OpenApiSerializerBuilder.java | 2 +- .../juneau/parser/InputStreamParserBuilder.java| 2 +- .../org/apache/juneau/parser/ParserBuilder.java| 2 +- .../apache/juneau/parser/ParserGroupBuilder.java | 2 +- .../apache/juneau/parser/ReaderParserBuilder.java | 2 +- .../juneau/plaintext/PlainTextParserBuilder.java | 2 +- .../plaintext/PlainTextSerializerBuilder.java | 2 +- .../serializer/OutputStreamSerializerBuilder.java | 2 +- .../juneau/serializer/SerializerBuilder.java | 2 +- .../juneau/serializer/SerializerGroupBuilder.java | 2 +- .../juneau/serializer/WriterSerializerBuilder.java | 2 +- .../juneau/soap/SoapXmlSerializerBuilder.java | 2 +- .../org/apache/juneau/uon/UonParserBuilder.java| 2 +- .../apache/juneau/uon/UonSerializerBuilder.java| 2 +- .../urlencoding/UrlEncodingParserBuilder.java | 2 +- .../urlencoding/UrlEncodingSerializerBuilder.java | 2 +- .../org/apache/juneau/xml/XmlParserBuilder.java| 2 +- .../apache/juneau/xml/XmlSerializerBuilder.java| 2 +- .../xmlschema/XmlSchemaSerializerBuilder.java | 2 +- .../apache/juneau/rest/client2/RestClientTest.java | 164 - .../juneau/rest/client/RestClientBuilder.java | 2 +- .../juneau/rest/client2/RestClientBuilder.java | 2 +- .../apache/juneau/rest/mock2/MockRestClient.java | 2 +- .../org/apache/juneau/rest/RestContextBuilder.java | 2 +- .../juneau/rest/RestMethodContextBuilder.java | 2 +- 47 files changed, 180 insertions(+), 85 deletions(-) diff --git a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserBuilder.java b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserBuilder.java index 3da3d5b..143a6a7 100644 --- a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserBuilder.java +++ b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserBuilder.java @@ -1075,7 +1075,7 @@ public class RdfParserBuilder extends ReaderParserBuilder { } @Override /* GENERATED - BeanContextBuilder */ - public RdfParserBuilder implClasses(Map> values) { + public RdfParserBuilder implClasses(Map,Class> values) { super.implClasses(values); return this; } diff --git a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerBuilder.java b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerBuilder.java index 440ff11..e303209 100644 --- a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerBuilder.java +++ b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerBuilder.java @@ -1235,7 +1235,7 @@ public class RdfSerializerBuilder extends WriterSerializerBuilder { } @Override /* GENERATED - BeanContextBuilder */ - public RdfSerializerBuilder implClasses(Map> values) { + public RdfSerializerBuilder implClasses(Map,Class> values) { super.implClasses(values); return this; } diff --git a/juneau
[juneau] branch master updated: JUNEAU-234
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 23a46be JUNEAU-234 23a46be is described below commit 23a46be19ffcae97cf99b04878a0bf24e76b6ea7 Author: JamesBognar AuthorDate: Sat May 23 15:55:59 2020 -0400 JUNEAU-234 BEAN_ignoreInvocationExceptionsOnGetters is not working. --- .../main/java/org/apache/juneau/BeanContext.java | 1 + .../java/org/apache/juneau/BeanContextBuilder.java | 1 + .../juneau/serializer/SerializerSession.java | 6 +- .../apache/juneau/rest/client2/RestClientTest.java | 136 ++--- 4 files changed, 98 insertions(+), 46 deletions(-) diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java index 15db6b3..8309975 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java @@ -2501,6 +2501,7 @@ public class BeanContext extends Context implements MetaProvider { * // An interface with a single getter. * public interface MyBean { * String getFoo(); +* void setFoo(String foo); * } * * // Create a parser that uses interface proxies. diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextBuilder.java index 51d946f..06cc834 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextBuilder.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextBuilder.java @@ -3626,6 +3626,7 @@ public class BeanContextBuilder extends ContextBuilder { * // An interface with a single getter. * public interface MyBean { * String getFoo(); +* void setFoo(String foo); * } * * // Create a parser that uses interface proxies. diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.java index 56a18af..6bc7628 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.java @@ -254,13 +254,17 @@ public abstract class SerializerSession extends BeanTraverseSession { * * @param p The bean map entry representing the bean property. * @param t The throwable that the bean getter threw. +* @throws SerializeException Thrown if ignoreInvocationExceptionOnGetters is false. */ - protected final void onBeanGetterException(BeanPropertyMeta p, Throwable t) { + protected final void onBeanGetterException(BeanPropertyMeta p, Throwable t) throws SerializeException { if (listener != null) listener.onBeanGetterException(this, t, p); String prefix = (isDebug() ? getStack(false) + ": " : ""); addWarning("{0}Could not call getValue() on property ''{1}'' of class ''{2}'', exception = {3}", prefix, p.getName(), p.getBeanMeta().getClassMeta(), t.getLocalizedMessage()); + if (! isIgnoreInvocationExceptionsOnGetters()) + throw new SerializeException(this, "{0}Could not call getValue() on property ''{1}'' of class ''{2}'', exception = {3}", prefix, + p.getName(), p.getBeanMeta().getClassMeta(), t.getLocalizedMessage()); } /** diff --git a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java index 6b50ead..1b39ec5 100644 --- a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java +++ b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java @@ -3385,51 +3385,97 @@ public class RestClientTest { } } -// @Test -// public void o0_beanContext_() throws Exception { -// } -// @Override /* GENERATED - BeanContextBuilder */ -// public MockRestClient example(Class pojoClass, T o) { -// super.example(pojoClass, o); -// return this; -// } -// -// @Test -// public void o0_beanContext_() throws Exception {
[juneau] branch master updated: JUNEAU-233
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 4247594 JUNEAU-233 4247594 is described below commit 4247594ecc3e9561a6480ca7601e8505334b3325 Author: JamesBognar AuthorDate: Sat May 23 15:34:19 2020 -0400 JUNEAU-233 JsonParser is not instantiating interface proxies. --- .../test/java/org/apache/juneau/ProxyBeanTest.java | 54 + .../org/apache/juneau/html/HtmlParserSession.java | 3 ++ .../org/apache/juneau/json/JsonParserSession.java | 2 + .../juneau/msgpack/MsgPackParserSession.java | 2 + .../org/apache/juneau/uon/UonParserSession.java| 2 + .../urlencoding/UrlEncodingParserSession.java | 4 +- .../org/apache/juneau/xml/XmlParserSession.java| 6 +++ .../apache/juneau/rest/client2/RestClientTest.java | 55 ++ 8 files changed, 108 insertions(+), 20 deletions(-) diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/ProxyBeanTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/ProxyBeanTest.java new file mode 100644 index 000..69c5e4a --- /dev/null +++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/ProxyBeanTest.java @@ -0,0 +1,54 @@ +// *** +// * 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.juneau; + +import static org.junit.Assert.*; + +import org.apache.juneau.html.*; +import org.apache.juneau.json.*; +import org.apache.juneau.msgpack.*; +import org.apache.juneau.oapi.*; +import org.apache.juneau.uon.*; +import org.apache.juneau.urlencoding.*; +import org.apache.juneau.xml.*; +import org.junit.*; + +public class ProxyBeanTest { + + // + // testBasic + // + + public static interface A { + void setFoo(int foo); + int getFoo(); + } + + @Test + public void testBasic() throws Exception { + A a = JsonParser.DEFAULT.parse("{foo:1}", A.class); + assertEquals(1, a.getFoo()); + a = XmlParser.DEFAULT.parse("1", A.class); + assertEquals(1, a.getFoo()); + a = UonParser.DEFAULT.parse("(foo=1)", A.class); + assertEquals(1, a.getFoo()); + a = UrlEncodingParser.DEFAULT.parse("foo=1", A.class); + assertEquals(1, a.getFoo()); + a = MsgPackParser.DEFAULT.parse("81A3666F6F01", A.class); + assertEquals(1, a.getFoo()); + a = HtmlParser.DEFAULT.parse("foo1", A.class); + assertEquals(1, a.getFoo()); + a = OpenApiParser.DEFAULT.parse("foo=1", A.class); + assertEquals(1, a.getFoo()); + } +} \ No newline at end of file diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlParserSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlParserSession.java index bdd0e7f..72d70c5 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlParserSession.java +++
[juneau] branch master updated: JUNEAU-232
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 c44d2fb JUNEAU-232 c44d2fb is described below commit c44d2fb36d77d8ee76ed11fd45b2d72ae0b99e67 Author: JamesBognar AuthorDate: Sat May 23 10:44:32 2020 -0400 JUNEAU-232 BEAN_isIgnoreUnknownNullBeanProperties doesn't always work correctly. --- .../org/apache/juneau/jena/RdfParserSession.java | 4 +- .../main/java/org/apache/juneau/BeanContext.java | 3 +- .../java/org/apache/juneau/BeanContextBuilder.java | 3 +- .../org/apache/juneau/html/HtmlParserSession.java | 3 +- .../org/apache/juneau/json/JsonParserSession.java | 3 +- .../juneau/msgpack/MsgPackParserSession.java | 2 +- .../org/apache/juneau/parser/ParserSession.java| 10 +- .../org/apache/juneau/uon/UonParserSession.java| 5 +- .../urlencoding/UrlEncodingParserSession.java | 5 +- .../org/apache/juneau/xml/XmlParserSession.java| 17 +- .../juneau/rest/test/client/RestClientTest.java| 50 - .../apache/juneau/rest/client2/RestClientTest.java | 249 +++-- .../org/apache/juneau/rest/client2/RestClient.java | 2 +- .../apache/juneau/rest/client2/RestRequest.java| 2 +- .../apache/juneau/rest/client2/RestResponse.java | 15 ++ .../juneau/rest/client2/RestResponseBody.java | 58 ++--- 16 files changed, 290 insertions(+), 141 deletions(-) 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 65c58fb..b71c6b5 100644 --- 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 @@ -202,7 +202,9 @@ public class RdfParserSession extends ReaderParserSession { } } } else if (! (p.equals(pRoot) || p.equals(pType))) { - onUnknownProperty(key, m); + RDFNode o = st.getObject(); + Object value = parseAnything(object(), o, m.getBean(false), null); + onUnknownProperty(key, m, value); } setCurrentProperty(null); } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java index 5375f66..15db6b3 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java @@ -1567,8 +1567,7 @@ public class BeanContext extends Context implements MetaProvider { * Description: * * -* When enabled, methods and fields marked as transient or annotated with {@link java.beans.Transient} -* will be ignored as bean properties. +* When enabled, methods and fields marked as transient will be ignored as bean properties. * * Example: * diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextBuilder.java index f33cd5e..51d946f 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextBuilder.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextBuilder.java @@ -2292,8 +2292,7 @@ public class BeanContextBuilder extends ContextBuilder { * BeanContext configuration property: Ignore transient fields. * * -* When enabled, methods and fields marked as transient or annotated with {@link java.beans.Transient} -* will be ignored as bean properties. +* When enabled, methods and fields marked as transient will be ignored as bean properties. * * Example: * diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlParserSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlParserSession.java index b549fc4..bdd0e7f 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlParserSession.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlParserSession.java @@ -515,8 +515,7 @@ public final class HtmlParserSession extends XmlParserSession { nextTag(r, TD); BeanPropertyMeta pMeta = m.getPropertyMeta(key); if (pMeta == null
[juneau] branch master updated: Javadocs.
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 8be2c01 Javadocs. 8be2c01 is described below commit 8be2c019241bc7fe8af4ebde7428ef279038cbec Author: JamesBognar AuthorDate: Fri May 22 16:11:27 2020 -0400 Javadocs. --- .../org/apache/juneau/jena/RdfParserBuilder.java | 2 +- .../apache/juneau/jena/RdfSerializerBuilder.java | 2 +- .../main/java/org/apache/juneau/BeanContext.java | 18 +++--- .../java/org/apache/juneau/BeanContextBuilder.java | 75 ++ .../src/main/java/org/apache/juneau/BeanMap.java | 6 +- .../org/apache/juneau/BeanTraverseBuilder.java | 2 +- .../org/apache/juneau/csv/CsvParserBuilder.java| 2 +- .../apache/juneau/csv/CsvSerializerBuilder.java| 2 +- .../juneau/html/HtmlDocSerializerBuilder.java | 2 +- .../org/apache/juneau/html/HtmlParserBuilder.java | 2 +- .../juneau/html/HtmlSchemaSerializerBuilder.java | 2 +- .../apache/juneau/html/HtmlSerializerBuilder.java | 2 +- .../html/HtmlStrippedDocSerializerBuilder.java | 2 +- .../org/apache/juneau/jso/JsoParserBuilder.java| 2 +- .../apache/juneau/jso/JsoSerializerBuilder.java| 2 +- .../org/apache/juneau/json/JsonParserBuilder.java | 2 +- .../juneau/json/JsonSchemaSerializerBuilder.java | 2 +- .../apache/juneau/json/JsonSerializerBuilder.java | 2 +- .../juneau/json/SimpleJsonParserBuilder.java | 2 +- .../juneau/json/SimpleJsonSerializerBuilder.java | 2 +- .../jsonschema/JsonSchemaGeneratorBuilder.java | 2 +- .../juneau/msgpack/MsgPackParserBuilder.java | 2 +- .../juneau/msgpack/MsgPackSerializerBuilder.java | 2 +- .../apache/juneau/oapi/OpenApiParserBuilder.java | 2 +- .../juneau/oapi/OpenApiSerializerBuilder.java | 2 +- .../juneau/parser/InputStreamParserBuilder.java| 2 +- .../org/apache/juneau/parser/ParserBuilder.java| 2 +- .../apache/juneau/parser/ParserGroupBuilder.java | 2 +- .../apache/juneau/parser/ReaderParserBuilder.java | 2 +- .../juneau/plaintext/PlainTextParserBuilder.java | 2 +- .../plaintext/PlainTextSerializerBuilder.java | 2 +- .../serializer/OutputStreamSerializerBuilder.java | 2 +- .../juneau/serializer/SerializerBuilder.java | 2 +- .../juneau/serializer/SerializerGroupBuilder.java | 2 +- .../juneau/serializer/WriterSerializerBuilder.java | 2 +- .../juneau/soap/SoapXmlSerializerBuilder.java | 2 +- .../org/apache/juneau/uon/UonParserBuilder.java| 2 +- .../apache/juneau/uon/UonSerializerBuilder.java| 2 +- .../urlencoding/UrlEncodingParserBuilder.java | 2 +- .../urlencoding/UrlEncodingSerializerBuilder.java | 2 +- .../org/apache/juneau/xml/XmlParserBuilder.java| 2 +- .../apache/juneau/xml/XmlSerializerBuilder.java| 2 +- juneau-doc/src/main/javadoc/overview.html | 6 -- .../juneau/rest/client2/RestClientBuilder.java | 2 +- .../apache/juneau/rest/mock2/MockRestClient.java | 2 +- .../org/apache/juneau/rest/RestContextBuilder.java | 2 +- .../juneau/rest/RestMethodContextBuilder.java | 2 +- 47 files changed, 90 insertions(+), 101 deletions(-) diff --git a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserBuilder.java b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserBuilder.java index d7ad094..5689ad6 100644 --- a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserBuilder.java +++ b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserBuilder.java @@ -1177,7 +1177,7 @@ public class RdfParserBuilder extends ReaderParserBuilder { } @Override /* GENERATED - BeanContextBuilder */ - public RdfParserBuilder sortProperties(Class on) { + public RdfParserBuilder sortProperties(java.lang.Class...on) { super.sortProperties(on); return this; } diff --git a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerBuilder.java b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerBuilder.java index 786fe5e..43dd77c 100644 --- a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerBuilder.java +++ b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerBuilder.java @@ -1337,7 +1337,7 @@ public class RdfSerializerBuilder extends WriterSerializerBuilder { } @Override /* GENERATED - BeanContextBuilder */ - public RdfSerializerBuilder sortProperties(Class on) { + public RdfSerializerBuilder sortProperties(java.lang.Class...on) { super.sortProperties(on); return this; } diff --git a/juneau-core/juneau-marshall/src/main/java/org
[juneau] branch master updated: Deprecate the BEAN_beanFilters property and methods.
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 3617793 Deprecate the BEAN_beanFilters property and methods. 3617793 is described below commit 36177938fa7d10b72e815184d7bc57d4858b2f4b Author: JamesBognar AuthorDate: Fri May 22 15:01:05 2020 -0400 Deprecate the BEAN_beanFilters property and methods. --- .../java/org/apache/juneau/BeanConfigTest.java | 10 -- .../java/org/apache/juneau/BeanFilterTest.java | 4 +- .../juneau/a/rttests/RoundTripBeanMapsTest.java| 45 ++--- .../apache/juneau/a/rttests/RoundTripEnumTest.java | 2 +- .../org/apache/juneau/a/rttests/RoundTripTest.java | 10 +- .../apache/juneau/transforms/BeanFilterTest.java | 8 +- .../org/apache/juneau/jena/RdfParserBuilder.java | 30 ++-- .../apache/juneau/jena/RdfSerializerBuilder.java | 30 ++-- .../main/java/org/apache/juneau/BeanContext.java | 120 ++--- .../java/org/apache/juneau/BeanContextBuilder.java | 199 +++-- .../main/java/org/apache/juneau/BeanSession.java | 1 - .../org/apache/juneau/BeanTraverseBuilder.java | 30 ++-- .../java/org/apache/juneau/annotation/Bean.java| 4 - .../org/apache/juneau/annotation/BeanConfig.java | 81 - .../apache/juneau/annotation/BeanConfigApply.java | 2 + .../org/apache/juneau/csv/CsvParserBuilder.java| 30 ++-- .../apache/juneau/csv/CsvSerializerBuilder.java| 30 ++-- .../juneau/html/HtmlDocSerializerBuilder.java | 30 ++-- .../org/apache/juneau/html/HtmlParserBuilder.java | 30 ++-- .../juneau/html/HtmlSchemaSerializerBuilder.java | 30 ++-- .../apache/juneau/html/HtmlSerializerBuilder.java | 30 ++-- .../html/HtmlStrippedDocSerializerBuilder.java | 30 ++-- .../org/apache/juneau/jso/JsoParserBuilder.java| 30 ++-- .../apache/juneau/jso/JsoSerializerBuilder.java| 30 ++-- .../org/apache/juneau/json/JsonParserBuilder.java | 30 ++-- .../juneau/json/JsonSchemaSerializerBuilder.java | 30 ++-- .../apache/juneau/json/JsonSerializerBuilder.java | 30 ++-- .../juneau/json/SimpleJsonParserBuilder.java | 30 ++-- .../juneau/json/SimpleJsonSerializerBuilder.java | 30 ++-- .../jsonschema/JsonSchemaGeneratorBuilder.java | 30 ++-- .../juneau/msgpack/MsgPackParserBuilder.java | 30 ++-- .../juneau/msgpack/MsgPackSerializerBuilder.java | 30 ++-- .../apache/juneau/oapi/OpenApiParserBuilder.java | 30 ++-- .../juneau/oapi/OpenApiSerializerBuilder.java | 30 ++-- .../juneau/parser/InputStreamParserBuilder.java| 30 ++-- .../org/apache/juneau/parser/ParserBuilder.java| 30 ++-- .../apache/juneau/parser/ParserGroupBuilder.java | 30 ++-- .../apache/juneau/parser/ReaderParserBuilder.java | 30 ++-- .../juneau/plaintext/PlainTextParserBuilder.java | 30 ++-- .../plaintext/PlainTextSerializerBuilder.java | 30 ++-- .../serializer/OutputStreamSerializerBuilder.java | 30 ++-- .../juneau/serializer/SerializerBuilder.java | 30 ++-- .../juneau/serializer/SerializerGroupBuilder.java | 30 ++-- .../juneau/serializer/WriterSerializerBuilder.java | 30 ++-- .../juneau/soap/SoapXmlSerializerBuilder.java | 30 ++-- .../apache/juneau/transform/BeanFilterBuilder.java | 1 - .../transform/InterfaceBeanFilterBuilder.java | 2 +- .../org/apache/juneau/uon/UonParserBuilder.java| 30 ++-- .../apache/juneau/uon/UonSerializerBuilder.java| 30 ++-- .../urlencoding/UrlEncodingParserBuilder.java | 30 ++-- .../urlencoding/UrlEncodingSerializerBuilder.java | 30 ++-- .../org/apache/juneau/xml/XmlParserBuilder.java| 30 ++-- .../apache/juneau/xml/XmlSerializerBuilder.java| 30 ++-- .../apache/juneau/rest/client2/RestClientTest.java | 17 +- .../juneau/rest/client2/RestClientBuilder.java | 30 ++-- .../apache/juneau/rest/mock2/MockRestClient.java | 30 ++-- .../org/apache/juneau/rest/jaxrs/BaseProvider.java | 2 - .../org/apache/juneau/rest/RestContextBuilder.java | 30 ++-- .../juneau/rest/RestMethodContextBuilder.java | 30 ++-- 59 files changed, 696 insertions(+), 1102 deletions(-) diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/BeanConfigTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/BeanConfigTest.java index af48eb9..79cd219 100755 --- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/BeanConfigTest.java +++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/BeanConfigTest.java @@ -766,16 +766,6 @@ public class BeanConfigTest { p1.swaps(DummyPojoSwapB.class,DummyPojoSwapC.class); // Order of filters is important! p2.swaps(DummyPojoSwapC.class,DummyPojoSwapB.class); assertDifferentCache(p1, p2); - - p1 = JsonParser.create
[juneau] branch master updated: Javadocs
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 b516e82 Javadocs b516e82 is described below commit b516e82b1f8987a37d55d804f569a7b7d7354cca Author: JamesBognar AuthorDate: Thu May 21 19:28:32 2020 -0400 Javadocs --- .../main/java/org/apache/juneau/BeanContext.java | 31 +- .../java/org/apache/juneau/BeanContextBuilder.java | 980 - 2 files changed, 966 insertions(+), 45 deletions(-) diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java index f9d8e85..02cf6f1 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java @@ -807,7 +807,7 @@ public class BeanContext extends Context implements MetaProvider { * Description: * * -* If true, then the {@link BeanMap#put(String,Object) BeanMap.put()} method will return old property +* When enabled, then the {@link BeanMap#put(String,Object) BeanMap.put()} method will return old property * values. Otherwise, it returns null. * * @@ -921,7 +921,7 @@ public class BeanContext extends Context implements MetaProvider { * Description: * * -* If true, a Java class must implement a default no-arg constructor to be considered a bean. +* When enabled, a Java class must implement a default no-arg constructor to be considered a bean. * Otherwise, the bean will be serialized as a string using the {@link Object#toString()} method. * * Example: @@ -991,7 +991,7 @@ public class BeanContext extends Context implements MetaProvider { * Description: * * -* If true, a Java class must implement the {@link Serializable} interface to be considered a bean. +* When enabled, a Java class must implement the {@link Serializable} interface to be considered a bean. * Otherwise, the bean will be serialized as a string using the {@link Object#toString()} method. * * Example: @@ -1056,7 +1056,7 @@ public class BeanContext extends Context implements MetaProvider { * Description: * * -* If true, ignore read-only properties (properties with getters but not setters). +* When enabled, ignore read-only properties (properties with getters but not setters). * * Example: * @@ -1119,7 +1119,7 @@ public class BeanContext extends Context implements MetaProvider { * Description: * * -* If true, then a Java class must contain at least 1 property to be considered a bean. +* When enabled, then a Java class must contain at least 1 property to be considered a bean. * Otherwise, the bean will be serialized as a string using the {@link Object#toString()} method. * * @@ -1177,6 +1177,8 @@ public class BeanContext extends Context implements MetaProvider { * * * +* Description: +* * * This specifies the name of the bean property used to store the dictionary name of a bean type so that the * parser knows the data type to reconstruct. @@ -1490,7 +1492,7 @@ public class BeanContext extends Context implements MetaProvider { * Description: * * -* If true, errors thrown when calling bean getter methods will silently be ignored. +* When enabled, errors thrown when calling bean getter methods will silently be ignored. * Otherwise, a {@code BeanRuntimeException} is thrown. * * Example: @@ -1545,7 +1547,7 @@ public class BeanContext extends Context implements MetaProvider { * Description: * * -* If true, errors thrown when calling bean setter methods will silently be ignored. +* When enabled, errors thrown when calling bean setter methods will silently be ignored. * Otherwise, a {@code BeanRuntimeException} is thrown. * * Example: @@ -1600,7 +1602,7 @@ public class BeanContext extends Context implements MetaProvider { * Description: * * -* If true, trying to set a value on a bean property without a setter will silently be ignored. +* When enabled, trying to set a value on a bean property without a setter will silently be ignored. * Otherwise, a {@code BeanRuntimeException} is thrown. * * Example: @@ -1659,7 +1661,7 @@ public class BeanContext extends Context implements MetaProvider
[juneau] branch master updated: Javadocs.
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 defeaf1 Javadocs. defeaf1 is described below commit defeaf11104671795fcdf4a3a84032a88ea6a8e5 Author: JamesBognar AuthorDate: Tue May 19 19:17:00 2020 -0400 Javadocs. --- .../org/apache/juneau/jena/RdfParserBuilder.java | 6 - .../apache/juneau/jena/RdfSerializerBuilder.java | 6 - .../java/org/apache/juneau/BeanContextBuilder.java | 27 - .../org/apache/juneau/BeanTraverseBuilder.java | 6 - .../org/apache/juneau/csv/CsvParserBuilder.java| 6 - .../apache/juneau/csv/CsvSerializerBuilder.java| 6 - .../juneau/html/HtmlDocSerializerBuilder.java | 6 - .../org/apache/juneau/html/HtmlParserBuilder.java | 6 - .../juneau/html/HtmlSchemaSerializerBuilder.java | 6 - .../apache/juneau/html/HtmlSerializerBuilder.java | 6 - .../html/HtmlStrippedDocSerializerBuilder.java | 6 - .../org/apache/juneau/jso/JsoParserBuilder.java| 6 - .../apache/juneau/jso/JsoSerializerBuilder.java| 6 - .../org/apache/juneau/json/JsonParserBuilder.java | 6 - .../juneau/json/JsonSchemaSerializerBuilder.java | 6 - .../apache/juneau/json/JsonSerializerBuilder.java | 6 - .../juneau/json/SimpleJsonParserBuilder.java | 6 - .../juneau/json/SimpleJsonSerializerBuilder.java | 6 - .../jsonschema/JsonSchemaGeneratorBuilder.java | 6 - .../juneau/msgpack/MsgPackParserBuilder.java | 6 - .../juneau/msgpack/MsgPackSerializerBuilder.java | 6 - .../apache/juneau/oapi/OpenApiParserBuilder.java | 6 - .../juneau/oapi/OpenApiSerializerBuilder.java | 6 - .../juneau/parser/InputStreamParserBuilder.java| 6 - .../org/apache/juneau/parser/ParserBuilder.java| 6 - .../apache/juneau/parser/ParserGroupBuilder.java | 6 - .../apache/juneau/parser/ReaderParserBuilder.java | 6 - .../juneau/plaintext/PlainTextParserBuilder.java | 6 - .../plaintext/PlainTextSerializerBuilder.java | 6 - .../serializer/OutputStreamSerializerBuilder.java | 6 - .../juneau/serializer/SerializerBuilder.java | 6 - .../juneau/serializer/SerializerGroupBuilder.java | 6 - .../juneau/serializer/WriterSerializerBuilder.java | 6 - .../juneau/soap/SoapXmlSerializerBuilder.java | 6 - .../org/apache/juneau/uon/UonParserBuilder.java| 6 - .../apache/juneau/uon/UonSerializerBuilder.java| 6 - .../urlencoding/UrlEncodingParserBuilder.java | 6 - .../urlencoding/UrlEncodingSerializerBuilder.java | 6 - .../org/apache/juneau/xml/XmlParserBuilder.java| 6 - .../apache/juneau/xml/XmlSerializerBuilder.java| 6 - juneau-doc/src/main/javadoc/overview.html | 130 ++--- .../juneau/rest/client2/RestClientBuilder.java | 6 - .../apache/juneau/rest/mock2/MockRestClient.java | 6 - .../org/apache/juneau/rest/RestContextBuilder.java | 6 - .../juneau/rest/RestMethodContextBuilder.java | 6 - 45 files changed, 65 insertions(+), 350 deletions(-) diff --git a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserBuilder.java b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserBuilder.java index acf6473..2b83132 100644 --- a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserBuilder.java +++ b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserBuilder.java @@ -1069,12 +1069,6 @@ public class RdfParserBuilder extends ReaderParserBuilder { } @Override /* GENERATED - BeanContextBuilder */ - public RdfParserBuilder examples(String json) { - super.examples(json); - return this; - } - - @Override /* GENERATED - BeanContextBuilder */ public RdfParserBuilder fluentSetters() { super.fluentSetters(); return this; diff --git a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerBuilder.java b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerBuilder.java index 8b14d1f..7b15cef 100644 --- a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerBuilder.java +++ b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerBuilder.java @@ -1229,12 +1229,6 @@ public class RdfSerializerBuilder extends WriterSerializerBuilder { } @Override /* GENERATED - BeanContextBuilder */ - public RdfSerializerBuilder examples(String json) { - super.examples(json); - return this; - } - - @Override /* GENERATED - BeanContextBuilder */ public RdfSerializerBuilder fluentSetters() { super.fluentSetters
[juneau] branch master updated: Javadocs.
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 485924e Javadocs. 485924e is described below commit 485924e474d9f66a89a0b485abba2fa86e617137 Author: JamesBognar AuthorDate: Fri May 15 11:13:16 2020 -0400 Javadocs. --- .../java/org/apache/juneau/jena/RdfSerializer.java | 2 +- .../juneau/jsonschema/JsonSchemaGenerator.java | 8 +- .../apache/juneau/oapi/OpenApiParserBuilder.java | 6 +- .../main/java/org/apache/juneau/parser/Parser.java | 13 +- .../org/apache/juneau/parser/ParserBuilder.java| 12 +- .../apache/juneau/parser/ReaderParserBuilder.java | 3 - .../serializer/OutputStreamSerializerBuilder.java | 2 +- .../org/apache/juneau/serializer/Serializer.java | 43 ++--- .../juneau/serializer/SerializerBuilder.java | 31 ++-- .../juneau/serializer/WriterSerializerBuilder.java | 3 - .../java/org/apache/juneau/uon/UonSerializer.java | 1 + .../apache/juneau/uon/UonSerializerBuilder.java| 56 +- .../org/apache/juneau/rest/client2/RestClient.java | 203 - .../juneau/rest/client2/RestClientBuilder.java | 83 + 14 files changed, 347 insertions(+), 119 deletions(-) diff --git a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java index 373408b..c4fdc2b 100644 --- a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java +++ b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java @@ -72,7 +72,7 @@ public class RdfSerializer extends WriterSerializer implements RdfCommon, RdfMet * * Methods: * -* {@link org.apache.juneau.jena.RdfSerializerBuilder#addBeanTypes(boolean)} +* {@link org.apache.juneau.jena.RdfSerializerBuilder#addBeanTypes()} * * * diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGenerator.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGenerator.java index 02804ae..3ed66aa 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGenerator.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGenerator.java @@ -272,10 +272,10 @@ public class JsonSchemaGenerator extends BeanTraverseContext implements JsonSche * Example: * * // Don't generate schema for any prototype packages or the class named 'Swagger'. -* @Rest( -* properties={ -* @Property(name=JSONSCHEMA_ignoreTypes, value="Swagger,*.proto.*") -* } +* @Rest +* @JsonSchemaConfig( +* ignoreTypes="Swagger,*.proto.*" +* ) * public class MyResource {...} * */ diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiParserBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiParserBuilder.java index 37aba0e..68cd3eb 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiParserBuilder.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiParserBuilder.java @@ -96,13 +96,11 @@ public class OpenApiParserBuilder extends UonParserBuilder { * .format(UON) * .build(); * -* String string = "foo bar"; -* * // Parse a plain-text string. -* String v1 = s.serialize("foo bar"); +* String v1 = p1.parse("foo bar"); * * // Parse a UON string. -* String v2 = s2.serialize("'foo bar'"); +* String v2 = p2.parse("'foo bar'"); * * * diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/Parser.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/Parser.java index 279ee1f..2f642cb 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/Parser.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/Parser.java @@ -369,12 +369,11 @@ public abstract class Parser extends BeanContext { * .build(); * * // Use it. -* try { -* String json = "{unquotedAttr:'value'}"; -* My
[juneau] branch master updated: Javadocs
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 3d0 Javadocs 3d0 is described below commit 3d00bbeba4a1bc31794f74719727e8b9e95b Author: JamesBognar 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(""), i2 = s.indexOf(""); + String cpSection = null; + if (i1 != -1 && i2 != -1) { + cpSection = s.substring(i1+26, i2); + } else { + System.err.println("...skipped " + f.getName()); + continue; + } + + Map 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 ConfigurablePrope
[juneau] branch master updated: Tests.
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 3dcaf85 Tests. 3dcaf85 is described below commit 3dcaf85e2692678fcf098247beffd768c346cba4 Author: JamesBognar AuthorDate: Tue May 12 20:09:08 2020 -0400 Tests. --- .../apache/juneau/rest/client2/RestClientTest.java | 271 + 1 file changed, 223 insertions(+), 48 deletions(-) diff --git a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java index deb252e..5cdefa9 100644 --- a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java +++ b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java @@ -3076,7 +3076,6 @@ public class RestClientTest { void setF3(int f3); } - public static class O10 implements O10I { public int f1, f2; private int f3; @@ -3184,53 +3183,229 @@ public class RestClientTest { assertEquals(3, rr.getHeader("X").as(O10.class).f3); } -// @Test -// public void o016_beanContext_beanMapPutReturnsOldValue() throws Exception { fail(); } - public RestClientBuilder beanMapPutReturnsOldValue() { -// -// @Test -// public void o017_beanContext_beanMapPutReturnsOldValueBoolean() throws Exception { fail(); } - public RestClientBuilder beanMapPutReturnsOldValue(boolean value) { -// -// @Test -// public void o018_beanContext_beanMethodVisibility() throws Exception { fail(); } - public RestClientBuilder beanMethodVisibility(Visibility value) { -// -// @Test -// public void o019_beanContext_beanTypePropertyName() throws Exception { fail(); } - public RestClientBuilder beanTypePropertyName(String value) { -// -// @Test -// public void o020_beanContext_beansDontRequireSomeProperties() throws Exception { fail(); } - public RestClientBuilder beansDontRequireSomeProperties() { -// -// @Test -// public void o021_beanContext_beansRequireDefaultConstructor() throws Exception { fail(); } - public RestClientBuilder beansRequireDefaultConstructor() { -// -// @Test -// public void o022_beanContext_beansRequireDefaultConstructorBoolean() throws Exception { fail(); } - public RestClientBuilder beansRequireDefaultConstructor(boolean value) { -// -// @Test -// public void o023_beanContext_beansRequireSerializable() throws Exception { fail(); } - public RestClientBuilder beansRequireSerializable() { -// -// @Test -// public void o024_beanContext_beansRequireSerializableBoolean() throws Exception { fail(); } - public RestClientBuilder beansRequireSerializable(boolean value) { -// -// @Test -// public void o025_beanContext_beansRequireSettersForGetters() throws Exception { fail(); } - public RestClientBuilder beansRequireSettersForGetters() { -// -// @Test -// public void o026_beanContext_beansRequireSettersForGettersBoolean() throws Exception { fail(); } - public RestClientBuilder beansRequireSettersForGetters(boolean value) { -// -// @Test -// public void o027_beanContext_beansRequireSomePropertiesBoolean() throws Exception { fail(); } - public RestClientBuilder beansRequireSomeProperties(boolean value) { + public static class O18 { + private int f1, f2; + + public int getF1() { + return f1; + } + public void setF1(int f1) { + this.f1 = f1; + } + protected int getF2() { + return f2; + } + protected void setF2(int f2) { + this.f2 = f2; + } + + O18 init() { + f1 = 1; + f2 = 2; + return this; + } + + @Override + public String toString() { + return f1 + "/" + f2; + } + } + + @Test + public void o018_beanContext_beanMethodVisibility() throws Exception { + RestResponse rr = MockRestClient + .create(O2R.class) + .beanMethodVisibility(Visibility.PROTECTED) + .simpleJson() + .build() + .post("/test", new O18().init()) + .header("X", new O18().init()) + .run() + .getBody().cache().assertValue("{f1:1,f2:2}") +
[juneau] branch master updated: JUNEAU-228
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 5236c3a JUNEAU-228 5236c3a is described below commit 5236c3a1044700eb02b3afdaa542df15a046a82b Author: JamesBognar AuthorDate: Tue May 12 19:45:35 2020 -0400 JUNEAU-228 Make it easier to create bean filters programmatically. --- .../org/apache/juneau/a/rttests/RoundTripTest.java | 6 +- .../org/apache/juneau/jena/RdfParserBuilder.java | 18 -- .../apache/juneau/jena/RdfSerializerBuilder.java | 18 -- .../main/java/org/apache/juneau/BeanContext.java | 31 ++- .../java/org/apache/juneau/BeanContextBuilder.java | 114 +++-- .../org/apache/juneau/BeanTraverseBuilder.java | 18 -- .../org/apache/juneau/csv/CsvParserBuilder.java| 18 -- .../apache/juneau/csv/CsvSerializerBuilder.java| 18 -- .../juneau/html/HtmlDocSerializerBuilder.java | 18 -- .../org/apache/juneau/html/HtmlParserBuilder.java | 18 -- .../juneau/html/HtmlSchemaSerializerBuilder.java | 18 -- .../apache/juneau/html/HtmlSerializerBuilder.java | 18 -- .../html/HtmlStrippedDocSerializerBuilder.java | 18 -- .../org/apache/juneau/jso/JsoParserBuilder.java| 18 -- .../apache/juneau/jso/JsoSerializerBuilder.java| 18 -- .../org/apache/juneau/json/JsonParserBuilder.java | 18 -- .../juneau/json/JsonSchemaSerializerBuilder.java | 18 -- .../apache/juneau/json/JsonSerializerBuilder.java | 18 -- .../juneau/json/SimpleJsonParserBuilder.java | 18 -- .../juneau/json/SimpleJsonSerializerBuilder.java | 18 -- .../jsonschema/JsonSchemaGeneratorBuilder.java | 18 -- .../juneau/msgpack/MsgPackParserBuilder.java | 18 -- .../juneau/msgpack/MsgPackSerializerBuilder.java | 18 -- .../apache/juneau/oapi/OpenApiParserBuilder.java | 18 -- .../apache/juneau/oapi/OpenApiParserSession.java | 4 +- .../juneau/oapi/OpenApiSerializerBuilder.java | 18 -- .../juneau/parser/InputStreamParserBuilder.java| 18 -- .../org/apache/juneau/parser/ParserBuilder.java| 18 -- .../apache/juneau/parser/ParserGroupBuilder.java | 18 -- .../apache/juneau/parser/ReaderParserBuilder.java | 18 -- .../juneau/plaintext/PlainTextParserBuilder.java | 18 -- .../plaintext/PlainTextSerializerBuilder.java | 18 -- .../serializer/OutputStreamSerializerBuilder.java | 18 -- .../juneau/serializer/SerializerBuilder.java | 18 -- .../juneau/serializer/SerializerGroupBuilder.java | 18 -- .../juneau/serializer/WriterSerializerBuilder.java | 18 -- .../juneau/soap/SoapXmlSerializerBuilder.java | 18 -- .../org/apache/juneau/transform/BeanFilter.java| 11 + .../org/apache/juneau/uon/UonParserBuilder.java| 18 -- .../apache/juneau/uon/UonSerializerBuilder.java| 18 -- .../urlencoding/UrlEncodingParserBuilder.java | 18 -- .../urlencoding/UrlEncodingSerializerBuilder.java | 18 -- .../org/apache/juneau/xml/XmlParserBuilder.java| 18 -- .../apache/juneau/xml/XmlSerializerBuilder.java| 18 -- .../xmlschema/XmlSchemaSerializerBuilder.java | 18 -- juneau-doc/docs/ReleaseNotes/8.1.4.html| 9 + .../apache/juneau/rest/client2/RestClientTest.java | 263 ++--- .../juneau/rest/client/RestClientBuilder.java | 18 -- .../juneau/rest/client2/RestClientBuilder.java | 18 -- .../apache/juneau/rest/mock2/MockRestClient.java | 18 -- .../org/apache/juneau/rest/jaxrs/BaseProvider.java | 4 +- .../org/apache/juneau/rest/RestContextBuilder.java | 18 -- 52 files changed, 255 insertions(+), 979 deletions(-) diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripTest.java index 1362570..51e9f26 100755 --- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripTest.java +++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripTest.java @@ -206,8 +206,8 @@ public abstract class RoundTripTest { } - public Class[] getBeanFilters() { - return new Class[0]; + public Object[] getBeanFilters() { + return new Object[0]; } public Class[] getPojoSwaps() { @@ -254,7 +254,7 @@ public abstract class RoundTripTest { return p; } - protected void beanFilters(Class...c) { + protected void beanFilters(Object...c) { s = s.builder().beanFilters(c).build(); if (p != null) p = p.builder().beanFilters(c).build(); diff --git a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserBuilder.java b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena
[juneau] branch master updated: JUNEAU-227
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 c3fa242 JUNEAU-227 c3fa242 is described below commit c3fa242de1bab2f0c8bb61ed863ec877f6713792 Author: JamesBognar AuthorDate: Tue May 12 16:12:17 2020 -0400 JUNEAU-227 BEAN_methodVisibility and BEAN_constructorVisibility doesn't affect swap methods --- .../main/java/org/apache/juneau/BeanContext.java | 8 +- .../src/main/java/org/apache/juneau/ClassMeta.java | 9 + .../juneau/oapi/OpenApiSerializerSession.java | 16 +- .../org/apache/juneau/transform/AutoListSwap.java | 23 +- .../org/apache/juneau/transform/AutoMapSwap.java | 23 +- .../apache/juneau/transform/AutoNumberSwap.java| 26 +- .../apache/juneau/transform/AutoObjectSwap.java| 23 +- .../java/org/apache/juneau/transform/PojoSwap.java | 1 - juneau-doc/docs/ReleaseNotes/8.1.4.html| 2 + .../apache/juneau/rest/client2/RestClientTest.java | 277 +++-- .../juneau/rest/client2/RestCallException.java | 2 +- .../juneau/rest/client2/RestClientBuilder.java | 47 .../juneau/rest/client2/RestResponseBody.java | 11 +- .../apache/juneau/rest/mock2/MockRestClient.java | 36 ++- 14 files changed, 368 insertions(+), 136 deletions(-) diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java index 5198d2b..f028963 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java @@ -3752,7 +3752,7 @@ public class BeanContext extends Context implements MetaProvider { * @return * Classes are not considered beans unless they meet the minimum visibility requirements. */ - protected final Visibility getBeanClassVisibility() { + public final Visibility getBeanClassVisibility() { return beanClassVisibility; } @@ -3763,7 +3763,7 @@ public class BeanContext extends Context implements MetaProvider { * @return * Only look for constructors with this specified minimum visibility. */ - protected final Visibility getBeanConstructorVisibility() { + public final Visibility getBeanConstructorVisibility() { return beanConstructorVisibility; } @@ -3786,7 +3786,7 @@ public class BeanContext extends Context implements MetaProvider { * @return * Only look for bean fields with this specified minimum visibility. */ - protected final Visibility getBeanFieldVisibility() { + public final Visibility getBeanFieldVisibility() { return beanFieldVisibility; } @@ -3821,7 +3821,7 @@ public class BeanContext extends Context implements MetaProvider { * @return * Only look for bean methods with this specified minimum visibility. */ - protected final Visibility getBeanMethodVisibility() { + public final Visibility getBeanMethodVisibility() { return beanMethodVisibility; } 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 13eac61..06afe22 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 @@ -1339,6 +1339,15 @@ public final class ClassMeta implements Type { } /** +* Returns true if this class is a {@link Date} or {@link Calendar} or {@link Temporal}. +* +* @return true if this class is a {@link Date} or {@link Calendar} or {@link Temporal}. +*/ + public boolean isDateOrCalendarOrTemporal() { + return cc == DATE || info.isChildOf(Temporal.class); + } + + /** * Returns true if this class is a {@link Date}. * * @return true if this class is a {@link Date}. diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiSerializerSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiSerializerSession.java index 8dbf800..19f9429 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiSerializerSession.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiSerializerSession.java @@ -27,6 +27,7 @@ import org.apache.juneau.collections.*; import org.apache.juneau.httppart.*; import org.apache.juneau.internal.*; import org.apache.juneau.serializer.*; +import org.apache.juneau.transform
[juneau] branch master updated: Add PropertyStoreBuilder.clearCache() method.
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 ac196d8 Add PropertyStoreBuilder.clearCache() method. ac196d8 is described below commit ac196d832b62cdaed5a8e05ad2ab76a027c0a28d Author: JamesBognar AuthorDate: Wed Apr 29 09:51:59 2020 -0400 Add PropertyStoreBuilder.clearCache() method. --- .../src/main/java/org/apache/juneau/PropertyStoreBuilder.java | 7 +++ 1 file changed, 7 insertions(+) diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/PropertyStoreBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/PropertyStoreBuilder.java index 6c5ced4..a779c1f 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/PropertyStoreBuilder.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/PropertyStoreBuilder.java @@ -517,6 +517,13 @@ public class PropertyStoreBuilder { this.groups.clear(); } + /** +* Clears the PropertyStore cache. +*/ + public static void clearCache() { + CACHE.clear(); + } + private static boolean isSet(String key) { String s = key.substring(key.lastIndexOf('.')+1); return s.length() == 2 && s.charAt(0) == 's';
[juneau] branch juneau-7.2.2-branch updated: Add org.apache.juneau.PropertyStoreBuilder.clearCache().
This is an automated email from the ASF dual-hosted git repository. jamesbognar pushed a commit to branch juneau-7.2.2-branch in repository https://gitbox.apache.org/repos/asf/juneau.git The following commit(s) were added to refs/heads/juneau-7.2.2-branch by this push: new b610672 Add org.apache.juneau.PropertyStoreBuilder.clearCache(). new aa3bc52 Merge pull request #54 from garydgregory/PropertyStore_clearCache b610672 is described below commit b6106724d589555c085fc1e22ea0ebdf632e5d98 Author: Gary Gregory AuthorDate: Tue Apr 28 16:41:52 2020 -0400 Add org.apache.juneau.PropertyStoreBuilder.clearCache(). --- .../src/main/java/org/apache/juneau/PropertyStoreBuilder.java | 7 +++ 1 file changed, 7 insertions(+) diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/PropertyStoreBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/PropertyStoreBuilder.java index c9c0b24..88b42a7 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/PropertyStoreBuilder.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/PropertyStoreBuilder.java @@ -75,6 +75,13 @@ public class PropertyStoreBuilder { } /** +* Clears the PropertyStore cache. +*/ + public void clearCache() { + CACHE.clear(); + } + + /** * Copies all the values in the specified property store into this builder. * * @param copyFrom The property store to copy the values from.
[juneau] branch master updated: Refactor HttpPart API.
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 43bd465 Refactor HttpPart API. 43bd465 is described below commit 43bd465fa481fbe28adc702ba519d01ba6a2c492 Author: JamesBognar AuthorDate: Sun Apr 12 17:55:25 2020 -0400 Refactor HttpPart API. --- .../juneau/httppart/HttpPartSchemaTest_Body.java | 22 +- .../httppart/HttpPartSchemaTest_FormData.java | 42 ++-- .../juneau/httppart/HttpPartSchemaTest_Header.java | 42 ++-- .../juneau/httppart/HttpPartSchemaTest_Path.java | 42 ++-- .../juneau/httppart/HttpPartSchemaTest_Query.java | 42 ++-- .../httppart/HttpPartSchemaTest_Response.java | 22 +- .../HttpPartSchemaTest_ResponseHeader.java | 42 ++-- .../juneau/httppart/HttpPartCollectionFormat.java | 69 ++ .../apache/juneau/httppart/HttpPartDataType.java | 74 ++ .../org/apache/juneau/httppart/HttpPartFormat.java | 109 + .../org/apache/juneau/httppart/HttpPartSchema.java | 266 +++-- .../juneau/httppart/HttpPartSchemaBuilder.java | 20 +- .../apache/juneau/oapi/OpenApiParserSession.java | 18 +- .../juneau/oapi/OpenApiSerializerSession.java | 30 +-- .../org/apache/juneau/rest/RestParamDefaults.java | 4 +- 15 files changed, 449 insertions(+), 395 deletions(-) diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/httppart/HttpPartSchemaTest_Body.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/httppart/HttpPartSchemaTest_Body.java index 8041424..9886591 100644 --- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/httppart/HttpPartSchemaTest_Body.java +++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/httppart/HttpPartSchemaTest_Body.java @@ -179,8 +179,8 @@ public class HttpPartSchemaTest_Body { public void a05_basic_nestedItems_onClass() throws Exception { HttpPartSchema s = HttpPartSchema.create().apply(Body.class, A05.class).noValidate().build(); - assertEquals(HttpPartSchema.Type.NUMBER, s.getType()); - assertEquals(HttpPartSchema.Format.INT32, s.getFormat()); + assertEquals(HttpPartDataType.NUMBER, s.getType()); + assertEquals(HttpPartFormat.INT32, s.getFormat()); assertEquals(1, s.getMaximum()); assertEquals(2, s.getMinimum()); assertEquals(3, s.getMultipleOf()); @@ -198,9 +198,9 @@ public class HttpPartSchemaTest_Body { assertEquals("c1\nc2", s.getDefault()); HttpPartSchema items = s.getItems(); - assertEquals(HttpPartSchema.Type.INTEGER, items.getType()); - assertEquals(HttpPartSchema.Format.INT64, items.getFormat()); - assertEquals(HttpPartSchema.CollectionFormat.SSV, items.getCollectionFormat()); + assertEquals(HttpPartDataType.INTEGER, items.getType()); + assertEquals(HttpPartFormat.INT64, items.getFormat()); + assertEquals(HttpPartCollectionFormat.SSV, items.getCollectionFormat()); assertEquals(5, items.getMaximum()); assertEquals(6, items.getMinimum()); assertEquals(7, items.getMultipleOf()); @@ -216,9 +216,9 @@ public class HttpPartSchemaTest_Body { assertEquals("c3\nc4", items.getDefault()); items = items.getItems(); - assertEquals(HttpPartSchema.Type.STRING, items.getType()); - assertEquals(HttpPartSchema.Format.FLOAT, items.getFormat()); - assertEquals(HttpPartSchema.CollectionFormat.TSV, items.getCollectionFormat()); + assertEquals(HttpPartDataType.STRING, items.getType()); + assertEquals(HttpPartFormat.FLOAT, items.getFormat()); + assertEquals(HttpPartCollectionFormat.TSV, items.getCollectionFormat()); assertEquals(9, items.getMaximum()); assertEquals(10, items.getMinimum()); assertEquals(11, items.getMultipleOf()); @@ -234,9 +234,9 @@ public class HttpPartSchemaTest_Body { assertEquals("c5\nc6", items.getDefault()); items = items.getItems(); - assertEquals(HttpPartSchema.Type.ARRAY, items.getType()); - assertEquals(HttpPartSchema.Format.DOUBLE, items.getFormat()); - assertEquals(HttpPartSchema.CollectionFormat.PIPES, items.getCollectionFormat()); + assertEquals(HttpPartDataType.ARRAY, items.getType()); + assertEquals(HttpPartFormat.DOUBLE, items.getFormat()); + assertEquals(HttpPartCollectionFormat.PIPES, items.getCollectionFormat()); assertEquals(13, items.getMaximum()); ass
[juneau] branch master updated: Tests.
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 9486f1f Tests. 9486f1f is described below commit 9486f1fab076f594348c2900282d0f12d11ad691 Author: JamesBognar AuthorDate: Sat Apr 11 10:21:32 2020 -0400 Tests. --- .../apache/juneau/rest/client2/RestClientTest.java | 138 - .../juneau/rest/client2/RestClientBuilder.java | 8 +- .../apache/juneau/rest/mock2/MockRestClient.java | 16 +-- 3 files changed, 121 insertions(+), 41 deletions(-) diff --git a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java index e60e808..3297537 100644 --- a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java +++ b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java @@ -2457,13 +2457,13 @@ public class RestClientTest { } @Test - public void l21_serializer_trimStringsS() throws Exception { + public void l21_serializer_trimStringsOnWrite() throws Exception { L21 x = new L21(); MockRestClient .create(A.class) .simpleJson() - .trimStringsS() + .trimStringsOnWrite() .build() .post("/echoBody", x) .run() @@ -2472,7 +2472,7 @@ public class RestClientTest { MockRestClient .create(A.class) .simpleJson() - .trimStringsS(true) + .trimStringsOnWrite(true) .build() .post("/echoBody", x) .run() @@ -2481,7 +2481,7 @@ public class RestClientTest { MockRestClient .create(A.class) .simpleJson() - .trimStringsS(false) + .trimStringsOnWrite(false) .build() .post("/echoBody", x) .run() @@ -2783,37 +2783,117 @@ public class RestClientTest { .getBody().as(M5.class); } + public static class M7 { + public String f; + } + @Test public void m07_parser_trimStringsOnRead() throws Exception { + M7 x = MockRestClient + .create(A.class) + .simpleJson() + .trimStringsOnRead() + .build() + .post("/echoBody", new StringReader("{f:' 1 '}")) + .run() + .getBody().as(M7.class); + assertEquals("1", x.f); + x = MockRestClient + .create(A.class) + .simpleJson() + .trimStringsOnRead(true) + .build() + .post("/echoBody", new StringReader("{f:' 1 '}")) + .run() + .getBody().as(M7.class); + assertEquals("1", x.f); + x = MockRestClient + .create(A.class) + .simpleJson() + .trimStringsOnRead(false) + .build() + .post("/echoBody", new StringReader("{f:' 1 '}")) + .run() + .getBody().as(M7.class); + assertEquals(" 1 ", x.f); + } + + @Test + public void m09_parser_unbufferedBoolean() throws Exception { + RestClient rc = null; + + rc = MockRestClient + .create(A.class) + .simpleJson() + .unbuffered() + .build(); + + assertTrue(rc.parsers.getParser("application/json").toMap().getMap("Parser").getBoolean("unbuffered")); + + M7 x = rc + .post("/echoBody", new StringReader("{f:'1'}")) + .run() + .getBody().as(M7.class); + assertEquals("1", x.f); + + rc = MockRestClient + .create(A.class) + .simpleJson() + .unbuffered(true) + .build(); + + a
[juneau] branch master updated: JUNEAU-217
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 b9cc19d JUNEAU-217 b9cc19d is described below commit b9cc19d8a416a2be4fda537b4a9ba263d833e8c3 Author: JamesBognar AuthorDate: Sat Apr 11 09:48:17 2020 -0400 JUNEAU-217 my-jetty-microservice sample eclipse project - The type org.apache.juneau.utils.Args cannot be resolved. It is indirectly referenced from required .class files --- juneau-examples/juneau-examples-rest-jetty/build-overlay/pom.xml| 2 +- juneau-examples/juneau-examples-rest-springboot/build-overlay/pom.xml | 2 +- .../juneau-my-jetty-microservice/build-overlay/pom.xml.2| 2 +- juneau-microservice/juneau-my-jetty-microservice/pom.xml| 2 +- .../juneau-my-springboot-microservice/build-overlay/pom.xml.2 | 2 +- juneau-microservice/juneau-my-springboot-microservice/pom.xml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/juneau-examples/juneau-examples-rest-jetty/build-overlay/pom.xml b/juneau-examples/juneau-examples-rest-jetty/build-overlay/pom.xml index 6bb9653..19bc870 100644 --- a/juneau-examples/juneau-examples-rest-jetty/build-overlay/pom.xml +++ b/juneau-examples/juneau-examples-rest-jetty/build-overlay/pom.xml @@ -21,7 +21,7 @@ with java -jar juneau-microservice-template-1.0.0.jar microservice.cfg The group/artifact/version information is meant to be overwritten by developers to match their own needs. --> -http://maven.apache.org/POM/4.0.0; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance; xsi:schemaLocation="http://maven.apache.org/xsd/maven-4.0.0.xsd;> +http://maven.apache.org/POM/4.0.0; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance; xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd;> 4.0.0 diff --git a/juneau-examples/juneau-examples-rest-springboot/build-overlay/pom.xml b/juneau-examples/juneau-examples-rest-springboot/build-overlay/pom.xml index 4cced15..cf76288 100644 --- a/juneau-examples/juneau-examples-rest-springboot/build-overlay/pom.xml +++ b/juneau-examples/juneau-examples-rest-springboot/build-overlay/pom.xml @@ -24,7 +24,7 @@ The group/artifact/version information is meant to be overwritten by developers to match their own needs. --> -http://maven.apache.org/POM/4.0.0; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance; xsi:schemaLocation="http://maven.apache.org/xsd/maven-4.0.0.xsd;> +http://maven.apache.org/POM/4.0.0; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance; xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd;> 4.0.0 diff --git a/juneau-microservice/juneau-my-jetty-microservice/build-overlay/pom.xml.2 b/juneau-microservice/juneau-my-jetty-microservice/build-overlay/pom.xml.2 index 48f2cbe..35a31ac 100644 --- a/juneau-microservice/juneau-my-jetty-microservice/build-overlay/pom.xml.2 +++ b/juneau-microservice/juneau-my-jetty-microservice/build-overlay/pom.xml.2 @@ -24,7 +24,7 @@ The group/artifact/version information is meant to be overwritten by developers to match their own needs. --> -http://maven.apache.org/POM/4.0.0; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance; xsi:schemaLocation="http://maven.apache.org/xsd/maven-4.0.0.xsd;> +http://maven.apache.org/POM/4.0.0; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance; xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd;> 4.0.0 diff --git a/juneau-microservice/juneau-my-jetty-microservice/pom.xml b/juneau-microservice/juneau-my-jetty-microservice/pom.xml index 25e74a4..a7d95c6 100644 --- a/juneau-microservice/juneau-my-jetty-microservice/pom.xml +++ b/juneau-microservice/juneau-my-jetty-microservice/pom.xml @@ -21,7 +21,7 @@ with java -jar juneau-microservice-template-1.0.0.jar microservice.cfg The group/artifact/version information is meant to be overwritten by developers to match their own needs. --> -http://maven.apache.org/POM/4.0.0; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance; xsi:schemaLocation="http://maven.apache.org/xsd/maven-4.0.0.xsd;> +http://maven.apache.org/POM/4.0.0; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance; xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd;> 4.0.0 diff --git a/juneau-microservice/juneau-my-springboot-microservice/build-overlay/pom.xml.2 b/juneau-microservice/juneau-my-springboot-microservice/build-overlay/pom.xml.2 index 7c5516
[juneau] branch master updated: JUNEAU-201
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 3557061 JUNEAU-201 3557061 is described below commit 35570612df0bf2641296e2797208966d9278c723 Author: JamesBognar AuthorDate: Sat Apr 11 09:20:50 2020 -0400 JUNEAU-201 JettyMicroserviceBuilder logConfig method is a NO-OP --- .../org/apache/juneau/microservice/jetty/JettyMicroserviceBuilder.java | 1 + 1 file changed, 1 insertion(+) diff --git a/juneau-microservice/juneau-microservice-jetty/src/main/java/org/apache/juneau/microservice/jetty/JettyMicroserviceBuilder.java b/juneau-microservice/juneau-microservice-jetty/src/main/java/org/apache/juneau/microservice/jetty/JettyMicroserviceBuilder.java index 1b26ce7..502a7ef 100644 --- a/juneau-microservice/juneau-microservice-jetty/src/main/java/org/apache/juneau/microservice/jetty/JettyMicroserviceBuilder.java +++ b/juneau-microservice/juneau-microservice-jetty/src/main/java/org/apache/juneau/microservice/jetty/JettyMicroserviceBuilder.java @@ -288,6 +288,7 @@ public class JettyMicroserviceBuilder extends MicroserviceBuilder { @Override /* MicroserviceBuilder */ public JettyMicroserviceBuilder logConfig(LogConfig logConfig) { + super.logConfig(logConfig); return this; }
[juneau] branch master updated: Tests.
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 ddd0aae Tests. ddd0aae is described below commit ddd0aae3851c91644a5128f4207582e18160a789 Author: JamesBognar AuthorDate: Fri Apr 10 18:40:50 2020 -0400 Tests. --- .../apache/juneau/rest/client2/RestClientTest.java | 77 -- .../juneau/rest/client2/RestCallException.java | 71 +--- 2 files changed, 103 insertions(+), 45 deletions(-) diff --git a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java index b752f42..e60e808 100644 --- a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java +++ b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java @@ -2723,16 +2723,12 @@ public class RestClientTest { @Test public void m04_parser_parserListener() throws Exception { - RestClient rc = null; - - rc = MockRestClient - .create(A.class) - .parser(JsonParser.class) - .parserListener(M4L.class) - .build(); - try { - rc + MockRestClient + .create(A.class) + .parser(JsonParser.class) + .parserListener(M4L.class) + .build() .post("/echoBody", "{f:'1'}") .run() .getBody().as(M4.class); @@ -2743,18 +2739,57 @@ public class RestClientTest { } } -// @Test -// public void m05_parser_strictBoolean() throws Exception { fail(); } - public RestClientBuilder strict(boolean value) { -// -// @Test -// public void m06_parser_strict() throws Exception { fail(); } - public RestClientBuilder strict() { -// -// @Test -// public void m07_parser_trimStringsPBoolean() throws Exception { fail(); } - public RestClientBuilder trimStringsP(boolean value) { -// + public static class M5 { + public int f; + } + + @Test + public void m05_parser_strict() throws Exception { + try { + MockRestClient + .create(A.class) + .json() + .strict() + .build() + .post("/echoBody", new StringReader("{f:1}")) + .run() + .getBody().as(M5.class); + fail("Exception expected"); + } catch (Exception e) { + assertTrue(e.getMessage().contains("Unquoted attribute detected.")); + } + + try { + MockRestClient + .create(A.class) + .json() + .strict(true) + .build() + .post("/echoBody", new StringReader("{f:1}")) + .run() + .getBody().as(M5.class); + fail("Exception expected"); + } catch (Exception e) { + assertTrue(e.getMessage().contains("Unquoted attribute detected.")); + } + + MockRestClient + .create(A.class) + .json() + .strict(false) + .build() + .post("/echoBody", new StringReader("{f:1}")) + .run() + .getBody().as(M5.class); + } + + @Test + public void m07_parser_trimStringsOnRead() throws Exception { + + + } +// public RestClientBuilder trimStringsP(boolean value) { + // @Test // public void m08_parser_trimStringsP() throws Exception { fail(); } public RestClientBuilder trimStringsP() { diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestCallException.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestCallException.java index 5bab939..9cf4722 100644 --- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestCallException.java +