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 88ced6a REST refactoring.
88ced6a is described below
commit 88ced6a390c491c8fff2748bef864702f2fa263a
Author: JamesBognar <[email protected]>
AuthorDate: Thu Mar 4 11:51:08 2021 -0500
REST refactoring.
---
.../main/ConfigurablePropertyCodeGenerator.java | 2 +-
.../header/{HeaderGroup.java => HeaderList.java} | 101 ++++++++++-----------
...derGroupBuilder.java => HeaderListBuilder.java} | 50 +++++-----
.../http/part/{PartGroup.java => PartList.java} | 60 ++++++------
...{PartGroupBuilder.java => PartListBuilder.java} | 50 +++++-----
.../juneau/http/response/BasicHttpException.java | 57 ++++++------
.../juneau/http/response/BasicHttpResponse.java | 60 ++++++------
.../juneau/http/response/HttpExceptionBuilder.java | 60 ++++++------
.../juneau/http/response/HttpResponseBuilder.java | 60 ++++++------
.../java/org/apache/juneau/rest/RestContext.java | 22 ++---
.../apache/juneau/rest/RestOperationContext.java | 48 +++++-----
.../java/org/apache/juneau/rest/RestRequest.java | 8 +-
.../java/org/apache/juneau/rest/RestResponse.java | 4 +-
13 files changed, 289 insertions(+), 293 deletions(-)
diff --git a/juneau-all/src/java/main/ConfigurablePropertyCodeGenerator.java
b/juneau-all/src/java/main/ConfigurablePropertyCodeGenerator.java
index c281f0e..7d69922 100644
--- a/juneau-all/src/java/main/ConfigurablePropertyCodeGenerator.java
+++ b/juneau-all/src/java/main/ConfigurablePropertyCodeGenerator.java
@@ -118,7 +118,7 @@ public class ConfigurablePropertyCodeGenerator {
FluentThrowableAssertion.class,
FluentZonedDateTimeAssertion.class,
Found.class,
- HeaderGroupBuilder.class,
+ HeaderListBuilder.class,
HtmlDocSerializerBuilder.class,
HtmlParserBuilder.class,
HtmlSchemaSerializerBuilder.class,
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/HeaderGroup.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/HeaderList.java
similarity index 66%
rename from
juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/HeaderGroup.java
rename to
juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/HeaderList.java
index 619afae..97b6d81 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/HeaderGroup.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/HeaderList.java
@@ -12,8 +12,7 @@
//
***************************************************************************************************************************
package org.apache.juneau.http.header;
-import static java.util.Optional.*;
-
+import static java.util.Collections.*;
import java.util.*;
import org.apache.http.*;
@@ -22,17 +21,15 @@ import org.apache.http.message.BasicHeader;
import org.apache.http.util.*;
/**
- * An unmodifiable group of HTTP headers.
+ * An unmodifiable list of HTTP headers.
*
* <p>
- * Similar to {@link HeaderGroup} but uses a builder-based approach for
building header groups.
+ * Similar to {@link HeaderGroup} but uses a builder-based approach for
building header lists.
*/
-public class HeaderGroup {
+public class HeaderList implements Iterable<Header> {
/** Predefined instance. */
- public static final HeaderGroup INSTANCE = create().build();
-
- private static final Header[] EMPTY = new Header[] {};
+ public static final HeaderList EMPTY = create().build();
private final List<Header> headers;
@@ -41,8 +38,8 @@ public class HeaderGroup {
*
* @return A new builder.
*/
- public static HeaderGroupBuilder create() {
- return new HeaderGroupBuilder();
+ public static HeaderListBuilder create() {
+ return new HeaderListBuilder();
}
/**
@@ -50,7 +47,7 @@ public class HeaderGroup {
*
* @param builder The builder containing the settings for this bean.
*/
- public HeaderGroup(HeaderGroupBuilder builder) {
+ public HeaderList(HeaderListBuilder builder) {
this.headers = new ArrayList<>(builder.headers);
}
@@ -59,7 +56,7 @@ public class HeaderGroup {
*
* @return A new builder object.
*/
- public HeaderGroupBuilder builder() {
+ public HeaderListBuilder builder() {
return create().add(headers);
}
@@ -75,23 +72,23 @@ public class HeaderGroup {
* @param name The header name.
* @return A header with a condensed value or <jk>null</jk> if no
headers by the given name are present
*/
- public Optional<Header> getCondensedHeader(final String name) {
- Header[] hdrs = getHeaders(name);
+ public Header getCondensed(String name) {
+ List<Header> hdrs = get(name);
- if (hdrs.length == 0)
- return empty();
+ if (hdrs.isEmpty())
+ return null;
- if (hdrs.length == 1)
- return of(hdrs[0]);
+ if (hdrs.size() == 1)
+ return hdrs.get(0);
- CharArrayBuffer valueBuffer = new CharArrayBuffer(128);
- valueBuffer.append(hdrs[0].getValue());
- for (int i = 1; i < hdrs.length; i++) {
- valueBuffer.append(", ");
- valueBuffer.append(hdrs[i].getValue());
+ CharArrayBuffer sb = new CharArrayBuffer(128);
+ sb.append(hdrs.get(0).getValue());
+ for (int i = 1; i < hdrs.size(); i++) {
+ sb.append(", ");
+ sb.append(hdrs.get(i).getValue());
}
- return of(new BasicHeader(name.toLowerCase(Locale.ROOT),
valueBuffer.toString()));
+ return new BasicHeader(name.toLowerCase(Locale.ROOT),
sb.toString());
}
/**
@@ -107,12 +104,9 @@ public class HeaderGroup {
*
* @return An array containing all matching headers, or an empty array
if none are found.
*/
- public Header[] getHeaders(final String name) {
- // HTTPCORE-361 : we don't use the for-each syntax, i.e.
- // for (Header header : headers)
- // as that creates an Iterator that needs to be
garbage-collected
+ public List<Header> get(String name) {
List<Header> l = null;
- for (int i = 0; i < headers.size(); i++) {
+ for (int i = 0; i < headers.size(); i++) { // See HTTPCORE-361
Header x = headers.get(i);
if (x.getName().equalsIgnoreCase(name)) {
if (l == null)
@@ -120,7 +114,7 @@ public class HeaderGroup {
l.add(x);
}
}
- return l != null ? l.toArray(new Header[l.size()]) : EMPTY;
+ return l == null ? emptyList() : l;
}
/**
@@ -132,11 +126,8 @@ public class HeaderGroup {
* @param name The header name.
* @return The first matching header, or <jk>null</jk> if not found.
*/
- public Header getFirstHeader(String name) {
- // HTTPCORE-361 : we don't use the for-each syntax, i.e.
- // for (Header header : headers)
- // as that creates an Iterator that needs to be
garbage-collected
- for (int i = 0; i < headers.size(); i++) {
+ public Header getFirst(String name) {
+ for (int i = 0; i < headers.size(); i++) { // See HTTPCORE-361
Header x = headers.get(i);
if (x.getName().equalsIgnoreCase(name))
return x;
@@ -153,7 +144,7 @@ public class HeaderGroup {
* @param name The header name.
* @return The last matching header, or <jk>null</jk> if not found.
*/
- public Header getLastHeader(String name) {
+ public Header getLast(String name) {
for (int i = headers.size() - 1; i >= 0; i--) {
Header x = headers.get(i);
if (x.getName().equalsIgnoreCase(name))
@@ -163,16 +154,16 @@ public class HeaderGroup {
}
/**
- * Gets all of the headers contained within this group.
+ * Gets all of the headers contained within this list.
*
- * @return An array containing all the headers within this group, or an
empty array if no headers are present.
+ * @return An unmodifiable list of all the headers in this list, or an
empty list if no headers are present.
*/
- public List<Header> getAllHeaders() {
- return Collections.unmodifiableList(headers);
+ public List<Header> getAll() {
+ return unmodifiableList(headers);
}
/**
- * Tests if headers with the given name are contained within this group.
+ * Tests if headers with the given name are contained within this list.
*
* <p>
* Header name comparison is case insensitive.
@@ -180,11 +171,8 @@ public class HeaderGroup {
* @param name The header name.
* @return <jk>true</jk> if at least one header with the name is
present.
*/
- public boolean containsHeader(String name) {
- // HTTPCORE-361 : we don't use the for-each syntax, i.e.
- // for (Header header : headers)
- // as that creates an Iterator that needs to be
garbage-collected
- for (int i = 0; i < headers.size(); i++) {
+ public boolean contains(String name) {
+ for (int i = 0; i < headers.size(); i++) { // See HTTPCORE-361
Header x = headers.get(i);
if (x.getName().equalsIgnoreCase(name))
return true;
@@ -193,22 +181,22 @@ public class HeaderGroup {
}
/**
- * Returns an iterator over this group of headers.
+ * Returns an iterator over this list of headers.
*
- * @return A new iterator over this group of headers.
+ * @return A new iterator over this list of headers.
*/
- public HeaderIterator iterator() {
- return new BasicListHeaderIterator(this.headers, null);
+ public HeaderIterator headerIterator() {
+ return new BasicListHeaderIterator(headers, null);
}
/**
- * Returns an iterator over the headers with a given name in this group.
+ * Returns an iterator over the headers with a given name in this list.
*
* @param name The name of the headers over which to iterate, or
<jk>null</jk> for all headers
*
- * @return A new iterator over the matching headers in this group.
+ * @return A new iterator over the matching headers in this list.
*/
- public HeaderIterator iterator(String name) {
+ public HeaderIterator headerIterator(String name) {
return new BasicListHeaderIterator(headers, name);
}
@@ -220,10 +208,15 @@ public class HeaderGroup {
*
* @return A copy of this object.
*/
- public HeaderGroup copy() {
+ public HeaderList copy() {
return builder().build();
}
+ @Override /* Iterable */
+ public Iterator<Header> iterator() {
+ return getAll().iterator();
+ }
+
@Override /* Object */
public String toString() {
return headers.toString();
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/HeaderGroupBuilder.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/HeaderListBuilder.java
similarity index 85%
rename from
juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/HeaderGroupBuilder.java
rename to
juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/HeaderListBuilder.java
index 0d8a6e0..9f5e3e0 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/HeaderGroupBuilder.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/HeaderListBuilder.java
@@ -18,25 +18,25 @@ import org.apache.http.*;
import org.apache.juneau.internal.*;
/**
- * Builder for {@link HeaderGroup} objects.
+ * Builder for {@link HeaderList} objects.
*/
@FluentSetters
-public class HeaderGroupBuilder {
+public class HeaderListBuilder {
final List<Header> headers = new ArrayList<>();
/**
* Constructor.
*/
- public HeaderGroupBuilder() {}
+ public HeaderListBuilder() {}
/**
- * Creates a new {@link HeaderGroup} bean based on the contents of this
builder.
+ * Creates a new {@link HeaderList} bean based on the contents of this
builder.
*
- * @return A new {@link HeaderGroup} bean.
+ * @return A new {@link HeaderList} bean.
*/
- public HeaderGroup build() {
- return new HeaderGroup(this);
+ public HeaderList build() {
+ return new HeaderList(this);
}
/**
@@ -45,7 +45,7 @@ public class HeaderGroupBuilder {
* @return This object (for method chaining).
*/
@FluentSetter
- public HeaderGroupBuilder clear() {
+ public HeaderListBuilder clear() {
headers.clear();
return this;
}
@@ -57,7 +57,7 @@ public class HeaderGroupBuilder {
* @return This object (for method chaining).
*/
@FluentSetter
- public HeaderGroupBuilder add(Header value) {
+ public HeaderListBuilder add(Header value) {
if (value != null)
headers.add(value);
return this;
@@ -71,7 +71,7 @@ public class HeaderGroupBuilder {
* @return This object (for method chaining).
*/
@FluentSetter
- public HeaderGroupBuilder add(String name, String value) {
+ public HeaderListBuilder add(String name, String value) {
headers.add(new BasicHeader(name, value));
return this;
}
@@ -83,7 +83,7 @@ public class HeaderGroupBuilder {
* @return This object (for method chaining).
*/
@FluentSetter
- public HeaderGroupBuilder add(Header...values) {
+ public HeaderListBuilder add(Header...values) {
for (int i = 0; i < values.length; i++) /* See HTTPCORE-361 */
add(values[i]);
return this;
@@ -96,7 +96,7 @@ public class HeaderGroupBuilder {
* @return This object (for method chaining).
*/
@FluentSetter
- public HeaderGroupBuilder add(List<Header> values) {
+ public HeaderListBuilder add(List<Header> values) {
for (int i = 0; i < values.size(); i++) /* See HTTPCORE-361 */
add(values.get(i));
return this;
@@ -109,7 +109,7 @@ public class HeaderGroupBuilder {
* @return This object (for method chaining).
*/
@FluentSetter
- public HeaderGroupBuilder remove(Header value) {
+ public HeaderListBuilder remove(Header value) {
if (value != null)
headers.remove(value);
return this;
@@ -122,7 +122,7 @@ public class HeaderGroupBuilder {
* @return This object (for method chaining).
*/
@FluentSetter
- public HeaderGroupBuilder remove(Header...values) {
+ public HeaderListBuilder remove(Header...values) {
for (int i = 0; i < values.length; i++) /* See HTTPCORE-361 */
remove(values[i]);
return this;
@@ -135,7 +135,7 @@ public class HeaderGroupBuilder {
* @return This object (for method chaining).
*/
@FluentSetter
- public HeaderGroupBuilder remove(List<Header> values) {
+ public HeaderListBuilder remove(List<Header> values) {
for (int i = 0; i < values.size(); i++) /* See HTTPCORE-361 */
remove(values.get(i));
return this;
@@ -148,7 +148,7 @@ public class HeaderGroupBuilder {
* @return This object (for method chaining).
*/
@FluentSetter
- public HeaderGroupBuilder remove(String name) {
+ public HeaderListBuilder remove(String name) {
for (int i = 0; i < headers.size(); i++) /* See HTTPCORE-361 */
if (headers.get(i).getName().equalsIgnoreCase(name))
headers.remove(i--);
@@ -165,7 +165,7 @@ public class HeaderGroupBuilder {
* @return This object (for method chaining).
*/
@FluentSetter
- public HeaderGroupBuilder update(Header value) {
+ public HeaderListBuilder update(Header value) {
if (value == null)
return this;
@@ -191,7 +191,7 @@ public class HeaderGroupBuilder {
* @return This object (for method chaining).
*/
@FluentSetter
- public HeaderGroupBuilder update(Header...values) {
+ public HeaderListBuilder update(Header...values) {
for (int i = 0; i < values.length; i++) /* See HTTPCORE-361 */
update(values[i]);
return this;
@@ -207,14 +207,14 @@ public class HeaderGroupBuilder {
* @return This object (for method chaining).
*/
@FluentSetter
- public HeaderGroupBuilder update(List<Header> values) {
+ public HeaderListBuilder update(List<Header> values) {
for (int i = 0; i < values.size(); i++) /* See HTTPCORE-361 */
update(values.get(i));
return this;
}
/**
- * Sets all of the headers contained within this group overriding any
existing headers.
+ * Sets all of the headers contained within this list overriding any
existing headers.
*
* <p>
* The headers are added in the order in which they appear in the array.
@@ -223,14 +223,14 @@ public class HeaderGroupBuilder {
* @return This object (for method chaining).
*/
@FluentSetter
- public HeaderGroupBuilder set(Header...values) {
+ public HeaderListBuilder set(Header...values) {
clear();
Collections.addAll(headers, values);
return this;
}
/**
- * Sets all of the headers contained within this group overriding any
existing headers.
+ * Sets all of the headers contained within this list overriding any
existing headers.
*
* <p>
* The headers are added in the order in which they appear in the list.
@@ -239,7 +239,7 @@ public class HeaderGroupBuilder {
* @return This object (for method chaining).
*/
@FluentSetter
- public HeaderGroupBuilder set(List<Header> values) {
+ public HeaderListBuilder set(List<Header> values) {
clear();
headers.addAll(values);
return this;
@@ -255,7 +255,7 @@ public class HeaderGroupBuilder {
* @param values The values to append or replace in this list.
* @return This object (for method chaining).
*/
- public HeaderGroupBuilder appendUnique(Header...values) {
+ public HeaderListBuilder appendUnique(Header...values) {
for (Header h : values) {
boolean replaced = false;
for (ListIterator<Header> li = headers.listIterator();
li.hasNext();) {
@@ -283,7 +283,7 @@ public class HeaderGroupBuilder {
* @param values The values to append or replace in this list.
* @return This object (for method chaining).
*/
- public HeaderGroupBuilder appendUnique(Collection<Header> values) {
+ public HeaderListBuilder appendUnique(Collection<Header> values) {
for (Header h : values) {
boolean replaced = false;
for (ListIterator<Header> li = headers.listIterator();
li.hasNext();) {
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/PartGroup.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/PartList.java
similarity index 72%
rename from
juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/PartGroup.java
rename to
juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/PartList.java
index 6b5e517..fc8a473 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/PartGroup.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/PartList.java
@@ -12,17 +12,17 @@
//
***************************************************************************************************************************
package org.apache.juneau.http.part;
+import static java.util.Collections.*;
+
import java.util.*;
/**
- * An unmodifiable group of HTTP parts.
+ * An unmodifiable list of HTTP parts.
*/
-public class PartGroup {
+public class PartList implements Iterable<Part> {
/** Predefined instance. */
- public static final PartGroup INSTANCE = create().build();
-
- private static final Part[] EMPTY = new Part[] {};
+ public static final PartList EMPTY = create().build();
private final List<Part> parts;
@@ -31,8 +31,8 @@ public class PartGroup {
*
* @return A new builder.
*/
- public static PartGroupBuilder create() {
- return new PartGroupBuilder();
+ public static PartListBuilder create() {
+ return new PartListBuilder();
}
/**
@@ -40,7 +40,7 @@ public class PartGroup {
*
* @param builder The builder containing the settings for this bean.
*/
- public PartGroup(PartGroupBuilder builder) {
+ public PartList(PartListBuilder builder) {
this.parts = new ArrayList<>(builder.parts);
}
@@ -49,7 +49,7 @@ public class PartGroup {
*
* @return A new builder object.
*/
- public PartGroupBuilder builder() {
+ public PartListBuilder builder() {
return create().add(parts);
}
@@ -66,12 +66,9 @@ public class PartGroup {
*
* @return An array containing all matching headers, or an empty array
if none are found.
*/
- public Part[] getParts(final String name) {
- // HTTPCORE-361 : we don't use the for-each syntax, i.e.
- // for (Part header : headers)
- // as that creates an Iterator that needs to be
garbage-collected
+ public List<Part> get(String name) {
List<Part> l = null;
- for (int i = 0; i < parts.size(); i++) {
+ for (int i = 0; i < parts.size(); i++) { // See HTTPCORE-361
Part x = parts.get(i);
if (x.getName().equals(name)) {
if (l == null)
@@ -79,7 +76,7 @@ public class PartGroup {
l.add(x);
}
}
- return l != null ? l.toArray(new Part[l.size()]) : EMPTY;
+ return l == null ? emptyList() : l;
}
/**
@@ -91,11 +88,8 @@ public class PartGroup {
* @param name The header name.
* @return The first matching header, or <jk>null</jk> if not found.
*/
- public Part getFirstPart(String name) {
- // HTTPCORE-361 : we don't use the for-each syntax, i.e.
- // for (Part header : headers)
- // as that creates an Iterator that needs to be
garbage-collected
- for (int i = 0; i < parts.size(); i++) {
+ public Part getFirst(String name) {
+ for (int i = 0; i < parts.size(); i++) { // See HTTPCORE-361
Part x = parts.get(i);
if (x.getName().equals(name))
return x;
@@ -112,7 +106,7 @@ public class PartGroup {
* @param name The header name.
* @return The last matching header, or <jk>null</jk> if not found.
*/
- public Part getLastPart(String name) {
+ public Part getLast(String name) {
for (int i = parts.size() - 1; i >= 0; i--) {
Part x = parts.get(i);
if (x.getName().equals(name))
@@ -122,16 +116,16 @@ public class PartGroup {
}
/**
- * Gets all of the headers contained within this group.
+ * Gets all of the headers contained within this list.
*
- * @return An array containing all the headers within this group, or an
empty array if no headers are present.
+ * @return An array containing all the headers within this list, or an
empty array if no headers are present.
*/
- public List<Part> getAllParts() {
- return Collections.unmodifiableList(parts);
+ public List<Part> getAll() {
+ return unmodifiableList(parts);
}
/**
- * Tests if headers with the given name are contained within this group.
+ * Tests if headers with the given name are contained within this list.
*
* <p>
* Part name comparison is case insensitive.
@@ -139,11 +133,8 @@ public class PartGroup {
* @param name The header name.
* @return <jk>true</jk> if at least one header with the name is
present.
*/
- public boolean containsPart(String name) {
- // HTTPCORE-361 : we don't use the for-each syntax, i.e.
- // for (Part header : headers)
- // as that creates an Iterator that needs to be
garbage-collected
- for (int i = 0; i < parts.size(); i++) {
+ public boolean contains(String name) {
+ for (int i = 0; i < parts.size(); i++) { // See HTTPCORE-361
Part x = parts.get(i);
if (x.getName().equals(name))
return true;
@@ -159,10 +150,15 @@ public class PartGroup {
*
* @return A copy of this object.
*/
- public PartGroup copy() {
+ public PartList copy() {
return builder().build();
}
+ @Override /* Iterable */
+ public Iterator<Part> iterator() {
+ return getAll().iterator();
+ }
+
@Override /* Object */
public String toString() {
return parts.toString();
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/PartGroupBuilder.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/PartListBuilder.java
similarity index 85%
rename from
juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/PartGroupBuilder.java
rename to
juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/PartListBuilder.java
index 8d8893f..20b81ae 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/PartGroupBuilder.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/PartListBuilder.java
@@ -17,25 +17,25 @@ import java.util.*;
import org.apache.juneau.internal.*;
/**
- * Builder for {@link PartGroup} objects.
+ * Builder for {@link PartList} objects.
*/
@FluentSetters
-public class PartGroupBuilder {
+public class PartListBuilder {
final List<Part> parts = new ArrayList<>();
/**
* Constructor.
*/
- public PartGroupBuilder() {}
+ public PartListBuilder() {}
/**
- * Creates a new {@link PartGroup} bean based on the contents of this
builder.
+ * Creates a new {@link PartList} bean based on the contents of this
builder.
*
- * @return A new {@link PartGroup} bean.
+ * @return A new {@link PartList} bean.
*/
- public PartGroup build() {
- return new PartGroup(this);
+ public PartList build() {
+ return new PartList(this);
}
/**
@@ -44,7 +44,7 @@ public class PartGroupBuilder {
* @return This object (for method chaining).
*/
@FluentSetter
- public PartGroupBuilder clear() {
+ public PartListBuilder clear() {
parts.clear();
return this;
}
@@ -56,7 +56,7 @@ public class PartGroupBuilder {
* @return This object (for method chaining).
*/
@FluentSetter
- public PartGroupBuilder add(Part value) {
+ public PartListBuilder add(Part value) {
if (value != null)
parts.add(value);
return this;
@@ -70,7 +70,7 @@ public class PartGroupBuilder {
* @return This object (for method chaining).
*/
@FluentSetter
- public PartGroupBuilder add(String name, String value) {
+ public PartListBuilder add(String name, String value) {
parts.add(new BasicPart(name, value));
return this;
}
@@ -82,7 +82,7 @@ public class PartGroupBuilder {
* @return This object (for method chaining).
*/
@FluentSetter
- public PartGroupBuilder add(Part...values) {
+ public PartListBuilder add(Part...values) {
for (int i = 0; i < values.length; i++) /* See HTTPCORE-361 */
add(values[i]);
return this;
@@ -95,7 +95,7 @@ public class PartGroupBuilder {
* @return This object (for method chaining).
*/
@FluentSetter
- public PartGroupBuilder add(List<Part> values) {
+ public PartListBuilder add(List<Part> values) {
for (int i = 0; i < values.size(); i++) /* See HTTPCORE-361 */
add(values.get(i));
return this;
@@ -108,7 +108,7 @@ public class PartGroupBuilder {
* @return This object (for method chaining).
*/
@FluentSetter
- public PartGroupBuilder remove(Part value) {
+ public PartListBuilder remove(Part value) {
if (value != null)
parts.remove(value);
return this;
@@ -121,7 +121,7 @@ public class PartGroupBuilder {
* @return This object (for method chaining).
*/
@FluentSetter
- public PartGroupBuilder remove(Part...values) {
+ public PartListBuilder remove(Part...values) {
for (int i = 0; i < values.length; i++) /* See HTTPCORE-361 */
remove(values[i]);
return this;
@@ -134,7 +134,7 @@ public class PartGroupBuilder {
* @return This object (for method chaining).
*/
@FluentSetter
- public PartGroupBuilder remove(List<Part> values) {
+ public PartListBuilder remove(List<Part> values) {
for (int i = 0; i < values.size(); i++) /* See HTTPCORE-361 */
remove(values.get(i));
return this;
@@ -147,7 +147,7 @@ public class PartGroupBuilder {
* @return This object (for method chaining).
*/
@FluentSetter
- public PartGroupBuilder remove(String name) {
+ public PartListBuilder remove(String name) {
for (int i = 0; i < parts.size(); i++) /* See HTTPCORE-361 */
if (parts.get(i).getName().equals(name))
parts.remove(i--);
@@ -164,7 +164,7 @@ public class PartGroupBuilder {
* @return This object (for method chaining).
*/
@FluentSetter
- public PartGroupBuilder update(Part value) {
+ public PartListBuilder update(Part value) {
if (value == null)
return this;
@@ -190,7 +190,7 @@ public class PartGroupBuilder {
* @return This object (for method chaining).
*/
@FluentSetter
- public PartGroupBuilder update(Part...values) {
+ public PartListBuilder update(Part...values) {
for (int i = 0; i < values.length; i++) /* See HTTPCORE-361 */
update(values[i]);
return this;
@@ -206,14 +206,14 @@ public class PartGroupBuilder {
* @return This object (for method chaining).
*/
@FluentSetter
- public PartGroupBuilder update(List<Part> values) {
+ public PartListBuilder update(List<Part> values) {
for (int i = 0; i < values.size(); i++) /* See HTTPCORE-361 */
update(values.get(i));
return this;
}
/**
- * Sets all of the headers contained within this group overriding any
existing headers.
+ * Sets all of the headers contained within this list overriding any
existing headers.
*
* <p>
* The headers are added in the order in which they appear in the array.
@@ -222,14 +222,14 @@ public class PartGroupBuilder {
* @return This object (for method chaining).
*/
@FluentSetter
- public PartGroupBuilder set(Part...values) {
+ public PartListBuilder set(Part...values) {
clear();
Collections.addAll(parts, values);
return this;
}
/**
- * Sets all of the headers contained within this group overriding any
existing headers.
+ * Sets all of the headers contained within this list overriding any
existing headers.
*
* <p>
* The headers are added in the order in which they appear in the list.
@@ -238,7 +238,7 @@ public class PartGroupBuilder {
* @return This object (for method chaining).
*/
@FluentSetter
- public PartGroupBuilder set(List<Part> values) {
+ public PartListBuilder set(List<Part> values) {
clear();
parts.addAll(values);
return this;
@@ -254,7 +254,7 @@ public class PartGroupBuilder {
* @param values The values to append or replace in this list.
* @return This object (for method chaining).
*/
- public PartGroupBuilder appendUnique(Part...values) {
+ public PartListBuilder appendUnique(Part...values) {
for (Part h : values) {
boolean replaced = false;
for (ListIterator<Part> li = parts.listIterator();
li.hasNext();) {
@@ -282,7 +282,7 @@ public class PartGroupBuilder {
* @param values The values to append or replace in this list.
* @return This object (for method chaining).
*/
- public PartGroupBuilder appendUnique(Collection<Part> values) {
+ public PartListBuilder appendUnique(Collection<Part> values) {
for (Part h : values) {
boolean replaced = false;
for (ListIterator<Part> li = parts.listIterator();
li.hasNext();) {
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/response/BasicHttpException.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/response/BasicHttpException.java
index c870d17..279abdd 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/response/BasicHttpException.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/response/BasicHttpException.java
@@ -48,10 +48,11 @@ import org.apache.juneau.http.header.*;
public class BasicHttpException extends BasicRuntimeException implements
HttpResponse {
private static final long serialVersionUID = 1L;
+ private static final Header[] EMPTY_HEADERS = new Header[0];
- HeaderGroup headerGroup;
+ HeaderList headerList;
BasicStatusLine statusLine;
- HeaderGroupBuilder headerGroupBuilder;
+ HeaderListBuilder headerListBuilder;
BasicStatusLineBuilder statusLineBuilder;
HttpEntity body;
@@ -72,7 +73,7 @@ public class BasicHttpException extends BasicRuntimeException
implements HttpRes
*/
public BasicHttpException(HttpExceptionBuilder<?> builder) {
super(builder);
- headerGroup = builder.headerGroup();
+ headerList = builder.headerList();
statusLine = builder.statusLine();
body = builder.body;
}
@@ -254,73 +255,75 @@ public class BasicHttpException extends
BasicRuntimeException implements HttpRes
@Override /* HttpMessage */
public boolean containsHeader(String name) {
- return headerGroup().containsHeader(name);
+ return headerList().contains(name);
}
@Override /* HttpMessage */
public Header[] getHeaders(String name) {
- return headerGroup().getHeaders(name);
+ List<Header> l = headerList().get(name);
+ return l.isEmpty() ? EMPTY_HEADERS : l.toArray(new
Header[l.size()]);
}
@Override /* HttpMessage */
public Header getFirstHeader(String name) {
- return headerGroup().getFirstHeader(name);
+ return headerList().getFirst(name);
}
@Override /* HttpMessage */
public Header getLastHeader(String name) {
- return headerGroup().getLastHeader(name);
+ return headerList().getLast(name);
}
@Override /* HttpMessage */
@ResponseHeader("*")
public Header[] getAllHeaders() {
- return headerGroup().getAllHeaders().toArray(new Header[0]);
+ List<Header> l = headerList().getAll();
+ return l.isEmpty() ? EMPTY_HEADERS : l.toArray(new
Header[l.size()]);
}
@Override /* HttpMessage */
public void addHeader(Header value) {
- headerGroupBuilder().add(value).build();
+ headerListBuilder().add(value).build();
}
@Override /* HttpMessage */
public void addHeader(String name, String value) {
- headerGroupBuilder().add(new BasicHeader(name, value)).build();
+ headerListBuilder().add(new BasicHeader(name, value)).build();
}
@Override /* HttpMessage */
public void setHeader(Header value) {
- headerGroupBuilder().update(value).build();
+ headerListBuilder().update(value).build();
}
@Override /* HttpMessage */
public void setHeader(String name, String value) {
- headerGroupBuilder().update(new BasicHeader(name,
value)).build();
+ headerListBuilder().update(new BasicHeader(name,
value)).build();
}
@Override /* HttpMessage */
public void setHeaders(Header[] values) {
- headerGroupBuilder().set(values).build();
+ headerListBuilder().set(values).build();
}
@Override /* HttpMessage */
public void removeHeader(Header value) {
- headerGroupBuilder().remove(value).build();
+ headerListBuilder().remove(value).build();
}
@Override /* HttpMessage */
public void removeHeaders(String name) {
- headerGroupBuilder().remove(name).build();
+ headerListBuilder().remove(name).build();
}
@Override /* HttpMessage */
public HeaderIterator headerIterator() {
- return headerGroup().iterator();
+ return headerList().headerIterator();
}
@Override /* HttpMessage */
public HeaderIterator headerIterator(String name) {
- return headerGroup().iterator(name);
+ return headerList().headerIterator(name);
}
@SuppressWarnings("deprecation")
@@ -402,12 +405,12 @@ public class BasicHttpException extends
BasicRuntimeException implements HttpRes
return statusLine;
}
- private HeaderGroup headerGroup() {
- if (headerGroup == null) {
- headerGroup = headerGroupBuilder.build();
- headerGroupBuilder = null;
+ private HeaderList headerList() {
+ if (headerList == null) {
+ headerList = headerListBuilder.build();
+ headerListBuilder = null;
}
- return headerGroup;
+ return headerList;
}
private BasicStatusLineBuilder statusLineBuilder() {
@@ -419,12 +422,12 @@ public class BasicHttpException extends
BasicRuntimeException implements HttpRes
return statusLineBuilder;
}
- private HeaderGroupBuilder headerGroupBuilder() {
+ private HeaderListBuilder headerListBuilder() {
assertModifiable();
- if (headerGroupBuilder == null) {
- headerGroupBuilder = headerGroup.builder();
- headerGroup = null;
+ if (headerListBuilder == null) {
+ headerListBuilder = headerList.builder();
+ headerList = null;
}
- return headerGroupBuilder;
+ return headerListBuilder;
}
}
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/response/BasicHttpResponse.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/response/BasicHttpResponse.java
index 416e85a..20039f3 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/response/BasicHttpResponse.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/response/BasicHttpResponse.java
@@ -43,9 +43,11 @@ import org.apache.juneau.http.header.*;
@BeanIgnore
public class BasicHttpResponse implements HttpResponse {
- HeaderGroup headerGroup;
+ private static final Header[] EMPTY_HEADERS = new Header[0];
+
+ HeaderList headerList;
BasicStatusLine statusLine;
- HeaderGroupBuilder headerGroupBuilder;
+ HeaderListBuilder headerListBuilder;
BasicStatusLineBuilder statusLineBuilder;
HttpEntity body;
final boolean unmodifiable;
@@ -66,7 +68,7 @@ public class BasicHttpResponse implements HttpResponse {
* @param builder The builder containing the arguments for this bean.
*/
public BasicHttpResponse(HttpResponseBuilder<?> builder) {
- headerGroup = builder.headerGroup();
+ headerList = builder.headerList();
statusLine = builder.statusLine();
body = builder.body;
unmodifiable = builder.unmodifiable;
@@ -119,7 +121,7 @@ public class BasicHttpResponse implements HttpResponse {
@Override /* Object */
public String toString() {
- StringBuilder sb = new
StringBuilder().append(statusLine()).append(' ').append(headerGroup());
+ StringBuilder sb = new
StringBuilder().append(statusLine()).append(' ').append(headerList());
if (body != null)
sb.append(' ').append(body);
return sb.toString();
@@ -132,73 +134,75 @@ public class BasicHttpResponse implements HttpResponse {
@Override /* HttpMessage */
public boolean containsHeader(String name) {
- return headerGroup().containsHeader(name);
+ return headerList().contains(name);
}
@Override /* HttpMessage */
public Header[] getHeaders(String name) {
- return headerGroup().getHeaders(name);
+ List<Header> l = headerList().get(name);
+ return l.isEmpty() ? EMPTY_HEADERS : l.toArray(new
Header[l.size()]);
}
@Override /* HttpMessage */
public Header getFirstHeader(String name) {
- return headerGroup().getFirstHeader(name);
+ return headerList().getFirst(name);
}
@Override /* HttpMessage */
public Header getLastHeader(String name) {
- return headerGroup().getLastHeader(name);
+ return headerList().getLast(name);
}
@Override /* HttpMessage */
@ResponseHeader("*")
public Header[] getAllHeaders() {
- return headerGroup().getAllHeaders().toArray(new Header[0]);
+ List<Header> l = headerList().getAll();
+ return l.isEmpty() ? EMPTY_HEADERS : l.toArray(new
Header[l.size()]);
}
@Override /* HttpMessage */
public void addHeader(Header value) {
- headerGroupBuilder().add(value).build();
+ headerListBuilder().add(value).build();
}
@Override /* HttpMessage */
public void addHeader(String name, String value) {
- headerGroupBuilder().add(new BasicHeader(name, value)).build();
+ headerListBuilder().add(new BasicHeader(name, value)).build();
}
@Override /* HttpMessage */
public void setHeader(Header value) {
- headerGroupBuilder().update(value).build();
+ headerListBuilder().update(value).build();
}
@Override /* HttpMessage */
public void setHeader(String name, String value) {
- headerGroupBuilder().update(new BasicHeader(name,
value)).build();
+ headerListBuilder().update(new BasicHeader(name,
value)).build();
}
@Override /* HttpMessage */
public void setHeaders(Header[] values) {
- headerGroupBuilder().set(values).build();
+ headerListBuilder().set(values).build();
}
@Override /* HttpMessage */
public void removeHeader(Header value) {
- headerGroupBuilder().remove(value).build();
+ headerListBuilder().remove(value).build();
}
@Override /* HttpMessage */
public void removeHeaders(String name) {
- headerGroupBuilder().remove(name).build();
+ headerListBuilder().remove(name).build();
}
@Override /* HttpMessage */
public HeaderIterator headerIterator() {
- return headerGroup().iterator();
+ return headerList().headerIterator();
}
@Override /* HttpMessage */
public HeaderIterator headerIterator(String name) {
- return headerGroup().iterator(name);
+ return headerList().headerIterator(name);
}
@SuppressWarnings("deprecation")
@@ -280,12 +284,12 @@ public class BasicHttpResponse implements HttpResponse {
return statusLine;
}
- private HeaderGroup headerGroup() {
- if (headerGroup == null) {
- headerGroup = headerGroupBuilder.build();
- headerGroupBuilder = null;
+ private HeaderList headerList() {
+ if (headerList == null) {
+ headerList = headerListBuilder.build();
+ headerListBuilder = null;
}
- return headerGroup;
+ return headerList;
}
private BasicStatusLineBuilder statusLineBuilder() {
@@ -297,13 +301,13 @@ public class BasicHttpResponse implements HttpResponse {
return statusLineBuilder;
}
- private HeaderGroupBuilder headerGroupBuilder() {
+ private HeaderListBuilder headerListBuilder() {
assertModifiable();
- if (headerGroupBuilder == null) {
- headerGroupBuilder = headerGroup.builder();
- headerGroup = null;
+ if (headerListBuilder == null) {
+ headerListBuilder = headerList.builder();
+ headerList = null;
}
- return headerGroupBuilder;
+ return headerListBuilder;
}
/**
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/response/HttpExceptionBuilder.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/response/HttpExceptionBuilder.java
index 462c8c6..316ba80 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/response/HttpExceptionBuilder.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/response/HttpExceptionBuilder.java
@@ -32,9 +32,9 @@ import org.apache.juneau.internal.*;
public class HttpExceptionBuilder<T extends BasicHttpException> extends
BasicRuntimeExceptionBuilder {
BasicStatusLine statusLine;
- HeaderGroup headerGroup = HeaderGroup.INSTANCE;
+ HeaderList headerList = HeaderList.EMPTY;
BasicStatusLineBuilder statusLineBuilder;
- HeaderGroupBuilder headerGroupBuilder;
+ HeaderListBuilder headerListBuilder;
HttpEntity body;
private final Class<? extends BasicHttpException> implClass;
@@ -88,7 +88,7 @@ public class HttpExceptionBuilder<T extends
BasicHttpException> extends BasicRun
public HttpExceptionBuilder<T> copyFrom(BasicHttpException value) {
super.copyFrom(value);
statusLine = value.statusLine;
- headerGroup = value.headerGroup;
+ headerList = value.headerList;
body = value.body;
return this;
}
@@ -99,12 +99,12 @@ public class HttpExceptionBuilder<T extends
BasicHttpException> extends BasicRun
return statusLine;
}
- HeaderGroup headerGroup() {
- if (headerGroupBuilder != null)
- return headerGroupBuilder.build();
- if (headerGroup == null)
- return HeaderGroup.INSTANCE;
- return headerGroup;
+ HeaderList headerList() {
+ if (headerListBuilder != null)
+ return headerListBuilder.build();
+ if (headerList == null)
+ return HeaderList.EMPTY;
+ return headerList;
}
//-----------------------------------------------------------------------------------------------------------------
@@ -217,9 +217,9 @@ public class HttpExceptionBuilder<T extends
BasicHttpException> extends BasicRun
* @return This object (for method chaining).
*/
@FluentSetter
- public HttpExceptionBuilder<T> headerGroup(HeaderGroup value) {
- headerGroup = value;
- headerGroupBuilder = null;
+ public HttpExceptionBuilder<T> headerList(HeaderList value) {
+ headerList = value;
+ headerListBuilder = null;
return this;
}
@@ -229,7 +229,7 @@ public class HttpExceptionBuilder<T extends
BasicHttpException> extends BasicRun
* @return This object (for method chaining).
*/
public HttpExceptionBuilder<T> clearHeaders() {
- headerGroupBuilder().clear();
+ headerListBuilder().clear();
return this;
}
@@ -240,7 +240,7 @@ public class HttpExceptionBuilder<T extends
BasicHttpException> extends BasicRun
* @return This object (for method chaining).
*/
public HttpExceptionBuilder<T> header(Header value) {
- headerGroupBuilder().add(value);
+ headerListBuilder().add(value);
return this;
}
@@ -252,7 +252,7 @@ public class HttpExceptionBuilder<T extends
BasicHttpException> extends BasicRun
* @return This object (for method chaining).
*/
public HttpExceptionBuilder<T> header(String name, String value) {
- headerGroupBuilder().add(name, value);
+ headerListBuilder().add(name, value);
return this;
}
@@ -263,7 +263,7 @@ public class HttpExceptionBuilder<T extends
BasicHttpException> extends BasicRun
* @return This object (for method chaining).
*/
public HttpExceptionBuilder<T> headers(Header...values) {
- headerGroupBuilder().add(values);
+ headerListBuilder().add(values);
return this;
}
@@ -274,7 +274,7 @@ public class HttpExceptionBuilder<T extends
BasicHttpException> extends BasicRun
* @return This object (for method chaining).
*/
public HttpExceptionBuilder<T> headers(List<Header> values) {
- headerGroupBuilder().add(values);
+ headerListBuilder().add(values);
return this;
}
@@ -285,7 +285,7 @@ public class HttpExceptionBuilder<T extends
BasicHttpException> extends BasicRun
* @return This object (for method chaining).
*/
public HttpExceptionBuilder<T> removeHeader(Header value) {
- headerGroupBuilder().remove(value);
+ headerListBuilder().remove(value);
return this;
}
@@ -296,7 +296,7 @@ public class HttpExceptionBuilder<T extends
BasicHttpException> extends BasicRun
* @return This object (for method chaining).
*/
public HttpExceptionBuilder<T> removeHeaders(Header...values) {
- headerGroupBuilder().remove(values);
+ headerListBuilder().remove(values);
return this;
}
@@ -307,7 +307,7 @@ public class HttpExceptionBuilder<T extends
BasicHttpException> extends BasicRun
* @return This object (for method chaining).
*/
public HttpExceptionBuilder<T> removeHeaders(List<Header> values) {
- headerGroupBuilder().remove(values);
+ headerListBuilder().remove(values);
return this;
}
@@ -321,7 +321,7 @@ public class HttpExceptionBuilder<T extends
BasicHttpException> extends BasicRun
* @return This object (for method chaining).
*/
public HttpExceptionBuilder<T> updateHeader(Header value) {
- headerGroupBuilder().update(value);
+ headerListBuilder().update(value);
return this;
}
@@ -335,7 +335,7 @@ public class HttpExceptionBuilder<T extends
BasicHttpException> extends BasicRun
* @return This object (for method chaining).
*/
public HttpExceptionBuilder<T> updateHeaders(Header...values) {
- headerGroupBuilder().update(values);
+ headerListBuilder().update(values);
return this;
}
@@ -349,7 +349,7 @@ public class HttpExceptionBuilder<T extends
BasicHttpException> extends BasicRun
* @return This object (for method chaining).
*/
public HttpExceptionBuilder<T> updateHeaders(List<Header> values) {
- headerGroupBuilder().update(values);
+ headerListBuilder().update(values);
return this;
}
@@ -363,7 +363,7 @@ public class HttpExceptionBuilder<T extends
BasicHttpException> extends BasicRun
* @return This object (for method chaining).
*/
public HttpExceptionBuilder<T> setHeaders(Header...values) {
- headerGroupBuilder().set(values);
+ headerListBuilder().set(values);
return this;
}
@@ -377,7 +377,7 @@ public class HttpExceptionBuilder<T extends
BasicHttpException> extends BasicRun
* @return This object (for method chaining).
*/
public HttpExceptionBuilder<T> setHeaders(List<Header> values) {
- headerGroupBuilder().set(values);
+ headerListBuilder().set(values);
return this;
}
@@ -421,12 +421,12 @@ public class HttpExceptionBuilder<T extends
BasicHttpException> extends BasicRun
return statusLineBuilder;
}
- private HeaderGroupBuilder headerGroupBuilder() {
- if (headerGroupBuilder == null) {
- headerGroupBuilder = headerGroup == null ?
HeaderGroup.create() : headerGroup.builder();
- headerGroup = null;
+ private HeaderListBuilder headerListBuilder() {
+ if (headerListBuilder == null) {
+ headerListBuilder = headerList == null ?
HeaderList.create() : headerList.builder();
+ headerList = null;
}
- return headerGroupBuilder;
+ return headerListBuilder;
}
// <FluentSetters>
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/response/HttpResponseBuilder.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/response/HttpResponseBuilder.java
index 72856f8..3c43891 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/response/HttpResponseBuilder.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/response/HttpResponseBuilder.java
@@ -32,9 +32,9 @@ import org.apache.juneau.internal.*;
public class HttpResponseBuilder<T extends BasicHttpResponse> {
BasicStatusLine statusLine;
- HeaderGroup headerGroup = HeaderGroup.INSTANCE;
+ HeaderList headerList = HeaderList.EMPTY;
BasicStatusLineBuilder statusLineBuilder;
- HeaderGroupBuilder headerGroupBuilder;
+ HeaderListBuilder headerListBuilder;
HttpEntity body;
boolean unmodifiable;
@@ -85,7 +85,7 @@ public class HttpResponseBuilder<T extends BasicHttpResponse>
{
*/
public HttpResponseBuilder<T> copyFrom(BasicHttpResponse value) {
statusLine = value.statusLine;
- headerGroup = value.headerGroup;
+ headerList = value.headerList;
body = value.body;
return this;
}
@@ -96,12 +96,12 @@ public class HttpResponseBuilder<T extends
BasicHttpResponse> {
return statusLine;
}
- HeaderGroup headerGroup() {
- if (headerGroupBuilder != null)
- return headerGroupBuilder.build();
- if (headerGroup == null)
- return HeaderGroup.INSTANCE;
- return headerGroup;
+ HeaderList headerList() {
+ if (headerListBuilder != null)
+ return headerListBuilder.build();
+ if (headerList == null)
+ return HeaderList.EMPTY;
+ return headerList;
}
/**
@@ -225,9 +225,9 @@ public class HttpResponseBuilder<T extends
BasicHttpResponse> {
* @return This object (for method chaining).
*/
@FluentSetter
- public HttpResponseBuilder<T> headerGroup(HeaderGroup value) {
- headerGroup = value;
- headerGroupBuilder = null;
+ public HttpResponseBuilder<T> headerList(HeaderList value) {
+ headerList = value;
+ headerListBuilder = null;
return this;
}
@@ -237,7 +237,7 @@ public class HttpResponseBuilder<T extends
BasicHttpResponse> {
* @return This object (for method chaining).
*/
public HttpResponseBuilder<T> clearHeaders() {
- headerGroupBuilder().clear();
+ headerListBuilder().clear();
return this;
}
@@ -248,7 +248,7 @@ public class HttpResponseBuilder<T extends
BasicHttpResponse> {
* @return This object (for method chaining).
*/
public HttpResponseBuilder<T> header(Header value) {
- headerGroupBuilder().add(value);
+ headerListBuilder().add(value);
return this;
}
@@ -260,7 +260,7 @@ public class HttpResponseBuilder<T extends
BasicHttpResponse> {
* @return This object (for method chaining).
*/
public HttpResponseBuilder<T> header(String name, String value) {
- headerGroupBuilder().add(name, value);
+ headerListBuilder().add(name, value);
return this;
}
@@ -271,7 +271,7 @@ public class HttpResponseBuilder<T extends
BasicHttpResponse> {
* @return This object (for method chaining).
*/
public HttpResponseBuilder<T> headers(Header...values) {
- headerGroupBuilder().add(values);
+ headerListBuilder().add(values);
return this;
}
@@ -282,7 +282,7 @@ public class HttpResponseBuilder<T extends
BasicHttpResponse> {
* @return This object (for method chaining).
*/
public HttpResponseBuilder<T> headers(List<Header> values) {
- headerGroupBuilder().add(values);
+ headerListBuilder().add(values);
return this;
}
@@ -293,7 +293,7 @@ public class HttpResponseBuilder<T extends
BasicHttpResponse> {
* @return This object (for method chaining).
*/
public HttpResponseBuilder<T> removeHeader(Header value) {
- headerGroupBuilder().remove(value);
+ headerListBuilder().remove(value);
return this;
}
@@ -304,7 +304,7 @@ public class HttpResponseBuilder<T extends
BasicHttpResponse> {
* @return This object (for method chaining).
*/
public HttpResponseBuilder<T> removeHeaders(Header...values) {
- headerGroupBuilder().remove(values);
+ headerListBuilder().remove(values);
return this;
}
@@ -315,7 +315,7 @@ public class HttpResponseBuilder<T extends
BasicHttpResponse> {
* @return This object (for method chaining).
*/
public HttpResponseBuilder<T> removeHeaders(List<Header> values) {
- headerGroupBuilder().remove(values);
+ headerListBuilder().remove(values);
return this;
}
@@ -329,7 +329,7 @@ public class HttpResponseBuilder<T extends
BasicHttpResponse> {
* @return This object (for method chaining).
*/
public HttpResponseBuilder<T> updateHeader(Header value) {
- headerGroupBuilder().update(value);
+ headerListBuilder().update(value);
return this;
}
@@ -343,7 +343,7 @@ public class HttpResponseBuilder<T extends
BasicHttpResponse> {
* @return This object (for method chaining).
*/
public HttpResponseBuilder<T> updateHeaders(Header...values) {
- headerGroupBuilder().update(values);
+ headerListBuilder().update(values);
return this;
}
@@ -357,7 +357,7 @@ public class HttpResponseBuilder<T extends
BasicHttpResponse> {
* @return This object (for method chaining).
*/
public HttpResponseBuilder<T> updateHeaders(List<Header> values) {
- headerGroupBuilder().update(values);
+ headerListBuilder().update(values);
return this;
}
@@ -371,7 +371,7 @@ public class HttpResponseBuilder<T extends
BasicHttpResponse> {
* @return This object (for method chaining).
*/
public HttpResponseBuilder<T> setHeaders(Header...values) {
- headerGroupBuilder().set(values);
+ headerListBuilder().set(values);
return this;
}
@@ -385,7 +385,7 @@ public class HttpResponseBuilder<T extends
BasicHttpResponse> {
* @return This object (for method chaining).
*/
public HttpResponseBuilder<T> setHeaders(List<Header> values) {
- headerGroupBuilder().set(values);
+ headerListBuilder().set(values);
return this;
}
@@ -453,12 +453,12 @@ public class HttpResponseBuilder<T extends
BasicHttpResponse> {
return statusLineBuilder;
}
- private HeaderGroupBuilder headerGroupBuilder() {
- if (headerGroupBuilder == null) {
- headerGroupBuilder = headerGroup == null ?
HeaderGroup.create() : headerGroup.builder();
- headerGroup = null;
+ private HeaderListBuilder headerListBuilder() {
+ if (headerListBuilder == null) {
+ headerListBuilder = headerList == null ?
HeaderList.create() : headerList.builder();
+ headerList = null;
}
- return headerGroupBuilder;
+ return headerListBuilder;
}
// <FluentSetters>
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
index f39260a..aa7e8ba 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
@@ -3366,7 +3366,7 @@ public class RestContext extends BeanContext {
private final List<MediaType>
consumes,
produces;
- private final HeaderGroup defaultRequestHeaders, defaultResponseHeaders;
+ private final HeaderList defaultRequestHeaders, defaultResponseHeaders;
private final List<NamedAttribute> defaultRequestAttributes;
private final List<ResponseHandler> responseHandlers;
private final Messages messages;
@@ -5152,16 +5152,16 @@ public class RestContext extends BeanContext {
* @return The default request headers for this REST object.
* @throws Exception If stack trace store could not be instantiated.
*/
- protected HeaderGroupBuilder createDefaultRequestHeaders(Object
resource, ContextProperties properties, BeanStore beanStore) throws Exception {
+ protected HeaderListBuilder createDefaultRequestHeaders(Object
resource, ContextProperties properties, BeanStore beanStore) throws Exception {
- HeaderGroupBuilder x = HeaderGroup.create();
+ HeaderListBuilder x = HeaderList.create();
x.appendUnique(properties.getInstanceArray(REST_defaultRequestHeaders,
org.apache.http.Header.class, beanStore).orElse(new org.apache.http.Header[0]));
x = BeanStore
.of(beanStore, resource)
- .addBean(HeaderGroupBuilder.class, x)
- .beanCreateMethodFinder(HeaderGroupBuilder.class,
resource)
+ .addBean(HeaderListBuilder.class, x)
+ .beanCreateMethodFinder(HeaderListBuilder.class,
resource)
.find("createDefaultRequestHeaders")
.withDefault(x)
.run();
@@ -5183,16 +5183,16 @@ public class RestContext extends BeanContext {
* @return The default response headers for this REST object.
* @throws Exception If stack trace store could not be instantiated.
*/
- protected HeaderGroupBuilder createDefaultResponseHeaders(Object
resource, ContextProperties properties, BeanStore beanStore) throws Exception {
+ protected HeaderListBuilder createDefaultResponseHeaders(Object
resource, ContextProperties properties, BeanStore beanStore) throws Exception {
- HeaderGroupBuilder x = HeaderGroup.create();
+ HeaderListBuilder x = HeaderList.create();
x.appendUnique(properties.getInstanceArray(REST_defaultResponseHeaders,
org.apache.http.Header.class, beanStore).orElse(new org.apache.http.Header[0]));
x = BeanStore
.of(beanStore, resource)
- .addBean(HeaderGroupBuilder.class, x)
- .beanCreateMethodFinder(HeaderGroupBuilder.class,
resource)
+ .addBean(HeaderListBuilder.class, x)
+ .beanCreateMethodFinder(HeaderListBuilder.class,
resource)
.find("createDefaultResponseHeaders")
.withDefault(x)
.run();
@@ -6308,7 +6308,7 @@ public class RestContext extends BeanContext {
* The default request headers for this resource in an
unmodifiable list.
* <br>Never <jk>null</jk>.
*/
- public HeaderGroup getDefaultRequestHeaders() {
+ public HeaderList getDefaultRequestHeaders() {
return defaultRequestHeaders;
}
@@ -6338,7 +6338,7 @@ public class RestContext extends BeanContext {
* The default response headers for this resource in an
unmodifiable list.
* <br>Never <jk>null</jk>.
*/
- public HeaderGroup getDefaultResponseHeaders() {
+ public HeaderList getDefaultResponseHeaders() {
return defaultResponseHeaders;
}
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOperationContext.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOperationContext.java
index d6b9491..47328d9 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOperationContext.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOperationContext.java
@@ -661,8 +661,8 @@ public class RestOperationContext extends BeanContext
implements Comparable<Rest
private final HttpPartSerializer partSerializer;
private final HttpPartParser partParser;
private final JsonSchemaGenerator jsonSchemaGenerator;
- private final HeaderGroup defaultRequestHeaders, defaultResponseHeaders;
- private final PartGroup defaultRequestQuery, defaultRequestFormData;
+ private final HeaderList defaultRequestHeaders, defaultResponseHeaders;
+ private final PartList defaultRequestQuery, defaultRequestFormData;
private final List<NamedAttribute> defaultRequestAttributes;
private final Charset defaultCharset;
private final long maxInput;
@@ -1350,11 +1350,11 @@ public class RestOperationContext extends BeanContext
implements Comparable<Rest
* @return The default request headers for this method.
* @throws Exception If default request headers could not be
instantiated.
*/
- protected HeaderGroupBuilder createDefaultRequestHeaders(Object
resource, ContextProperties properties, BeanStore beanStore, Method method,
RestContext context) throws Exception {
+ protected HeaderListBuilder createDefaultRequestHeaders(Object
resource, ContextProperties properties, BeanStore beanStore, Method method,
RestContext context) throws Exception {
- HeaderGroupBuilder x = HeaderGroup.create();
+ HeaderListBuilder x = HeaderList.create();
-
x.appendUnique(context.getDefaultRequestHeaders().getAllHeaders());
+ x.appendUnique(context.getDefaultRequestHeaders().getAll());
x.appendUnique(properties.getInstanceArray(RESTOP_defaultRequestHeaders,
org.apache.http.Header.class, beanStore).orElse(new org.apache.http.Header[0]));
@@ -1376,8 +1376,8 @@ public class RestOperationContext extends BeanContext
implements Comparable<Rest
x = BeanStore
.of(beanStore, resource)
- .addBean(HeaderGroupBuilder.class, x)
- .beanCreateMethodFinder(HeaderGroupBuilder.class,
resource)
+ .addBean(HeaderListBuilder.class, x)
+ .beanCreateMethodFinder(HeaderListBuilder.class,
resource)
.find("createDefaultRequestHeaders", Method.class)
.withDefault(x)
.run();
@@ -1396,18 +1396,18 @@ public class RestOperationContext extends BeanContext
implements Comparable<Rest
* @return The default request headers for this method.
* @throws Exception If default request headers could not be
instantiated.
*/
- protected HeaderGroupBuilder createDefaultResponseHeaders(Object
resource, ContextProperties properties, BeanStore beanStore, Method method,
RestContext context) throws Exception {
+ protected HeaderListBuilder createDefaultResponseHeaders(Object
resource, ContextProperties properties, BeanStore beanStore, Method method,
RestContext context) throws Exception {
- HeaderGroupBuilder x = HeaderGroup.create();
+ HeaderListBuilder x = HeaderList.create();
-
x.appendUnique(context.getDefaultResponseHeaders().getAllHeaders());
+ x.appendUnique(context.getDefaultResponseHeaders().getAll());
x.appendUnique(properties.getInstanceArray(RESTOP_defaultResponseHeaders,
org.apache.http.Header.class, beanStore).orElse(new org.apache.http.Header[0]));
x = BeanStore
.of(beanStore, resource)
- .addBean(HeaderGroupBuilder.class, x)
- .beanCreateMethodFinder(HeaderGroupBuilder.class,
resource)
+ .addBean(HeaderListBuilder.class, x)
+ .beanCreateMethodFinder(HeaderListBuilder.class,
resource)
.find("createDefaultResponseHeaders", Method.class)
.withDefault(x)
.run();
@@ -1454,9 +1454,9 @@ public class RestOperationContext extends BeanContext
implements Comparable<Rest
* @return The default request query parameters for this method.
* @throws Exception If default request query parameters could not be
instantiated.
*/
- protected PartGroupBuilder createDefaultRequestQuery(Object resource,
ContextProperties properties, BeanStore beanStore, Method method) throws
Exception {
+ protected PartListBuilder createDefaultRequestQuery(Object resource,
ContextProperties properties, BeanStore beanStore, Method method) throws
Exception {
- PartGroupBuilder x = PartGroup.create();
+ PartListBuilder x = PartList.create();
x.appendUnique(properties.getInstanceArray(RESTOP_defaultQuery,
Part.class, beanStore).orElse(new Part[0]));
@@ -1478,8 +1478,8 @@ public class RestOperationContext extends BeanContext
implements Comparable<Rest
x = BeanStore
.of(beanStore, resource)
- .addBean(PartGroupBuilder.class, x)
- .beanCreateMethodFinder(PartGroupBuilder.class,
resource)
+ .addBean(PartListBuilder.class, x)
+ .beanCreateMethodFinder(PartListBuilder.class, resource)
.find("createDefaultRequestQuery", Method.class)
.thenFind("createDefaultRequestQuery")
.withDefault(x)
@@ -1498,9 +1498,9 @@ public class RestOperationContext extends BeanContext
implements Comparable<Rest
* @return The default request form-data parameters for this method.
* @throws Exception If default request form-data parameters could not
be instantiated.
*/
- protected PartGroupBuilder createDefaultRequestFormData(Object
resource, ContextProperties properties, BeanStore beanStore, Method method)
throws Exception {
+ protected PartListBuilder createDefaultRequestFormData(Object resource,
ContextProperties properties, BeanStore beanStore, Method method) throws
Exception {
- PartGroupBuilder x = PartGroup.create();
+ PartListBuilder x = PartList.create();
x.appendUnique(properties.getInstanceArray(RESTOP_defaultFormData, Part.class,
beanStore).orElse(new Part[0]));
@@ -1522,8 +1522,8 @@ public class RestOperationContext extends BeanContext
implements Comparable<Rest
x = BeanStore
.of(beanStore, resource)
- .addBean(PartGroupBuilder.class, x)
- .beanCreateMethodFinder(PartGroupBuilder.class,
resource)
+ .addBean(PartListBuilder.class, x)
+ .beanCreateMethodFinder(PartListBuilder.class, resource)
.find("createDefaultRequestFormData", Method.class)
.thenFind("createDefaultRequestFormData")
.withDefault(x)
@@ -1695,7 +1695,7 @@ public class RestOperationContext extends BeanContext
implements Comparable<Rest
*
* @return The default request headers. Never <jk>null</jk>.
*/
- public HeaderGroup getDefaultRequestHeaders() {
+ public HeaderList getDefaultRequestHeaders() {
return defaultRequestHeaders;
}
@@ -1704,7 +1704,7 @@ public class RestOperationContext extends BeanContext
implements Comparable<Rest
*
* @return The default response headers. Never <jk>null</jk>.
*/
- public HeaderGroup getDefaultResponseHeaders() {
+ public HeaderList getDefaultResponseHeaders() {
return defaultResponseHeaders;
}
@@ -1713,7 +1713,7 @@ public class RestOperationContext extends BeanContext
implements Comparable<Rest
*
* @return The default request query parameters. Never <jk>null</jk>.
*/
- public PartGroup getDefaultRequestQuery() {
+ public PartList getDefaultRequestQuery() {
return defaultRequestQuery;
}
@@ -1722,7 +1722,7 @@ public class RestOperationContext extends BeanContext
implements Comparable<Rest
*
* @return The default form data parameters. Never <jk>null</jk>.
*/
- public PartGroup getDefaultRequestFormData() {
+ public PartList getDefaultRequestFormData() {
return defaultRequestFormData;
}
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 ab676ca..09de6f0 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
@@ -188,12 +188,12 @@ public final class RestRequest {
pathParams.parser(partParserSession);
queryParams
-
.addDefault(opContext.getDefaultRequestQuery().getAllParts())
+ .addDefault(opContext.getDefaultRequestQuery().getAll())
.parser(partParserSession);
headers
-
.addDefault(opContext.getDefaultRequestHeaders().getAllHeaders())
-
.addDefault(context.getDefaultRequestHeaders().getAllHeaders())
+
.addDefault(opContext.getDefaultRequestHeaders().getAll())
+ .addDefault(context.getDefaultRequestHeaders().getAll())
.parser(partParserSession);
body
@@ -1169,7 +1169,7 @@ public final class RestRequest {
try {
if (formParams == null)
formParams = new RequestFormParams(this,
true).parser(partParserSession);
-
formParams.addDefault(opContext.getDefaultRequestFormData().getAllParts());
+
formParams.addDefault(opContext.getDefaultRequestFormData().getAll());
return formParams;
} catch (Exception e) {
throw new InternalServerError(e);
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestResponse.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestResponse.java
index 03897b0..326dc6f 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestResponse.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestResponse.java
@@ -110,9 +110,9 @@ public final class RestResponse {
}
}
- for (Header e :
request.getContext().getDefaultResponseHeaders().getAllHeaders())
+ for (Header e :
request.getContext().getDefaultResponseHeaders().getAll())
setHeaderSafe(e.getName(), stringify(e.getValue()));
- for (Header e :
opContext.getDefaultResponseHeaders().getAllHeaders())
+ for (Header e : opContext.getDefaultResponseHeaders().getAll())
setHeaderSafe(e.getName(), stringify(e.getValue()));
if (charset == null)