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 76e1429 org.apache.juneau.http tests.
76e1429 is described below
commit 76e142986b7cca9ead5dda215d0a78fbabb67e76
Author: JamesBognar <[email protected]>
AuthorDate: Mon Jul 13 08:53:06 2020 -0400
org.apache.juneau.http tests.
---
.../java/org/apache/juneau/http/BasicHeader.java | 15 ++---
.../org/apache/juneau/http/BasicHttpEntity.java | 71 ++++++----------------
.../org/apache/juneau/http/BasicHttpResource.java | 57 ++++++++---------
.../org/apache/juneau/http/BasicNameValuePair.java | 17 +-----
.../java/org/apache/juneau/http/HttpResource.java | 65 --------------------
.../apache/juneau/http/SerializedHttpEntity.java | 26 +-------
.../org/apache/juneau/http/BasicHeader_Test.java | 10 ---
.../apache/juneau/http/BasicHttpEntity_Test.java | 6 +-
.../apache/juneau/http/BasicHttpResource_Test.java | 6 +-
.../juneau/http/BasicNameValuePair_Test.java | 10 ---
.../rest/client2/Remote_CommonInterfaces_Test.java | 2 +-
.../rest/client2/RestClient_BasicCalls_Test.java | 16 ++---
.../juneau/rest/client2/RestClient_Body_Test.java | 56 ++++++++++++++---
.../rest/client2/RestClient_FormData_Test.java | 13 +++-
.../rest/client2/RestClient_Headers_Test.java | 13 +++-
.../org/apache/juneau/rest/client/RestCall.java | 17 ------
.../juneau/rest/client2/RestResponseBody.java | 5 +-
.../juneau/rest/helper/BasicHttpResourceTest.java | 14 ++---
.../java/org/apache/juneau/rest/RestRequest.java | 4 +-
19 files changed, 152 insertions(+), 271 deletions(-)
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/BasicHeader.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/BasicHeader.java
index 7c0f373..7809f26 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/BasicHeader.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/BasicHeader.java
@@ -13,6 +13,8 @@
package org.apache.juneau.http;
import static org.apache.juneau.internal.StringUtils.*;
+import static org.apache.juneau.internal.ObjectUtils.*;
+
import java.io.*;
import java.util.*;
import java.util.function.*;
@@ -28,7 +30,7 @@ import org.apache.juneau.svl.*;
/**
* Superclass of all headers defined in this package.
- *
+ *
* Provides the following features:
* <ul class='spaced-list'>
* <li>
@@ -170,8 +172,7 @@ public class BasicHeader implements Header, Cloneable,
Serializable {
*/
@FluentSetter
public BasicHeader resolving(VarResolver varResolver) {
- this.varSession = varResolver == null ? null :
varResolver.createSession();
- return this;
+ return resolving(varResolver == null ? null :
varResolver.createSession());
}
/**
@@ -271,16 +272,16 @@ public class BasicHeader implements Header, Cloneable,
Serializable {
@Override /* Object */
public boolean equals(Object o) {
+ // Functionality provided for HttpRequest.removeHeader().
+ // Not a perfect equality operator if using SVL vars.
if (! (o instanceof Header))
return false;
- if (varSession != null)
- return false;
- return ObjectUtils.eq(this, (Header)o, (x,y)->isEquals(x.name,
y.getName()) && isEquals(x.getValue(), y.getValue()));
+ return eq(this, (Header)o, (x,y)->eq(x.name,y.getName()) &&
eq(x.getValue(),y.getValue()));
}
@Override /* Object */
public int hashCode() {
- return HashCode.create().add(name).add(value).get();
+ return super.hashCode();
}
@Override /* Object */
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/BasicHttpEntity.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/BasicHttpEntity.java
index f77437d..fa891d7 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/BasicHttpEntity.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/BasicHttpEntity.java
@@ -17,12 +17,13 @@ import java.util.function.*;
import org.apache.http.*;
import org.apache.juneau.assertions.*;
+import org.apache.juneau.http.header.*;
import org.apache.juneau.internal.*;
import org.apache.juneau.svl.*;
/**
* An extension of {@link org.apache.http.entity.BasicHttpEntity} with
additional features.
- *
+ *
* Provides the following features:
* <ul class='spaced-list'>
* <li>
@@ -47,15 +48,6 @@ public class BasicHttpEntity extends
org.apache.http.entity.BasicHttpEntity {
/**
* Creator.
*
- * @return A new empty {@link BasicHttpEntity} object.
- */
- public static BasicHttpEntity create() {
- return new BasicHttpEntity();
- }
-
- /**
- * Creator.
- *
* @param content
* The content.
* <br>Can be any of the following:
@@ -97,16 +89,6 @@ public class BasicHttpEntity extends
org.apache.http.entity.BasicHttpEntity {
/**
* Creates a new basic entity.
- *
- * The content is initially missing, the content length
- * is set to a negative number.
- */
- public BasicHttpEntity() {
- super();
- }
-
- /**
- * Creates a new basic entity.
*
* @param content
* The content.
@@ -122,37 +104,13 @@ public class BasicHttpEntity extends
org.apache.http.entity.BasicHttpEntity {
* </ul>
*/
public BasicHttpEntity(Object content) {
- super();
- content(content);
+ this(content, null, null);
}
/**
- * Sets the content on this entity.
+ * Constructor.
*
- * @param value
- * The content.
- * <br>Can be any of the following:
- * <ul>
- * <li><c>InputStream</c>
- * <li><c>Reader</c> - Converted to UTF-8 bytes.
- * <li><c>File</c>
- * <li><c>CharSequence</c> - Converted to UTF-8 bytes.
- * <li><c><jk>byte</jk>[]</c>.
- * <li>A {@link Supplier} of anything on this list.
- * </ul>
- * </ul>
- * @return This object (for method chaining).
- */
- @FluentSetter
- public BasicHttpEntity content(Object value) {
- this.content = value;
- return this;
- }
-
- /**
- * Sets the content on this entity.
- *
- * @param value
+ * @param content
* The content.
* <br>Can be any of the following:
* <ul>
@@ -164,12 +122,18 @@ public class BasicHttpEntity extends
org.apache.http.entity.BasicHttpEntity {
* <li>A {@link Supplier} of anything on this list.
* </ul>
* </ul>
- * @return This object (for method chaining).
+ * @param contentType
+ * The content type of the contents.
+ * <br>Can be <jk>null</jk>.
+ * @param contentEncoding
+ * The content encoding of the contents.
+ * <br>Can be <jk>null</jk>.
*/
- @FluentSetter
- public BasicHttpEntity content(Supplier<?> value) {
- this.content = value;
- return this;
+ public BasicHttpEntity(Object content, ContentType contentType,
ContentEncoding contentEncoding) {
+ super();
+ this.content = content;
+ contentType(contentType);
+ contentEncoding(contentEncoding);
}
/**
@@ -297,8 +261,7 @@ public class BasicHttpEntity extends
org.apache.http.entity.BasicHttpEntity {
*/
@FluentSetter
public BasicHttpEntity resolving(VarResolver varResolver) {
- this.varSession = varResolver == null ? null :
varResolver.createSession();
- return this;
+ return resolving(varResolver == null ? null :
varResolver.createSession());
}
/**
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/BasicHttpResource.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/BasicHttpResource.java
index 74a12f7..fc6bc09 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/BasicHttpResource.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/BasicHttpResource.java
@@ -24,7 +24,7 @@ import org.apache.juneau.http.header.ContentType;
/**
* An extension of an {@link HttpEntity} with support for arbitrary headers.
- *
+ *
* Provides the following features:
* <ul class='spaced-list'>
* <li>
@@ -48,15 +48,6 @@ public class BasicHttpResource extends BasicHttpEntity
implements HttpResource {
/**
* Creator.
*
- * @return A new empty {@link BasicHttpResource} object.
- */
- public static BasicHttpResource create() {
- return new BasicHttpResource();
- }
-
- /**
- * Creator.
- *
* @param content
* The content.
* <br>Can be any of the following:
@@ -72,7 +63,7 @@ public class BasicHttpResource extends BasicHttpEntity
implements HttpResource {
* @return A new empty {@link BasicHttpResource} object.
*/
public static BasicHttpResource of(Object content) {
- return new BasicHttpResource().content(content);
+ return new BasicHttpResource(content);
}
/**
@@ -93,18 +84,32 @@ public class BasicHttpResource extends BasicHttpEntity
implements HttpResource {
* @return A new empty {@link BasicHttpResource} object.
*/
public static BasicHttpResource of(Supplier<?> content) {
- return new BasicHttpResource().content(content);
+ return new BasicHttpResource(content);
}
/**
* Constructor.
+ *
+ * @param content
+ * The content.
+ * <br>Can be any of the following:
+ * <ul>
+ * <li><c>InputStream</c>
+ * <li><c>Reader</c> - Converted to UTF-8 bytes.
+ * <li><c>File</c>
+ * <li><c>CharSequence</c> - Converted to UTF-8 bytes.
+ * <li><c><jk>byte</jk>[]</c>.
+ * <li>A {@link Supplier} of anything on this list.
+ * </ul>
+ * </ul>
*/
- public BasicHttpResource() {
- super();
+ public BasicHttpResource(Object content) {
+ super(content);
}
/**
* Constructor.
+ *
* @param content
* The content.
* <br>Can be any of the following:
@@ -125,10 +130,7 @@ public class BasicHttpResource extends BasicHttpEntity
implements HttpResource {
* <br>Can be <jk>null</jk>.
*/
public BasicHttpResource(Object content, ContentType contentType,
ContentEncoding contentEncoding) {
- super();
- content(content);
- contentType(contentType);
- contentEncoding(contentEncoding);
+ super(content, contentType, contentEncoding);
}
/**
@@ -145,7 +147,12 @@ public class BasicHttpResource extends BasicHttpEntity
implements HttpResource {
return this;
}
- @Override
+ /**
+ * Adds an arbitrary header to this resource.
+ *
+ * @param value The header.
+ * @return This object (for method chaining).
+ */
@FluentSetter
public BasicHttpResource header(Header value) {
if (value != null)
@@ -248,18 +255,6 @@ public class BasicHttpResource extends BasicHttpEntity
implements HttpResource {
}
@Override /* GENERATED - BasicHttpEntity */
- public BasicHttpResource content(Object value) {
- super.content(value);
- return this;
- }
-
- @Override /* GENERATED - BasicHttpEntity */
- public BasicHttpResource content(Supplier<?> value) {
- super.content(value);
- return this;
- }
-
- @Override /* GENERATED - BasicHttpEntity */
public BasicHttpResource contentEncoding(String value) {
super.contentEncoding(value);
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 f0477d5..9967051 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
@@ -141,8 +141,7 @@ public class BasicNameValuePair implements NameValuePair,
Headerable {
*/
@FluentSetter
public BasicNameValuePair resolving(VarResolver varResolver) {
- this.varSession = varResolver == null ? null :
varResolver.createSession();
- return this;
+ return resolving(varResolver == null ? null :
varResolver.createSession());
}
/**
@@ -195,20 +194,6 @@ public class BasicNameValuePair implements NameValuePair,
Headerable {
}
@Override /* Object */
- public boolean equals(Object o) {
- if (! (o instanceof NameValuePair))
- return false;
- if (varSession != null)
- return false;
- return ObjectUtils.eq(this, (NameValuePair)o,
(x,y)->isEquals(x.name, y.getName()) && isEquals(x.getValue(), y.getValue()));
- }
-
- @Override /* Object */
- public int hashCode() {
- return HashCode.create().add(name).add(value).get();
- }
-
- @Override /* Object */
public String toString() {
return urlEncode(getName()) + "=" + urlEncode(getValue());
}
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/HttpResource.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/HttpResource.java
index a117fdc..0b8a417 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/HttpResource.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/HttpResource.java
@@ -17,7 +17,6 @@ import java.util.*;
import org.apache.http.*;
import org.apache.http.Header;
import org.apache.juneau.http.annotation.*;
-import org.apache.juneau.internal.*;
/**
* An extension of an {@link HttpEntity} that also includes arbitrary headers.
@@ -32,68 +31,4 @@ public interface HttpResource extends HttpEntity {
*/
@ResponseHeader("*")
List<Header> getHeaders();
-
- /**
- * Shortcut for calling {@link #chunked()} with <jk>true</jk>.
- *
- * @return This object (for method chaining).
- */
- @FluentSetter
- public HttpResource chunked();
-
- /**
- * Shortcut for calling {@link #contentType(Header)}.
- *
- * @param value The new <c>Content-Type</ header, or <jk>null</jk> to
unset.
- * @return This object (for method chaining).
- */
- @FluentSetter
- public HttpResource contentType(Header value);
-
- /**
- * Shortcut for calling {@link #contentEncoding(Header)}.
- *
- * @param value The new <c>Content-Encoding</ header, or <jk>null</jk>
to unset.
- * @return This object (for method chaining).
- */
- @FluentSetter
- public HttpResource contentEncoding(Header value);
-
- /**
- * Adds an arbitrary header to this resource.
- *
- * @param value The header. Ignored if <jk>null</jk>.
- * @return This object (for method chaining).
- */
- @FluentSetter
- public HttpResource header(Header value);
-
- /**
- * Sets the content of this resource.
- *
- * <p>
- * Can be any of the following:
- * <ul>
- * <li><c>InputStream</c>
- * <li><c>Reader</c> - Converted to UTF-8 bytes.
- * <li><c>File</c>
- * <li><c>CharSequence</c> - Converted to UTF-8 bytes.
- * <li><c><jk>byte</jk>[]</c>.
- * </ul>
- * </ul>
- *
- * @param value The new contents of this resource.
- * @return This object (for method chaining).
- */
- @FluentSetter
- public HttpResource content(Object value);
-
- /**
- * Specifies that the contents of this resource should be cached into
an internal byte array so that it can
- * be read multiple times.
- *
- * @return This object (for method chaining).
- */
- @FluentSetter
- public HttpResource cache();
}
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/SerializedHttpEntity.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/SerializedHttpEntity.java
index 0ea4f0e..b87859e 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/SerializedHttpEntity.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/SerializedHttpEntity.java
@@ -29,7 +29,7 @@ import org.apache.juneau.utils.*;
* HttpEntity for serializing POJOs as the body of HTTP requests.
*/
public class SerializedHttpEntity extends BasicHttpEntity {
- private Serializer serializer;
+ private final Serializer serializer;
private HttpPartSchema schema;
private byte[] cache;
@@ -57,36 +57,16 @@ public class SerializedHttpEntity extends BasicHttpEntity {
/**
* Constructor.
- */
- public SerializedHttpEntity() {}
-
- /**
- * Constructor.
*
* @param content The POJO to serialize. Can also be a {@link Reader}
or {@link InputStream}.
* @param serializer The serializer to use to serialize this response.
*/
public SerializedHttpEntity(Object content, Serializer serializer) {
- super(content);
+ super(content, ContentType.of(serializer == null ? null :
serializer.getResponseContentType()), null);
this.serializer = serializer;
}
/**
- * Sets the serializer to use to serialize the content.
- *
- * <p>
- * Value is ignored if the content is a stream or reader.
- *
- * @param value The serializer.
- * @return This object (for method chaining).
- */
- @FluentSetter
- public SerializedHttpEntity serializer(Serializer value) {
- this.serializer = value;
- return this;
- }
-
- /**
* Sets the schema to use to serialize the content.
*
* <p>
@@ -144,8 +124,6 @@ public class SerializedHttpEntity extends BasicHttpEntity {
Object o = getRawContent();
if (o instanceof InputStream || o instanceof Reader || o
instanceof File)
return null;
- if (serializer != null)
- return
ContentType.of(serializer.getResponseContentType());
return null;
}
diff --git
a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/http/BasicHeader_Test.java
b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/http/BasicHeader_Test.java
index 7c7b5d5..026cd24 100644
---
a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/http/BasicHeader_Test.java
+++
b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/http/BasicHeader_Test.java
@@ -113,16 +113,6 @@ public class BasicHeader_Test {
}
@Test
- public void a06_hashSet() {
- Set<BasicHeader> x =
ASet.of(header("X1","1"),header("X1","1"),header("X1","2"),header("X2","1"),header("X2","2"),header("X3","3"),null);
- assertObject(x).json().stderr().is("['X1: 1','X1: 2','X2:
1','X2: 2','X3: 3',null]");
- assertFalse(header("X1","1").equals(null));
- assertFalse(header("X1","1").equals(header("X1","2")));
- assertFalse(header("X1","1").equals(header("X2","1")));
- assertTrue(header("X1","1").equals(header("X1","1")));
- }
-
- @Test
public void a07_eqIC() {
BasicHeader x = header("X1","1");
assertTrue(x.eqIC("1"));
diff --git
a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/http/BasicHttpEntity_Test.java
b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/http/BasicHttpEntity_Test.java
index 797e63c..1f7b8bb 100644
---
a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/http/BasicHttpEntity_Test.java
+++
b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/http/BasicHttpEntity_Test.java
@@ -23,7 +23,7 @@ import org.junit.*;
public class BasicHttpEntity_Test {
@Test
public void a01_basic() throws Exception {
- BasicHttpEntity x = create();
+ BasicHttpEntity x = of(null);
File f = File.createTempFile("test", "txt");
assertNull(x.getContentType());
@@ -132,13 +132,13 @@ public class BasicHttpEntity_Test {
assertLong(of(new
StringReader("foo")).getContentLength()).is(-1l);
assertLong(of(new
StringReader("foo")).contentLength(3).getContentLength()).is(3l);
- BasicHttpEntity x2 = new BasicHttpEntity() {
+ BasicHttpEntity x2 = new BasicHttpEntity(new
StringReader("foo")) {
@Override
protected byte[] readBytes(Object o) throws IOException
{
throw new IOException("bad");
}
};
- x2.cache().content(new StringReader("foo"));
+ x2.cache();
assertLong(x2.getContentLength()).is(-1l);
assertThrown(()->x2.writeTo(new
ByteArrayOutputStream())).contains("bad");
diff --git
a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/http/BasicHttpResource_Test.java
b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/http/BasicHttpResource_Test.java
index 604972c..21e2f11 100644
---
a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/http/BasicHttpResource_Test.java
+++
b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/http/BasicHttpResource_Test.java
@@ -23,7 +23,7 @@ import org.junit.*;
public class BasicHttpResource_Test {
@Test
public void a01_basic() throws Exception {
- BasicHttpResource x = create();
+ BasicHttpResource x = of(null);
File f = File.createTempFile("test", "txt");
assertNull(x.getContentType());
@@ -109,13 +109,13 @@ public class BasicHttpResource_Test {
assertObject(x.getLastHeader("Bar")).doesNotExist();
assertObject(x.getHeaders()).json().is("['Foo: bar','Foo:
baz']");
- BasicHttpResource x2 = new BasicHttpResource() {
+ BasicHttpResource x2 = new BasicHttpResource(new
StringReader("foo")) {
@Override
protected byte[] readBytes(Object o) throws IOException
{
throw new IOException("bad");
}
};
- x2.cache().content(new StringReader("foo"));
+ x2.cache();
assertLong(x2.getContentLength()).is(-1l);
assertThrown(()->x2.writeTo(new
ByteArrayOutputStream())).contains("bad");
}
diff --git
a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/http/BasicNameValuePair_Test.java
b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/http/BasicNameValuePair_Test.java
index 699baea..50cce71 100644
---
a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/http/BasicNameValuePair_Test.java
+++
b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/http/BasicNameValuePair_Test.java
@@ -114,16 +114,6 @@ public class BasicNameValuePair_Test {
x.assertName().is("X1").assertValue().is("1");
}
- @Test
- public void a06_hashSet() {
- Set<BasicNameValuePair> x =
ASet.of(pair("X1","1"),pair("X1","1"),pair("X1","2"),pair("X2","1"),pair("X2","2"),pair("X3","3"),null);
-
assertObject(x).json().stderr().is("['X1=1','X1=2','X2=1','X2=2','X3=3',null]");
- assertFalse(pair("X1","1").equals(null));
- assertFalse(pair("X1","1").equals(pair("X1","2")));
- assertFalse(pair("X1","1").equals(pair("X2","1")));
- assertTrue(pair("X1","1").equals(pair("X1","1")));
- }
-
//------------------------------------------------------------------------------------------------------------------
// Utility methods
//------------------------------------------------------------------------------------------------------------------
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 635708a..91daebb 100644
---
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
@@ -210,7 +210,7 @@ public class Remote_CommonInterfaces_Test {
public static class D1 implements D {
@Override
public BasicHttpResource httpResource() throws IOException {
- return
BasicHttpResource.create().contentType("text/foo").content("foo".getBytes()).header("Foo","foo").headers(ETag.of("bar"));
+ return
BasicHttpResource.of("foo".getBytes()).contentType("text/foo").header("Foo","foo").headers(ETag.of("bar"));
}
}
diff --git
a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClient_BasicCalls_Test.java
b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClient_BasicCalls_Test.java
index 2ec3b24..566e225 100644
---
a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClient_BasicCalls_Test.java
+++
b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClient_BasicCalls_Test.java
@@ -163,7 +163,7 @@ public class RestClient_BasicCalls_Test {
List<Object> bodies = AList.<Object>of(
new StringReader("{f:1}"),
new ByteArrayInputStream("{f:1}".getBytes()),
- BasicHttpResource.create().content("{f:1}"),
+ BasicHttpResource.of("{f:1}"),
bean,
new StringEntity("{f:1}"),
pairs("f",1)
@@ -206,7 +206,7 @@ public class RestClient_BasicCalls_Test {
List<Object> bodies = AList.<Object>of(
new StringReader("{f:1}"),
new ByteArrayInputStream("{f:1}".getBytes()),
- BasicHttpResource.create().content("{f:1}"),
+ BasicHttpResource.of("{f:1}"),
bean,
new StringEntity("{f:1}"),
pairs("f",1)
@@ -312,10 +312,10 @@ public class RestClient_BasicCalls_Test {
/*[ 3]*/ new
StringEntity("f=1",org.apache.http.entity.ContentType.APPLICATION_FORM_URLENCODED),
/*[ 4]*/ new
StringEntity("f=1",(org.apache.http.entity.ContentType)null),
/*[ 5]*/ pair("f","1"),
- /*[ 6]*/ BasicHttpResource.create().content("f=1"),
- /*[ 7]*/ BasicHttpResource.create().content("f=1"),
- /*[ 8]*/
BasicHttpResource.create().content("f=1").contentType("application/x-www-form-urlencoded"),
- /*[ 9]*/
BasicHttpResource.create().content("f=1").contentType("application/x-www-form-urlencoded"),
+ /*[ 6]*/ BasicHttpResource.of("f=1"),
+ /*[ 7]*/ BasicHttpResource.of("f=1"),
+ /*[ 8]*/
BasicHttpResource.of("f=1").contentType("application/x-www-form-urlencoded"),
+ /*[ 9]*/
BasicHttpResource.of("f=1").contentType("application/x-www-form-urlencoded"),
/*[14]*/ s1,
/*[15]*/ s2
);
@@ -346,7 +346,7 @@ public class RestClient_BasicCalls_Test {
List<Object> bodies = AList.<Object>of(
new StringReader("{f:1}"),
new ByteArrayInputStream("{f:1}".getBytes()),
- BasicHttpResource.create().content("{f:1}"),
+ BasicHttpResource.of("{f:1}"),
bean,
new StringEntity("{f:1}"),
pairs("f",1)
@@ -383,7 +383,7 @@ public class RestClient_BasicCalls_Test {
List<Object> bodies = AList.<Object>of(
new StringReader("{f:1}"),
new ByteArrayInputStream("{f:1}".getBytes()),
- BasicHttpResource.create().content("{f:1}"),
+ BasicHttpResource.of("{f:1}"),
bean,
new StringEntity("{f:1}"),
pairs("f",1)
diff --git
a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClient_Body_Test.java
b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClient_Body_Test.java
index 1cced7d..16cfaca 100644
---
a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClient_Body_Test.java
+++
b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClient_Body_Test.java
@@ -105,6 +105,51 @@ public class RestClient_Body_Test {
}
@Test
+ public void a02_BasicHttpEntity() throws Exception {
+ BasicHttpEntity x1 = httpEntity("foo");
+ client().build().post("/", x1).run()
+ .assertIntegerHeader("X-Content-Length").is(3)
+ .assertHeader("X-Content-Encoding").doesNotExist()
+ .assertHeader("X-Content-Type").doesNotExist()
+ .assertHeader("X-Transfer-Encoding").doesNotExist()
+ ;
+
+ BasicHttpEntity x2 =
httpEntity("foo").contentType("text/plain").contentEncoding("identity");
+ client().build().post("/",x2).run()
+ .assertIntegerHeader("X-Content-Length").is(3)
+ .assertHeader("X-Content-Encoding").is("identity")
+ .assertHeader("X-Content-Type").is("text/plain")
+ .assertHeader("X-Transfer-Encoding").doesNotExist()
+ ;
+
+ BasicHttpEntity x3 =
httpEntity("foo").contentType(contentType("text/plain")).contentEncoding(contentEncoding("identity")).chunked();
+ client().build().post("/",x3).run()
+ .assertIntegerHeader("X-Content-Length").doesNotExist()
// Missing when chunked.
+ .assertHeader("X-Content-Encoding").is("identity")
+ .assertHeader("X-Content-Type").is("text/plain")
+ .assertHeader("X-Transfer-Encoding").is("chunked")
+ ;
+
+ BasicHttpEntity x4 = new BasicHttpEntity("foo",
contentType("text/plain"), contentEncoding("identity"));
+ client().build().post("/",x4).run()
+ .assertIntegerHeader("X-Content-Length").is(3)
+ .assertHeader("X-Content-Encoding").is("identity")
+ .assertHeader("X-Content-Type").is("text/plain")
+ .assertHeader("X-Transfer-Encoding").doesNotExist()
+ ;
+
+ BasicHttpEntity x7 = httpEntity(new StringReader("foo"));
+
client().build().post("/",x7).run().getBody().assertString().is("foo");
+
+ BasicHttpEntity x8 = httpEntity(new
StringReader("foo")).cache();
+
client().build().post("/",x8).run().getBody().assertString().is("foo");
+
client().build().post("/",x8).run().getBody().assertString().is("foo");
+
+ BasicHttpEntity x9 = httpEntity(null);
+
client().build().post("/",x9).run().getBody().assertString().isEmpty();
+ }
+
+ @Test
public void a03_SerializedHttpEntity() throws Exception {
Serializer js = JsonSerializer.DEFAULT;
File f = File.createTempFile("test", "txt");
@@ -117,13 +162,6 @@ public class RestClient_Body_Test {
.assertHeader("X-Transfer-Encoding").is("chunked") //
Because content length is -1.
;
- x.serializer(js);
- client().build().post("/",x).run()
- .assertHeader("X-Content-Length").doesNotExist()
- .assertHeader("X-Content-Encoding").doesNotExist()
- .assertHeader("X-Content-Type").is("application/json")
-
.getBody().assertObject(ABean.class).json().is("{a:1,b:'foo'}");
-
x = serializedHttpEntity(ABean.get(),js);
client().build().post("/",x).run()
.assertHeader("X-Content-Length").doesNotExist()
@@ -168,6 +206,10 @@ public class RestClient_Body_Test {
return BasicHttpResource.of(val);
}
+ private static BasicHttpEntity httpEntity(Object val) {
+ return BasicHttpEntity.of(val);
+ }
+
private static SerializedHttpEntity serializedHttpEntity(Object val,
Serializer s) {
return SerializedHttpEntity.of(val, s);
}
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 bf67232..eaf6047 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
@@ -29,6 +29,7 @@ import org.apache.juneau.rest.*;
import org.apache.juneau.rest.annotation.*;
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.testutils.pojos.ABean;
import org.apache.juneau.uon.*;
@@ -213,10 +214,20 @@ public class RestClient_FormData_Test {
}
@Test
- public void a12_formData_BadSerialization() throws Exception {
+ public void a12_badSerialization() throws Exception {
assertThrown(()->client().formData(SerializedNameValuePair.of("Foo","bar").serializer(new
A12())).build().get()).contains("bad");
}
+ @Test
+ public void a13_svlVars() throws Exception {
+ System.setProperty("Test", "bar");
+ NameValuePair x =
BasicNameValuePair.of("foo","$S{Test}").resolving(VarResolver.DEFAULT);
+
client().formData(x).build().post("/formData").run().assertBody().urlDecode().is("foo=bar");
+ x =
BasicNameValuePair.of("foo","$S{Test}").resolving((VarResolver)null);
+
client().formData(x).build().post("/formData").run().assertBody().urlDecode().is("foo=$S{Test}");
+ System.clearProperty("Test");
+ }
+
//------------------------------------------------------------------------------------------------------------------
// Helper methods.
//------------------------------------------------------------------------------------------------------------------
diff --git
a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClient_Headers_Test.java
b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClient_Headers_Test.java
index 20d5921..2e2114e 100644
---
a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClient_Headers_Test.java
+++
b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClient_Headers_Test.java
@@ -32,6 +32,7 @@ import org.apache.juneau.rest.*;
import org.apache.juneau.rest.annotation.*;
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.uon.*;
import org.junit.*;
@@ -200,10 +201,20 @@ public class RestClient_Headers_Test {
}
@Test
- public void a12_headers_BadSerialization() throws Exception {
+ public void a12_badSerialization() throws Exception {
assertThrown(()->checkFooClient().header(SerializedHeader.of("Foo","bar").serializer(new
A12())).build().get()).contains("bad");
}
+ @Test
+ public void a13_svlVars() throws Exception {
+ System.setProperty("Test", "bar");
+ Header x =
BasicHeader.of("Foo","$S{Test}").resolving(VarResolver.DEFAULT);
+
checkFooClient().header(x).build().get("/headers").run().assertBody().is("['bar']");
+ x =
BasicHeader.of("Foo","$S{Test}").resolving((VarResolver)null);
+
checkFooClient().header(x).build().get("/headers").run().assertBody().is("['$S{Test}']");
+ System.clearProperty("Test");
+ }
+
//------------------------------------------------------------------------------------------------------------------
// Other tests
//------------------------------------------------------------------------------------------------------------------
diff --git
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestCall.java
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestCall.java
index 23f770e..84d972a 100644
---
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestCall.java
+++
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestCall.java
@@ -2258,23 +2258,6 @@ public final class RestCall extends BeanSession
implements Closeable {
return (T)getReader();
if (ic.equals(InputStream.class))
return (T)getInputStream();
- if (type.isType(HttpResource.class)) {
- HttpResource r;
- try {
- r = (HttpResource)type.newInstance();
- for (Header h :
response.getAllHeaders()) {
- if
(h.getName().equalsIgnoreCase("Content-Type"))
- r.contentType(h);
- else if
(h.getName().equalsIgnoreCase("Content-Encoding"))
- r.contentEncoding(h);
- else
- r.header(h);
- }
- return (T)r;
- } catch (ExecutableException e) {
- throw new IOException(e);
- }
- }
connect(type);
Header h = response.getFirstHeader("Content-Type");
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 7243a0e..a2828b9 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
@@ -757,7 +757,7 @@ public class RestResponseBody implements HttpEntity {
return (T)response;
if (type.isType(HttpResource.class)) {
- HttpResource r =
(HttpResource)type.newInstance();
+ BasicHttpResource r =
BasicHttpResource.of(asInputStream());
for (Header h : response.getAllHeaders()) {
if
(h.getName().equalsIgnoreCase("Content-Type"))
r.contentType(h);
@@ -766,7 +766,6 @@ public class RestResponseBody implements HttpEntity {
else
r.header(h);
}
- r.content(asInputStream());
return (T)r;
}
@@ -822,7 +821,7 @@ public class RestResponseBody implements HttpEntity {
response.getStringHeader("Content-Type")
);
- } catch (ParseException | IOException | ExecutableException e) {
+ } catch (ParseException | IOException e) {
response.close();
throw new RestCallException(response, e, "Could not
parse response body.");
}
diff --git
a/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/helper/BasicHttpResourceTest.java
b/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/helper/BasicHttpResourceTest.java
index ae64926..b3aa6eb 100644
---
a/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/helper/BasicHttpResourceTest.java
+++
b/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/helper/BasicHttpResourceTest.java
@@ -30,37 +30,37 @@ public class BasicHttpResourceTest {
@RestMethod
public BasicHttpResource a01() throws Exception {
- return BasicHttpResource.create().content("foo");
+ return BasicHttpResource.of("foo");
}
@RestMethod
public BasicHttpResource a02() throws Exception {
- return BasicHttpResource.create().header("Foo", "Bar");
+ return BasicHttpResource.of(null).header("Foo", "Bar");
}
@RestMethod
public BasicHttpResource a03() throws Exception {
- return
BasicHttpResource.create().contentType("application/json");
+ return
BasicHttpResource.of(null).contentType("application/json");
}
@RestMethod
public BasicHttpResource a04(RestRequest req) throws Exception {
- return
BasicHttpResource.create().resolving(req.getVarResolverSession()).content("$RQ{foo}");
+ return
BasicHttpResource.of("$RQ{foo}").resolving(req.getVarResolverSession());
}
@RestMethod
public BasicHttpResource a05() throws Exception {
- return BasicHttpResource.create().content(new
ByteArrayInputStream("foo".getBytes()));
+ return BasicHttpResource.of(new
ByteArrayInputStream("foo".getBytes()));
}
@RestMethod
public BasicHttpResource a06() throws Exception {
- return BasicHttpResource.create().content(new
StringReader("foo"));
+ return BasicHttpResource.of(new StringReader("foo"));
}
@RestMethod
public BasicHttpResource a07() throws Exception {
- return BasicHttpResource.create().content(new
StringBuilder("foo"));
+ return BasicHttpResource.of(new StringBuilder("foo"));
}
}
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestRequest.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestRequest.java
index fba70ca..be6e86a 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestRequest.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestRequest.java
@@ -1450,9 +1450,7 @@ public final class RestRequest extends
HttpServletRequestWrapper {
String s = context.getClasspathResourceAsString(name,
getLocale());
if (s == null)
return null;
- BasicHttpResource b = BasicHttpResource
- .create()
- .content(s)
+ BasicHttpResource b = BasicHttpResource.of(s)
.contentType(mediaType == null ? null :
ContentType.of(mediaType.toString()));
if (resolveVars)
b.resolving(getVarResolverSession());