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 182b1eb Context API refactoring.
182b1eb is described below
commit 182b1eb65943145872e10664ec7a6ed26fcae9ab
Author: JamesBognar <[email protected]>
AuthorDate: Wed Sep 22 10:56:11 2021 -0400
Context API refactoring.
---
.../org/apache/juneau/rest/NamedAttributeList.java | 153 +++--
.../org/apache/juneau/rest/RequestAttributes.java | 17 +
.../java/org/apache/juneau/rest/RestContext.java | 2 +-
.../org/apache/juneau/rest/RestContextBuilder.java | 27 +-
.../java/org/apache/juneau/rest/RestOpContext.java | 216 +-----
.../apache/juneau/rest/RestOpContextBuilder.java | 727 ++++++++++++++++-----
.../java/org/apache/juneau/rest/RestRequest.java | 2 +-
.../apache/juneau/rest/annotation/RestDelete.java | 4 +-
.../rest/annotation/RestDeleteAnnotation.java | 26 +-
.../org/apache/juneau/rest/annotation/RestGet.java | 4 +-
.../juneau/rest/annotation/RestGetAnnotation.java | 26 +-
.../org/apache/juneau/rest/annotation/RestOp.java | 8 +-
.../juneau/rest/annotation/RestOpAnnotation.java | 42 +-
.../apache/juneau/rest/annotation/RestPost.java | 8 +-
.../juneau/rest/annotation/RestPostAnnotation.java | 42 +-
.../org/apache/juneau/rest/annotation/RestPut.java | 8 +-
.../juneau/rest/annotation/RestPutAnnotation.java | 42 +-
.../juneau/rest/annotation/FormData_Test.java | 4 +-
.../apache/juneau/rest/annotation/Query_Test.java | 4 +-
.../rest/annotation/RestDeleteAnnotation_Test.java | 10 +-
.../rest/annotation/RestGetAnnotation_Test.java | 10 +-
.../rest/annotation/RestOpAnnotation_Test.java | 20 +-
.../rest/annotation/RestPostAnnotation_Test.java | 20 +-
.../rest/annotation/RestPutAnnotation_Test.java | 20 +-
24 files changed, 868 insertions(+), 574 deletions(-)
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/NamedAttributeList.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/NamedAttributeList.java
index ce0a073..673b926 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/NamedAttributeList.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/NamedAttributeList.java
@@ -14,23 +14,25 @@ package org.apache.juneau.rest;
import java.util.*;
-import org.apache.juneau.collections.*;
+import org.apache.juneau.*;
+import org.apache.juneau.cp.*;
/**
* A list of {@link NamedAttribute} objects.
*/
-public class NamedAttributeList extends AList<NamedAttribute> {
+public class NamedAttributeList {
- private static final long serialVersionUID = 1L;
+
//-----------------------------------------------------------------------------------------------------------------
+ // Static
+
//-----------------------------------------------------------------------------------------------------------------
/**
* Static creator.
*
* @return An empty list.
*/
- @SuppressWarnings("unchecked")
- public static NamedAttributeList create() {
- return new NamedAttributeList();
+ public static Builder create() {
+ return new Builder();
}
/**
@@ -40,67 +42,114 @@ public class NamedAttributeList extends
AList<NamedAttribute> {
* @return An empty list.
*/
public static NamedAttributeList of(NamedAttribute...values) {
- NamedAttributeList l = new NamedAttributeList();
- l.a(values);
- return l;
+ return create().add(values).build();
}
- /**
- * Returns a copy of this list.
- *
- * @return A new copy of this list.
- */
- public NamedAttributeList copy() {
- return NamedAttributeList.of(asArray());
- }
+
//-----------------------------------------------------------------------------------------------------------------
+ // Builder
+
//-----------------------------------------------------------------------------------------------------------------
/**
- * Appends or replaces the named attribute values in this list.
- *
- * <p>
- * If the named attribute already exists in this list, it will be
replaced with the new value.
- * Otherwise it will be appended to the end of this list.
- *
- * @param values The values to append or replace in this list.
- * @return This object (for method chaining).
+ * Builder class.
*/
- public NamedAttributeList appendUnique(List<NamedAttribute> values) {
- for (NamedAttribute h : values) {
- boolean replaced = false;
- for (ListIterator<NamedAttribute> li = listIterator();
li.hasNext();) {
- NamedAttribute h2 = li.next();
- if (h2.getName().equalsIgnoreCase(h.getName()))
{
- li.set(h);
- replaced = true;
- break;
- }
- }
- if (! replaced)
- add(h);
+ public static class Builder extends BeanBuilder<NamedAttributeList> {
+
+ LinkedHashMap<String,NamedAttribute> entries;
+
+ /**
+ * Constructor.
+ */
+ protected Builder() {
+ super(NamedAttributeList.class);
+ entries = new LinkedHashMap<>();
+ }
+
+ /**
+ * Copy constructor.
+ *
+ * @param copyFrom The builder being copied.
+ */
+ protected Builder(Builder copyFrom) {
+ super(copyFrom);
+ entries = new LinkedHashMap<>(copyFrom.entries);
+ }
+
+ @Override /* BeanBuilder */
+ protected NamedAttributeList buildDefault() {
+ return new NamedAttributeList(this);
+ }
+
+ @Override /* BeanBuilder */
+ public Builder copy() {
+ return new Builder(this);
+ }
+
+
//-------------------------------------------------------------------------------------------------------------
+ // Properties
+
//-------------------------------------------------------------------------------------------------------------
+
+ /**
+ * Appends the specified rest matcher classes to the list.
+ *
+ * @param values The values to add.
+ * @return This object (for method chaining).
+ */
+ public Builder add(NamedAttribute...values) {
+ for (NamedAttribute v : values)
+ entries.put(v.getName(), v);
+ return this;
+ }
+
+ // <FluentSetters>
+
+ @Override /* BeanBuilder */
+ public Builder type(Class<? extends NamedAttributeList> value) {
+ super.type(value);
+ return this;
+ }
+
+ @Override /* BeanBuilder */
+ public Builder impl(NamedAttributeList value) {
+ super.impl(value);
+ return this;
+ }
+
+ @Override /* BeanBuilder */
+ public Builder outer(Object value) {
+ super.outer(value);
+ return this;
}
- return this;
+
+ @Override /* BeanBuilder */
+ public Builder beanStore(BeanStore value) {
+ super.beanStore(value);
+ return this;
+ }
+
+ // </FluentSetters>
}
+
//-----------------------------------------------------------------------------------------------------------------
+ // Instance
+
//-----------------------------------------------------------------------------------------------------------------
+
+ final NamedAttribute[] entries;
+
/**
- * Appends or replaces the named attribute values in this list.
- *
- * <p>
- * If the named attribute already exists in this list, it will be
replaced with the new value.
- * Otherwise it will be appended to the end of this list.
+ * Constructor.
*
- * @param values The values to append or replace in this list.
- * @return This object (for method chaining).
+ * @param b The builder of this object.
*/
- public NamedAttributeList appendUnique(NamedAttribute...values) {
- return appendUnique(Arrays.asList(values));
+ public NamedAttributeList(Builder b) {
+ entries = b.entries.values().toArray(new
NamedAttribute[b.entries.size()]);
}
/**
- * Returns the contents of this list as a {@link NamedAttribute} array.
+ * Returns a copy of this list.
*
- * @return The contents of this list as a {@link NamedAttribute} array.
+ * @return A new copy of this list.
*/
- public NamedAttribute[] asArray() {
- return asArrayOf(NamedAttribute.class);
+ public Builder copy() {
+ return copy().add(entries);
}
}
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestAttributes.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestAttributes.java
index 55d0d98..d2050f0 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestAttributes.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestAttributes.java
@@ -69,6 +69,23 @@ public class RequestAttributes {
* <br>Can be <jk>null</jk>.
* @return This object (for method chaining).
*/
+ public RequestAttributes addDefault(NamedAttributeList pairs) {
+ for (NamedAttribute p : pairs.entries)
+ if (sreq.getAttribute(p.getName()) == null) {
+ Object o = p.getValue();
+ sreq.setAttribute(p.getName(), o instanceof
String ? vs.resolve(o) : o);
+ }
+ return this;
+ }
+
+ /**
+ * Adds default entries to the request attributes.
+ *
+ * @param pairs
+ * The default entries.
+ * <br>Can be <jk>null</jk>.
+ * @return This object (for method chaining).
+ */
public RequestAttributes addDefault(NamedAttribute...pairs) {
return addDefault(Arrays.asList(pairs));
}
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 dba45c7..dee62ed 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
@@ -296,7 +296,7 @@ public class RestContext extends Context {
staticFiles = bs.add(StaticFiles.class,
builder.staticFiles().build());
defaultRequestHeaders =
bs.add("RestContext.defaultRequestHeaders",
builder.defaultRequestHeaders().build());
defaultResponseHeaders =
bs.add("RestContext.defaultResponseHeaders",
builder.defaultResponseHeaders().build());
- defaultRequestAttributes =
bs.add("RestContext.defaultRequestAttributes",
builder.defaultRequestAttributes());
+ defaultRequestAttributes =
bs.add("RestContext.defaultRequestAttributes",
builder.defaultRequestAttributes().build());
restOpArgs = builder.restOpArgs().build().asArray();
hookMethodArgs =
builder.hookMethodArgs().build().asArray();
debugEnablement = builder.debugEnablement().build();
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContextBuilder.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContextBuilder.java
index b98b3fc..3108a8d 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContextBuilder.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContextBuilder.java
@@ -141,7 +141,7 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
private FileFinder.Builder fileFinder;
private StaticFiles.Builder staticFiles;
private HeaderList.Builder defaultRequestHeaders,
defaultResponseHeaders;
- private NamedAttributeList defaultRequestAttributes;
+ private NamedAttributeList.Builder defaultRequestAttributes;
private RestOpArgList.Builder restOpArgs, hookMethodArgs;
private DebugEnablement.Builder debugEnablement;
private MethodList startCallMethods, endCallMethods, postInitMethods,
postInitChildFirstMethods, destroyMethods, preCallMethods, postCallMethods;
@@ -2676,7 +2676,7 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
*
* @return The builder for the default request attributer object in the
REST context.
*/
- public final NamedAttributeList defaultRequestAttributes() {
+ public final NamedAttributeList.Builder defaultRequestAttributes() {
if (defaultRequestAttributes == null)
defaultRequestAttributes =
createDefaultRequestAttributes(beanStore(), resource());
return defaultRequestAttributes;
@@ -2732,7 +2732,7 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
*/
@FluentSetter
public RestContextBuilder
defaultRequestAttributes(NamedAttribute...values) {
- defaultRequestAttributes().appendUnique(values);
+ defaultRequestAttributes().add(values);
return this;
}
@@ -2745,25 +2745,36 @@ public class RestContextBuilder extends ContextBuilder
implements ServletConfig
* The REST servlet/bean instance that this context is defined
against.
* @return The default response headers for this REST object.
*/
- protected NamedAttributeList createDefaultRequestAttributes(BeanStore
beanStore, Supplier<?> resource) {
+ protected NamedAttributeList.Builder
createDefaultRequestAttributes(BeanStore beanStore, Supplier<?> resource) {
// Default value.
- Value<NamedAttributeList> v = Value.of(
+ Value<NamedAttributeList.Builder> v = Value.of(
NamedAttributeList.create()
);
// Replace with bean from bean store.
beanStore
- .getBean("RestContext.defaultRequestAttributes",
NamedAttributeList.class)
+ .getBean("RestContext.defaultRequestAttributes",
NamedAttributeList.Builder.class)
.map(x -> x.copy())
.ifPresent(x -> v.set(x));
+ beanStore
+ .getBean("RestContext.defaultRequestAttributes",
NamedAttributeList.class)
+ .ifPresent(x -> v.get().impl(x));
+
+ // Replace with bean from: public [static]
NamedAttributeList.Builder createDefaultRequestAttributes(<args>)
+ beanStore
+
.beanCreateMethodFinder(NamedAttributeList.Builder.class)
+ .addBean(NamedAttributeList.Builder.class, v.get())
+ .find("createDefaultRequestAttributes")
+ .run(x -> v.set(x));
+
// Replace with bean from: public [static] NamedAttributeList
createDefaultRequestAttributes(<args>)
beanStore
.beanCreateMethodFinder(NamedAttributeList.class)
- .addBean(NamedAttributeList.class, v.get())
+ .addBean(NamedAttributeList.Builder.class, v.get())
.find("createDefaultRequestAttributes")
- .run(x -> v.set(x));
+ .run(x -> v.get().impl(x));
return v.get();
}
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpContext.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpContext.java
index 612cf85..d85dec3 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpContext.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpContext.java
@@ -16,15 +16,10 @@ import static org.apache.juneau.internal.ClassUtils.*;
import static org.apache.juneau.internal.ExceptionUtils.*;
import static org.apache.juneau.internal.ObjectUtils.*;
import static org.apache.juneau.internal.StringUtils.*;
-import static org.apache.juneau.internal.StringUtils.firstNonEmpty;
-import static org.apache.juneau.http.HttpHeaders.*;
import static org.apache.juneau.httppart.HttpPartType.*;
-import static org.apache.juneau.rest.util.RestUtils.*;
import static org.apache.juneau.rest.HttpRuntimeException.*;
import static java.util.Collections.*;
-import static org.apache.juneau.http.HttpParts.*;
import static java.util.Optional.*;
-import java.lang.annotation.*;
import java.lang.reflect.Method;
import java.nio.charset.*;
import java.util.*;
@@ -34,14 +29,12 @@ import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.http.*;
-import org.apache.http.ParseException;
import org.apache.juneau.*;
import org.apache.juneau.annotation.*;
import org.apache.juneau.collections.*;
import org.apache.juneau.cp.*;
import org.apache.juneau.encoders.*;
import org.apache.juneau.http.annotation.*;
-import org.apache.juneau.http.annotation.Header;
import org.apache.juneau.http.header.*;
import org.apache.juneau.http.part.*;
import org.apache.juneau.httppart.*;
@@ -90,8 +83,8 @@ public class RestOpContext extends Context implements
Comparable<RestOpContext>
private final HttpPartParser partParser;
private final JsonSchemaGenerator jsonSchemaGenerator;
private final HeaderList defaultRequestHeaders, defaultResponseHeaders;
- private final PartList defaultRequestQuery, defaultRequestFormData;
- private final List<NamedAttribute> defaultRequestAttributes;
+ private final PartList defaultRequestQueryData, defaultRequestFormData;
+ private final NamedAttributeList defaultRequestAttributes;
private final Charset defaultCharset;
private final long maxInput;
private final List<MediaType>
@@ -165,11 +158,11 @@ public class RestOpContext extends Context implements
Comparable<RestOpContext>
supportedAcceptTypes =
unmodifiableList(ofNullable(builder.produces).orElse(serializers.getSupportedMediaTypes()));
supportedContentTypes =
unmodifiableList(ofNullable(builder.consumes).orElse(parsers.getSupportedMediaTypes()));
- defaultRequestHeaders = createDefaultRequestHeaders(r,
builder, bs, method, context).build();
- defaultResponseHeaders =
createDefaultResponseHeaders(r, builder, bs, method, context).build();
- defaultRequestQuery = createDefaultRequestQuery(r,
builder, bs, method).build();
- defaultRequestFormData =
createDefaultRequestFormData(r, builder, bs, method).build();
- defaultRequestAttributes =
unmodifiableList(createDefaultRequestAttributes(r, builder, bs, method,
context));
+ defaultRequestHeaders =
builder.defaultRequestHeaders().build();
+ defaultResponseHeaders =
builder.defaultResponseHeaders().build();
+ defaultRequestQueryData =
builder.defaultRequestQueryData().build();
+ defaultRequestFormData =
builder.defaultRequestFormData().build();
+ defaultRequestAttributes =
builder.defaultRequestAttributes().build();
int _hierarchyDepth = 0;
Class<?> sc =
method.getDeclaringClass().getSuperclass();
@@ -194,8 +187,6 @@ public class RestOpContext extends Context implements
Comparable<RestOpContext>
opArgs = context.findRestOperationArgs(mi.inner(), bs);
this.callLogger = context.getCallLogger();
- } catch (ServletException e) {
- throw e;
} catch (Exception e) {
throw new ServletException(e);
}
@@ -211,184 +202,6 @@ public class RestOpContext extends Context implements
Comparable<RestOpContext>
}
/**
- * Instantiates the default request headers for this method.
- *
- * @param resource The REST resource object.
- * @param builder The builder for this object.
- * @param beanStore The bean store to use for retrieving and creating
beans.
- * @param method This Java method.
- * @param context The REST class context.
- * @return The default request headers for this method.
- * @throws Exception If default request headers could not be
instantiated.
- */
- protected HeaderList.Builder createDefaultRequestHeaders(Object
resource, RestOpContextBuilder builder, BeanStore beanStore, Method method,
RestContext context) throws Exception {
-
- HeaderList.Builder x =
HeaderList.create().setDefault(context.getDefaultRequestHeaders()).setDefault(builder.defaultRequestHeaders.build());
-
- for (Annotation[] aa : method.getParameterAnnotations()) {
- for (Annotation a : aa) {
- if (a instanceof Header) {
- Header h = (Header)a;
- String def =
joinnlFirstNonEmptyArray(h._default(), h.df());
- if (def != null) {
- try {
-
x.set(basicHeader(firstNonEmpty(h.name(), h.n(), h.value()),
parseAnything(def)));
- } catch (ParseException e) {
- throw new
ConfigException(e, "Malformed @Header annotation");
- }
- }
- }
- }
- }
-
- x = BeanStore
- .of(beanStore, resource)
- .addBean(HeaderList.Builder.class, x)
- .createMethodFinder(HeaderList.Builder.class, resource)
- .find("createDefaultRequestHeaders", Method.class)
- .withDefault(x)
- .run();
-
- return x;
- }
-
- /**
- * Instantiates the default request headers for this method.
- *
- * @param resource The REST resource object.
- * @param builder The builder for this object.
- * @param beanStore The bean store to use for retrieving and creating
beans.
- * @param method This Java method.
- * @param context The REST class context.
- * @return The default request headers for this method.
- * @throws Exception If default request headers could not be
instantiated.
- */
- protected HeaderList.Builder createDefaultResponseHeaders(Object
resource, RestOpContextBuilder builder, BeanStore beanStore, Method method,
RestContext context) throws Exception {
-
- HeaderList.Builder x =
HeaderList.create().setDefault(context.getDefaultResponseHeaders()).setDefault(builder.defaultResponseHeaders.build());
-
- x = BeanStore
- .of(beanStore, resource)
- .addBean(HeaderList.Builder.class, x)
- .createMethodFinder(HeaderList.Builder.class, resource)
- .find("createDefaultResponseHeaders", Method.class)
- .withDefault(x)
- .run();
-
- return x;
- }
-
- /**
- * Instantiates the default request attributes for this method.
- *
- * @param resource The REST resource object.
- * @param builder The builder for this object.
- * @param beanStore The bean store to use for retrieving and creating
beans.
- * @param method This Java method.
- * @param context The REST class context.
- * @return The default request attributes for this method.
- * @throws Exception If default request headers could not be
instantiated.
- */
- protected NamedAttributeList createDefaultRequestAttributes(Object
resource, RestOpContextBuilder builder, BeanStore beanStore, Method method,
RestContext context) throws Exception {
-
- NamedAttributeList x =
context.getDefaultRequestAttributes().copy().appendUnique(builder.defaultRequestAttributes);
-
- x = BeanStore
- .of(beanStore, resource)
- .addBean(NamedAttributeList.class, x)
- .createMethodFinder(NamedAttributeList.class, resource)
- .find("createDefaultRequestAttributes", Method.class)
- .withDefault(x)
- .run();
-
- return x;
- }
-
- /**
- * Instantiates the default query parameters for this method.
- *
- * @param resource The REST resource object.
- * @param builder The builder for this object.
- * @param beanStore The bean store to use for retrieving and creating
beans.
- * @param method This Java method.
- * @return The default request query parameters for this method.
- * @throws Exception If default request query parameters could not be
instantiated.
- */
- protected PartList.Builder createDefaultRequestQuery(Object resource,
RestOpContextBuilder builder, BeanStore beanStore, Method method) throws
Exception {
-
- PartList.Builder x = builder.defaultQueryData;
-
- for (Annotation[] aa : method.getParameterAnnotations()) {
- for (Annotation a : aa) {
- if (a instanceof Query) {
- Query h = (Query)a;
- String def =
joinnlFirstNonEmptyArray(h._default(), h.df());
- if (def != null) {
- try {
-
x.setDefault(basicPart(firstNonEmpty(h.name(), h.n(), h.value()),
parseAnything(def)));
- } catch (ParseException e) {
- throw new
ConfigException(e, "Malformed @Query annotation");
- }
- }
- }
- }
- }
-
- x = BeanStore
- .of(beanStore, resource)
- .addBean(PartList.Builder.class, x)
- .createMethodFinder(PartList.Builder.class, resource)
- .find("createDefaultRequestQuery", Method.class)
- .thenFind("createDefaultRequestQuery")
- .withDefault(x)
- .run();
-
- return x;
- }
-
- /**
- * Instantiates the default form-data parameters for this method.
- *
- * @param resource The REST resource object.
- * @param builder The builder for this object.
- * @param beanStore The bean store to use for retrieving and creating
beans.
- * @param method This Java method.
- * @return The default request form-data parameters for this method.
- * @throws Exception If default request form-data parameters could not
be instantiated.
- */
- protected PartList.Builder createDefaultRequestFormData(Object
resource, RestOpContextBuilder builder, BeanStore beanStore, Method method)
throws Exception {
-
- PartList.Builder x = builder.defaultFormData;
-
- for (Annotation[] aa : method.getParameterAnnotations()) {
- for (Annotation a : aa) {
- if (a instanceof FormData) {
- FormData h = (FormData)a;
- String def =
joinnlFirstNonEmptyArray(h._default(), h.df());
- if (def != null) {
- try {
-
x.setDefault(basicPart(firstNonEmpty(h.name(), h.n(), h.value()),
parseAnything(def)));
- } catch (ParseException e) {
- throw new
ConfigException(e, "Malformed @FormData annotation");
- }
- }
- }
- }
- }
-
- x = BeanStore
- .of(beanStore, resource)
- .addBean(PartList.Builder.class, x)
- .createMethodFinder(PartList.Builder.class, resource)
- .find("createDefaultRequestFormData", Method.class)
- .thenFind("createDefaultRequestFormData")
- .withDefault(x)
- .run();
-
- return x;
- }
-
- /**
* Returns metadata about the specified response object if it's
annotated with {@link Response @Response}.
*
* @param o The response POJO.
@@ -568,8 +381,8 @@ public class RestOpContext extends Context implements
Comparable<RestOpContext>
*
* @return The default request query parameters. Never <jk>null</jk>.
*/
- public PartList getDefaultRequestQuery() {
- return defaultRequestQuery;
+ public PartList getDefaultRequestQueryData() {
+ return defaultRequestQueryData;
}
/**
@@ -586,7 +399,7 @@ public class RestOpContext extends Context implements
Comparable<RestOpContext>
*
* @return The default request attributes. Never <jk>null</jk>.
*/
- public List<NamedAttribute> getDefaultRequestAttributes() {
+ public NamedAttributeList getDefaultRequestAttributes() {
return defaultRequestAttributes;
}
@@ -861,7 +674,7 @@ public class RestOpContext extends Context implements
Comparable<RestOpContext>
.filtered()
.a("defaultRequestFormData",
defaultRequestFormData)
.a("defaultRequestHeaders",
defaultRequestHeaders)
- .a("defaultRequestQuery", defaultRequestQuery)
+ .a("defaultRequestQueryData",
defaultRequestQueryData)
.a("httpMethod", httpMethod)
);
}
@@ -875,13 +688,6 @@ public class RestOpContext extends Context implements
Comparable<RestOpContext>
return hps == null ? _default : hps;
}
- private String joinnlFirstNonEmptyArray(String[]...s) {
- for (String[] ss : s)
- if (ss.length > 0)
- return joinnl(ss);
- return null;
- }
-
private UrlPathMatch matchPattern(RestCall call) {
UrlPathMatch pm = null;
for (UrlPathMatcher pp : pathMatchers)
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpContextBuilder.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpContextBuilder.java
index 4d67c3d..f2a0cf5 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpContextBuilder.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpContextBuilder.java
@@ -13,19 +13,24 @@
package org.apache.juneau.rest;
import static java.util.Arrays.*;
+import static org.apache.juneau.http.HttpHeaders.*;
+import static org.apache.juneau.http.HttpParts.*;
import static org.apache.juneau.internal.ExceptionUtils.*;
+import static org.apache.juneau.internal.StringUtils.*;
import static org.apache.juneau.rest.HttpRuntimeException.*;
+import static org.apache.juneau.rest.util.RestUtils.*;
import static java.util.Optional.*;
import java.lang.annotation.*;
import java.util.*;
import java.util.function.*;
-import org.apache.http.*;
import org.apache.juneau.*;
import org.apache.juneau.collections.*;
import org.apache.juneau.cp.*;
import org.apache.juneau.encoders.*;
+import org.apache.juneau.http.annotation.*;
+import org.apache.juneau.http.annotation.Header;
import org.apache.juneau.http.header.*;
import org.apache.juneau.http.part.*;
import org.apache.juneau.http.remote.*;
@@ -34,6 +39,7 @@ import org.apache.juneau.httppart.*;
import org.apache.juneau.internal.*;
import org.apache.juneau.jsonschema.*;
import org.apache.juneau.parser.*;
+import org.apache.juneau.parser.ParseException;
import org.apache.juneau.reflect.*;
import org.apache.juneau.rest.annotation.*;
import org.apache.juneau.rest.converters.*;
@@ -69,8 +75,8 @@ public class RestOpContextBuilder extends ContextBuilder {
private RestMatcherList.Builder matchers;
private JsonSchemaGeneratorBuilder jsonSchemaGenerator;
- PartList.Builder defaultFormData, defaultQueryData;
- NamedAttributeList defaultRequestAttributes;
+ PartList.Builder defaultRequestFormData, defaultRequestQueryData;
+ NamedAttributeList.Builder defaultRequestAttributes;
HeaderList.Builder defaultRequestHeaders, defaultResponseHeaders;
RestMatcherList.Builder restMatchers;
List<MediaType> produces, consumes;
@@ -114,13 +120,6 @@ public class RestOpContextBuilder extends ContextBuilder {
.of(context.getRootBeanStore(),
context.builder.resource().get())
.addBean(java.lang.reflect.Method.class, method);
- this.defaultFormData = PartList.create();
- this.defaultQueryData = PartList.create();
- this.defaultRequestAttributes = NamedAttributeList.create();
- this.defaultRequestHeaders = HeaderList.create();
- this.defaultResponseHeaders = HeaderList.create();
- this.restMatchers = RestMatcherList.create();
-
MethodInfo mi = MethodInfo.of(context.getResourceClass(),
method);
try {
@@ -144,6 +143,8 @@ public class RestOpContextBuilder extends ContextBuilder {
if (context.builder.jsonSchemaGenerator().canApply(al))
jsonSchemaGenerator().apply(al);
+ processParameterAnnotations();
+
} catch (Exception e) {
throw toHttpException(e, InternalServerError.class);
}
@@ -227,6 +228,20 @@ public class RestOpContextBuilder extends ContextBuilder {
parent.beanContext().copy()
);
+ BeanStore
+ .of(beanStore, resource)
+ .addBean(BeanContextBuilder.class, v.get())
+ .createMethodFinder(BeanContextBuilder.class, resource)
+ .find("createBeanContext", Method.class)
+ .run(x -> v.set(x));
+
+ BeanStore
+ .of(beanStore, resource)
+ .addBean(BeanContextBuilder.class, v.get())
+ .createMethodFinder(BeanContext.class, resource)
+ .find("createBeanContext", Method.class)
+ .run(x -> v.get().impl(x));
+
return v.get();
}
@@ -267,6 +282,20 @@ public class RestOpContextBuilder extends ContextBuilder {
parent.encoders().copy()
);
+ BeanStore
+ .of(beanStore, resource)
+ .addBean(EncoderGroup.Builder.class, v.get())
+ .createMethodFinder(EncoderGroup.Builder.class,
resource)
+ .find("createEncoders", Method.class)
+ .run(x -> v.set(x));
+
+ BeanStore
+ .of(beanStore, resource)
+ .addBean(EncoderGroup.Builder.class, v.get())
+ .createMethodFinder(EncoderGroup.class, resource)
+ .find("createEncoders", Method.class)
+ .run(x -> v.get().impl(x));
+
return v.get();
}
@@ -307,6 +336,20 @@ public class RestOpContextBuilder extends ContextBuilder {
parent.serializers().copy()
);
+ BeanStore
+ .of(beanStore, resource)
+ .addBean(SerializerGroup.Builder.class, v.get())
+ .createMethodFinder(SerializerGroup.Builder.class,
resource)
+ .find("createSerializers", Method.class)
+ .run(x -> v.set(x));
+
+ BeanStore
+ .of(beanStore, resource)
+ .addBean(SerializerGroup.Builder.class, v.get())
+ .createMethodFinder(SerializerGroup.class, resource)
+ .find("createSerializers", Method.class)
+ .run(x -> v.get().impl(x));
+
return v.get();
}
@@ -347,6 +390,20 @@ public class RestOpContextBuilder extends ContextBuilder {
parent.parsers().copy()
);
+ BeanStore
+ .of(beanStore, resource)
+ .addBean(ParserGroup.Builder.class, v.get())
+ .createMethodFinder(ParserGroup.Builder.class, resource)
+ .find("createParsers", Method.class)
+ .run(x -> v.set(x));
+
+ BeanStore
+ .of(beanStore, resource)
+ .addBean(ParserGroup.Builder.class, v.get())
+ .createMethodFinder(ParserGroup.class, resource)
+ .find("createParsers", Method.class)
+ .run(x -> v.get().impl(x));
+
return v.get();
}
@@ -387,6 +444,20 @@ public class RestOpContextBuilder extends ContextBuilder {
parent.partSerializer().copy()
);
+ BeanStore
+ .of(beanStore, resource)
+ .addBean(HttpPartSerializer.Creator.class, v.get())
+ .createMethodFinder(HttpPartSerializer.Creator.class,
resource)
+ .find("createPartSerializer", Method.class)
+ .run(x -> v.set(x));
+
+ BeanStore
+ .of(beanStore, resource)
+ .addBean(HttpPartSerializer.Creator.class, v.get())
+ .createMethodFinder(HttpPartSerializer.class, resource)
+ .find("createPartSerializer", Method.class)
+ .run(x -> v.get().impl(x));
+
return v.get();
}
@@ -427,6 +498,20 @@ public class RestOpContextBuilder extends ContextBuilder {
parent.partParser().copy()
);
+ BeanStore
+ .of(beanStore, resource)
+ .addBean(HttpPartParser.Creator.class, v.get())
+ .createMethodFinder(HttpPartParser.Creator.class,
resource)
+ .find("createPartParser", Method.class)
+ .run(x -> v.set(x));
+
+ BeanStore
+ .of(beanStore, resource)
+ .addBean(HttpPartParser.Creator.class, v.get())
+ .createMethodFinder(HttpPartParser.class, resource)
+ .find("createPartParser", Method.class)
+ .run(x -> v.get().impl(x));
+
return v.get();
}
@@ -467,6 +552,20 @@ public class RestOpContextBuilder extends ContextBuilder {
parent.jsonSchemaGenerator().copy()
);
+ BeanStore
+ .of(beanStore, resource)
+ .addBean(JsonSchemaGeneratorBuilder.class, v.get())
+ .createMethodFinder(JsonSchemaGeneratorBuilder.class,
resource)
+ .find("createJsonSchemaGenerator", Method.class)
+ .run(x -> v.set(x));
+
+ BeanStore
+ .of(beanStore, resource)
+ .addBean(JsonSchemaGeneratorBuilder.class, v.get())
+ .createMethodFinder(JsonSchemaGenerator.class, resource)
+ .find("createJsonSchemaGenerator", Method.class)
+ .run(x -> v.get().impl(x));
+
return v.get();
}
@@ -896,6 +995,306 @@ public class RestOpContextBuilder extends ContextBuilder {
return this;
}
+
//-----------------------------------------------------------------------------------------------------------------
+ // defaultRequestHeaders
+
//-----------------------------------------------------------------------------------------------------------------
+
+ /**
+ * Returns the builder for the default request headers in the REST
context.
+ *
+ * @return The builder for the default request headers in the REST
context.
+ */
+ public final HeaderList.Builder defaultRequestHeaders() {
+ if (defaultRequestHeaders == null)
+ defaultRequestHeaders =
createDefaultRequestHeaders(beanStore(), parent, resource());
+ return defaultRequestHeaders;
+ }
+
+ /**
+ * Instantiates the default request headers for this method.
+ *
+ * @param beanStore
+ * The factory used for creating beans and retrieving injected
beans.
+ * @param parent
+ * The builder for the REST resource class.
+ * @param resource
+ * The REST servlet/bean instance that this context is defined
against.
+ * @return The default request headers for this method.
+ */
+ protected HeaderList.Builder createDefaultRequestHeaders(BeanStore
beanStore, RestContextBuilder parent, Supplier<?> resource) {
+
+ Value<HeaderList.Builder> v = Value.of(
+ parent.defaultRequestHeaders().copy()
+ );
+
+ BeanStore
+ .of(beanStore, resource)
+ .addBean(HeaderList.Builder.class, v.get())
+ .createMethodFinder(HeaderList.Builder.class, resource)
+ .find("createDefaultRequestHeaders", Method.class)
+ .run(x -> v.set(x));
+
+ BeanStore
+ .of(beanStore, resource)
+ .addBean(HeaderList.Builder.class, v.get())
+ .createMethodFinder(HeaderList.class, resource)
+ .find("createDefaultRequestHeaders", Method.class)
+ .run(x -> v.get().impl(x));
+
+ return v.get();
+ }
+
+
//-----------------------------------------------------------------------------------------------------------------
+ // defaultResponseHeaders
+
//-----------------------------------------------------------------------------------------------------------------
+
+ /**
+ * Returns the builder for the default response headers in the REST
context.
+ *
+ * @return The builder for the default response headers in the REST
context.
+ */
+ public final HeaderList.Builder defaultResponseHeaders() {
+ if (defaultResponseHeaders == null)
+ defaultResponseHeaders =
createDefaultResponseHeaders(beanStore(), parent, resource());
+ return defaultResponseHeaders;
+ }
+
+ /**
+ * Instantiates the default request headers for this method.
+ *
+ * @param beanStore
+ * The factory used for creating beans and retrieving injected
beans.
+ * @param parent
+ * The builder for the REST resource class.
+ * @param resource
+ * The REST servlet/bean instance that this context is defined
against.
+ * @return The default request headers for this method.
+ */
+ protected HeaderList.Builder createDefaultResponseHeaders(BeanStore
beanStore, RestContextBuilder parent, Supplier<?> resource) {
+
+ Value<HeaderList.Builder> v = Value.of(
+ parent.defaultResponseHeaders().copy()
+ );
+
+ BeanStore
+ .of(beanStore, resource)
+ .addBean(HeaderList.Builder.class, v.get())
+ .createMethodFinder(HeaderList.Builder.class, resource)
+ .find("createDefaultResponseHeaders", Method.class)
+ .run(x -> v.set(x));
+
+ BeanStore
+ .of(beanStore, resource)
+ .addBean(HeaderList.Builder.class, v.get())
+ .createMethodFinder(HeaderList.class, resource)
+ .find("createDefaultResponseHeaders", Method.class)
+ .run(x -> v.get().impl(x));
+
+ return v.get();
+ }
+
+
//-----------------------------------------------------------------------------------------------------------------
+ // defaultRequestAttributes
+
//-----------------------------------------------------------------------------------------------------------------
+
+ /**
+ * Returns the builder for the default request attributes in the REST
context.
+ *
+ * @return The builder for the default request attributes in the REST
context.
+ */
+ public final NamedAttributeList.Builder defaultRequestAttributes() {
+ if (defaultRequestAttributes == null)
+ defaultRequestAttributes =
createDefaultRequestAttributes(beanStore(), parent, resource());
+ return defaultRequestAttributes;
+ }
+
+ /**
+ * Instantiates the default request attributes for this method.
+ *
+ * @param beanStore
+ * The factory used for creating beans and retrieving injected
beans.
+ * @param parent
+ * The builder for the REST resource class.
+ * @param resource
+ * The REST servlet/bean instance that this context is defined
against.
+ * @return The default request attributes for this method.
+ */
+ protected NamedAttributeList.Builder
createDefaultRequestAttributes(BeanStore beanStore, RestContextBuilder parent,
Supplier<?> resource) {
+
+ Value<NamedAttributeList.Builder> v = Value.of(
+ parent.defaultRequestAttributes().copy()
+ );
+
+ BeanStore
+ .of(beanStore, resource)
+ .addBean(NamedAttributeList.Builder.class, v.get())
+ .createMethodFinder(NamedAttributeList.Builder.class,
resource)
+ .find("createDefaultRequestAttributes", Method.class)
+ .run(x -> v.set(x));
+
+ BeanStore
+ .of(beanStore, resource)
+ .addBean(NamedAttributeList.Builder.class, v.get())
+ .createMethodFinder(NamedAttributeList.class, resource)
+ .find("createDefaultRequestAttributes", Method.class)
+ .run(x -> v.get().impl(x));
+
+ return v.get();
+ }
+
+
//-----------------------------------------------------------------------------------------------------------------
+ // defaultRequestQuery
+
//-----------------------------------------------------------------------------------------------------------------
+
+ /**
+ * Returns the builder for the default request query data in the REST
context.
+ *
+ * @return The builder for the default request query data in the REST
context.
+ */
+ public final PartList.Builder defaultRequestQueryData() {
+ if (defaultRequestQueryData == null)
+ defaultRequestQueryData =
createDefaultRequestQueryData(beanStore(), parent, resource());
+ return defaultRequestQueryData;
+ }
+
+ /**
+ * Instantiates the default query parameters for this method.
+ *
+ * @param beanStore
+ * The factory used for creating beans and retrieving injected
beans.
+ * @param parent
+ * The builder for the REST resource class.
+ * @param resource
+ * The REST servlet/bean instance that this context is defined
against.
+ * @return The default request query parameters for this method.
+ */
+ protected PartList.Builder createDefaultRequestQueryData(BeanStore
beanStore, RestContextBuilder parent, Supplier<?> resource) {
+
+ Value<PartList.Builder> v = Value.of(
+ PartList.create()
+ );
+
+ BeanStore
+ .of(beanStore, resource)
+ .addBean(PartList.Builder.class, v.get())
+ .createMethodFinder(PartList.Builder.class, resource)
+ .find("createDefaultRequestQueryData", Method.class)
+ .thenFind("createDefaultRequestQueryData")
+ .run(x -> v.set(x));
+
+ BeanStore
+ .of(beanStore, resource)
+ .addBean(PartList.Builder.class, v.get())
+ .createMethodFinder(PartList.class, resource)
+ .find("createDefaultRequestQueryData", Method.class)
+ .thenFind("createDefaultRequestQueryData")
+ .run(x -> v.get().impl(x));
+
+ return v.get();
+ }
+
+
//-----------------------------------------------------------------------------------------------------------------
+ // defaultRequestFormData
+
//-----------------------------------------------------------------------------------------------------------------
+
+ /**
+ * Returns the builder for the default request form data in the REST
context.
+ *
+ * @return The builder for the default request form data in the REST
context.
+ */
+ public final PartList.Builder defaultRequestFormData() {
+ if (defaultRequestFormData == null)
+ defaultRequestFormData =
createDefaultRequestFormData(beanStore(), parent, resource());
+ return defaultRequestFormData;
+ }
+
+ /**
+ * Instantiates the default form-data parameters for this method.
+ *
+ * @param beanStore
+ * The factory used for creating beans and retrieving injected
beans.
+ * @param parent
+ * The builder for the REST resource class.
+ * @param resource
+ * The REST servlet/bean instance that this context is defined
against.
+ * @return The default request form-data parameters for this method.
+ */
+ protected PartList.Builder createDefaultRequestFormData(BeanStore
beanStore, RestContextBuilder parent, Supplier<?> resource) {
+
+ Value<PartList.Builder> v = Value.of(
+ PartList.create()
+ );
+
+ BeanStore
+ .of(beanStore, resource)
+ .addBean(PartList.Builder.class, v.get())
+ .createMethodFinder(PartList.Builder.class, resource)
+ .find("createDefaultRequestFormData", Method.class)
+ .thenFind("createDefaultRequestFormData")
+ .run(x -> v.set(x));
+
+ BeanStore
+ .of(beanStore, resource)
+ .addBean(PartList.Builder.class, v.get())
+ .createMethodFinder(PartList.class, resource)
+ .find("createDefaultRequestFormData", Method.class)
+ .thenFind("createDefaultRequestFormData")
+ .run(x -> v.get().impl(x));
+
+ return v.get();
+ }
+
+
//-----------------------------------------------------------------------------------------------------------------
+ // Parameter annotations
+
//-----------------------------------------------------------------------------------------------------------------
+
+ /**
+ * Handles processing of any annotations on parameters.
+ *
+ * <p>
+ * This includes: {@link Header}, {@link Query}, {@link FormData}.
+ */
+ protected void processParameterAnnotations() {
+ for (Annotation[] aa : restMethod.getParameterAnnotations()) {
+
+ for (Annotation a : aa) {
+ if (a instanceof Header) {
+ Header h = (Header)a;
+ String def =
joinnlFirstNonEmptyArray(h._default(), h.df());
+ if (def != null) {
+ try {
+
defaultRequestHeaders().set(basicHeader(firstNonEmpty(h.name(), h.n(),
h.value()), parseAnything(def)));
+ } catch (ParseException e) {
+ throw new
ConfigException(e, "Malformed @Header annotation");
+ }
+ }
+ }
+ if (a instanceof Query) {
+ Query h = (Query)a;
+ String def =
joinnlFirstNonEmptyArray(h._default(), h.df());
+ if (def != null) {
+ try {
+
defaultRequestQueryData().setDefault(basicPart(firstNonEmpty(h.name(), h.n(),
h.value()), parseAnything(def)));
+ } catch (ParseException e) {
+ throw new
ConfigException(e, "Malformed @Query annotation");
+ }
+ }
+ }
+ if (a instanceof FormData) {
+ FormData h = (FormData)a;
+ String def =
joinnlFirstNonEmptyArray(h._default(), h.df());
+ if (def != null) {
+ try {
+
defaultRequestFormData().setDefault(basicPart(firstNonEmpty(h.name(), h.n(),
h.value()), parseAnything(def)));
+ } catch (ParseException e) {
+ throw new
ConfigException(e, "Malformed @FormData annotation");
+ }
+ }
+ }
+ }
+ }
+ }
+
//----------------------------------------------------------------------------------------------------
// Properties
//----------------------------------------------------------------------------------------------------
@@ -1048,154 +1447,154 @@ public class RestOpContextBuilder extends
ContextBuilder {
return this;
}
- /**
- * Default form data parameters.
- *
- * <p>
- * Sets default values for form data parameters.
- *
- * <h5 class='section'>Example:</h5>
- * <p class='bcode w800'>
- * <ja>@RestPost</ja>(path=<js>"/*"</js>,
defaultFormData={<js>"foo=bar"</js>})
- * <jk>public</jk> String doGet(<ja>@FormData</ja>(<js>"foo"</js>)
String <jv>foo</jv>) {...}
- * </p>
-
- * <ul class='seealso'>
- * <li class='ja'>{@link RestOp#defaultFormData}
- * <li class='ja'>{@link RestPost#defaultFormData}
- * </ul>
- *
- * @param values The form data parameters to add.
- * @return This object (for method chaining).
- */
- @FluentSetter
- public RestOpContextBuilder defaultFormData(NameValuePair...values) {
- defaultFormData.setDefault(values);
- return this;
- }
-
- /**
- * Default query parameters.
- *
- * <p>
- * Sets default values for query data parameters.
- *
- * <p>
- * Affects values returned by {@link RestRequest#getQueryParam(String)}
when the parameter is not present on the request.
- *
- * <h5 class='section'>Example:</h5>
- * <p class='bcode w800'>
- * <ja>@RestGet</ja>(path=<js>"/*"</js>,
defaultQueryData={<js>"foo=bar"</js>})
- * <jk>public</jk> String doGet(<ja>@Query</ja>(<js>"foo"</js>)
String <jv>foo</jv>) {...}
- * </p>
-
- * <ul class='seealso'>
- * <li class='ja'>{@link RestOp#defaultQueryData}
- * <li class='ja'>{@link RestGet#defaultQueryData}
- * <li class='ja'>{@link RestPut#defaultQueryData}
- * <li class='ja'>{@link RestPost#defaultQueryData}
- * <li class='ja'>{@link RestDelete#defaultQueryData}
- * </ul>
- *
- * @param values The query parameters to add.
- * @return This object (for method chaining).
- */
- @FluentSetter
- public RestOpContextBuilder defaultQueryData(NameValuePair...values) {
- defaultQueryData.setDefault(values);
- return this;
- }
-
- /**
- * Default request attributes.
- *
- * <p>
- * Specifies default values for request attributes if they are not
already set on the request.
- *
- * <h5 class='section'>Example:</h5>
- * <p class='bcode w800'>
- * <jc>// Assume "text/json" Accept value when Accept not
specified</jc>
- * <ja>@RestGet</ja>(path=<js>"/*"</js>,
defaultRequestAttributes={<js>"Foo=bar"</js>})
- * <jk>public</jk> String doGet() {...}
- * </p>
- *
- * <ul class='seealso'>
- * <li class='ja'>{@link RestOp#defaultRequestAttributes()}
- * <li class='ja'>{@link RestGet#defaultRequestAttributes()}
- * <li class='ja'>{@link RestPut#defaultRequestAttributes()}
- * <li class='ja'>{@link RestPost#defaultRequestAttributes()}
- * <li class='ja'>{@link RestDelete#defaultRequestAttributes()}
- * </ul>
- *
- * @param values The request attributes to add.
- * @return This object (for method chaining).
- */
- @FluentSetter
- public RestOpContextBuilder
defaultRequestAttributes(NamedAttribute...values) {
- defaultRequestAttributes.append(values);
- return this;
- }
-
- /**
- * <i><l>RestOpContext</l> configuration property: </i> Default
request headers.
- *
- * <p>
- * Specifies default values for request headers if they're not passed
in through the request.
- *
- * <h5 class='section'>Example:</h5>
- * <p class='bcode w800'>
- * <jc>// Assume "text/json" Accept value when Accept not
specified</jc>
- * <ja>@RestGet</ja>(path=<js>"/*"</js>,
defaultRequestHeaders={<js>"Accept: text/json"</js>})
- * <jk>public</jk> String doGet() {...}
- * </p>
- *
- * <ul class='seealso'>
- * <li class='ja'>{@link RestOp#defaultRequestHeaders}
- * <li class='ja'>{@link RestGet#defaultRequestHeaders}
- * <li class='ja'>{@link RestPut#defaultRequestHeaders}
- * <li class='ja'>{@link RestPost#defaultRequestHeaders}
- * <li class='ja'>{@link RestDelete#defaultRequestHeaders}
- * </ul>
- *
- * @param values The headers to add.
- * @return This object (for method chaining).
- */
- @FluentSetter
- public RestOpContextBuilder defaultRequestHeaders(Header...values) {
- defaultRequestHeaders.setDefault(values);
- return this;
- }
-
- /**
- * Default response headers.
- *
- * <p>
- * Specifies default values for response headers if they're not set
after the Java REST method is called.
- *
- * <h5 class='section'>Example:</h5>
- * <p class='bcode w800'>
- * <jc>// Assume "text/json" Accept value when Accept not
specified</jc>
- * <ja>@RestGet</ja>(path=<js>"/*"</js>,
defaultResponseHeaders={<js>"Content-Type: text/json"</js>})
- * <jk>public</jk> String doGet() {...}
- * </p>
- *
- * <ul class='seealso'>
- * <li class='ja'>{@link RestOp#defaultResponseHeaders}
- * <li class='ja'>{@link RestGet#defaultResponseHeaders}
- * <li class='ja'>{@link RestPut#defaultResponseHeaders}
- * <li class='ja'>{@link RestPost#defaultResponseHeaders}
- * <li class='ja'>{@link RestDelete#defaultResponseHeaders}
- * </ul>
- *
- * @param values The headers to add.
- * @return This object (for method chaining).
- */
- @FluentSetter
- public RestOpContextBuilder defaultResponseHeaders(Header...values) {
- defaultResponseHeaders.setDefault(values);
- return this;
- }
-
+// /**
+// * Default form data parameters.
+// *
+// * <p>
+// * Sets default values for form data parameters.
+// *
+// * <h5 class='section'>Example:</h5>
+// * <p class='bcode w800'>
+// * <ja>@RestPost</ja>(path=<js>"/*"</js>,
defaultRequestFormData={<js>"foo=bar"</js>})
+// * <jk>public</jk> String doGet(<ja>@FormData</ja>(<js>"foo"</js>)
String <jv>foo</jv>) {...}
+// * </p>
+//
+// * <ul class='seealso'>
+// * <li class='ja'>{@link RestOp#defaultFormData}
+// * <li class='ja'>{@link RestPost#defaultFormData}
+// * </ul>
+// *
+// * @param values The form data parameters to add.
+// * @return This object (for method chaining).
+// */
+// @FluentSetter
+// public RestOpContextBuilder
defaultRequestFormData(NameValuePair...values) {
+// defaultRequestFormData.setDefault(values);
+// return this;
+// }
+//
+// /**
+// * Default query parameters.
+// *
+// * <p>
+// * Sets default values for query data parameters.
+// *
+// * <p>
+// * Affects values returned by {@link RestRequest#getQueryParam(String)}
when the parameter is not present on the request.
+// *
+// * <h5 class='section'>Example:</h5>
+// * <p class='bcode w800'>
+// * <ja>@RestGet</ja>(path=<js>"/*"</js>,
defaultRequestQueryData={<js>"foo=bar"</js>})
+// * <jk>public</jk> String doGet(<ja>@Query</ja>(<js>"foo"</js>)
String <jv>foo</jv>) {...}
+// * </p>
+//
+// * <ul class='seealso'>
+// * <li class='ja'>{@link RestOp#defaultQueryData}
+// * <li class='ja'>{@link RestGet#defaultQueryData}
+// * <li class='ja'>{@link RestPut#defaultQueryData}
+// * <li class='ja'>{@link RestPost#defaultQueryData}
+// * <li class='ja'>{@link RestDelete#defaultQueryData}
+// * </ul>
+// *
+// * @param values The query parameters to add.
+// * @return This object (for method chaining).
+// */
+// @FluentSetter
+// public RestOpContextBuilder
defaultRequestQueryData(NameValuePair...values) {
+// defaultRequestQueryData.setDefault(values);
+// return this;
+// }
+//
+// /**
+// * Default request attributes.
+// *
+// * <p>
+// * Specifies default values for request attributes if they are not
already set on the request.
+// *
+// * <h5 class='section'>Example:</h5>
+// * <p class='bcode w800'>
+// * <jc>// Assume "text/json" Accept value when Accept not
specified</jc>
+// * <ja>@RestGet</ja>(path=<js>"/*"</js>,
defaultRequestAttributes={<js>"Foo=bar"</js>})
+// * <jk>public</jk> String doGet() {...}
+// * </p>
+// *
+// * <ul class='seealso'>
+// * <li class='ja'>{@link RestOp#defaultRequestAttributes()}
+// * <li class='ja'>{@link RestGet#defaultRequestAttributes()}
+// * <li class='ja'>{@link RestPut#defaultRequestAttributes()}
+// * <li class='ja'>{@link RestPost#defaultRequestAttributes()}
+// * <li class='ja'>{@link RestDelete#defaultRequestAttributes()}
+// * </ul>
+// *
+// * @param values The request attributes to add.
+// * @return This object (for method chaining).
+// */
+// @FluentSetter
+// public RestOpContextBuilder
defaultRequestAttributes(NamedAttribute...values) {
+// defaultRequestAttributes.append(values);
+// return this;
+// }
+//
+// /**
+// * <i><l>RestOpContext</l> configuration property: </i> Default
request headers.
+// *
+// * <p>
+// * Specifies default values for request headers if they're not passed
in through the request.
+// *
+// * <h5 class='section'>Example:</h5>
+// * <p class='bcode w800'>
+// * <jc>// Assume "text/json" Accept value when Accept not
specified</jc>
+// * <ja>@RestGet</ja>(path=<js>"/*"</js>,
defaultRequestHeaders={<js>"Accept: text/json"</js>})
+// * <jk>public</jk> String doGet() {...}
+// * </p>
+// *
+// * <ul class='seealso'>
+// * <li class='ja'>{@link RestOp#defaultRequestHeaders}
+// * <li class='ja'>{@link RestGet#defaultRequestHeaders}
+// * <li class='ja'>{@link RestPut#defaultRequestHeaders}
+// * <li class='ja'>{@link RestPost#defaultRequestHeaders}
+// * <li class='ja'>{@link RestDelete#defaultRequestHeaders}
+// * </ul>
+// *
+// * @param values The headers to add.
+// * @return This object (for method chaining).
+// */
+// @FluentSetter
+// public RestOpContextBuilder defaultRequestHeaders(Header...values) {
+// defaultRequestHeaders.setDefault(values);
+// return this;
+// }
+//
+// /**
+// * Default response headers.
+// *
+// * <p>
+// * Specifies default values for response headers if they're not set
after the Java REST method is called.
+// *
+// * <h5 class='section'>Example:</h5>
+// * <p class='bcode w800'>
+// * <jc>// Assume "text/json" Accept value when Accept not
specified</jc>
+// * <ja>@RestGet</ja>(path=<js>"/*"</js>,
defaultResponseHeaders={<js>"Content-Type: text/json"</js>})
+// * <jk>public</jk> String doGet() {...}
+// * </p>
+// *
+// * <ul class='seealso'>
+// * <li class='ja'>{@link RestOp#defaultResponseHeaders}
+// * <li class='ja'>{@link RestGet#defaultResponseHeaders}
+// * <li class='ja'>{@link RestPut#defaultResponseHeaders}
+// * <li class='ja'>{@link RestPost#defaultResponseHeaders}
+// * <li class='ja'>{@link RestDelete#defaultResponseHeaders}
+// * </ul>
+// *
+// * @param values The headers to add.
+// * @return This object (for method chaining).
+// */
+// @FluentSetter
+// public RestOpContextBuilder defaultResponseHeaders(Header...values) {
+// defaultResponseHeaders.setDefault(values);
+// return this;
+// }
+//
/**
* HTTP method name.
*
@@ -1613,4 +2012,16 @@ public class RestOpContextBuilder extends ContextBuilder
{
}
// </FluentSetters>
+
+
//-----------------------------------------------------------------------------------------------------------------
+ // Helper methods.
+
//-----------------------------------------------------------------------------------------------------------------
+
+ private String joinnlFirstNonEmptyArray(String[]...s) {
+ for (String[] ss : s)
+ if (ss.length > 0)
+ return joinnl(ss);
+ return null;
+ }
+
}
\ No newline at end of file
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 63b9115..26e0a94 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,7 +188,7 @@ public final class RestRequest {
pathParams.parser(partParserSession);
queryParams
- .addDefault(opContext.getDefaultRequestQuery().getAll())
+
.addDefault(opContext.getDefaultRequestQueryData().getAll())
.parser(partParserSession);
headers
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestDelete.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestDelete.java
index a511440..1e9d532 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestDelete.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestDelete.java
@@ -185,7 +185,7 @@ public @interface RestDelete {
*
* <h5 class='section'>Example:</h5>
* <p class='bcode w800'>
- * <ja>@RestDelete</ja>(path=<js>"/*"</js>,
defaultQueryData={<js>"foo=bar"</js>})
+ * <ja>@RestDelete</ja>(path=<js>"/*"</js>,
defaultRequestQueryData={<js>"foo=bar"</js>})
* <jk>public</jk> String doDelete(<ja>@Query</ja>(<js>"foo"</js>)
String foo) {...}
* </p>
*
@@ -199,7 +199,7 @@ public @interface RestDelete {
* (e.g. <js>"$S{mySystemProperty}"</js>).
* </ul>
*/
- String[] defaultQueryData() default {};
+ String[] defaultRequestQueryData() default {};
/**
* Default request attributes.
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestDeleteAnnotation.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestDeleteAnnotation.java
index 1e09a3a..1086de1 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestDeleteAnnotation.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestDeleteAnnotation.java
@@ -67,7 +67,7 @@ public class RestDeleteAnnotation {
Class<? extends Encoder>[] encoders = new Class[0];
OpSwagger swagger = OpSwaggerAnnotation.DEFAULT;
String clientVersion="", debug="", defaultAccept="",
defaultCharset="", rolesDeclared="", roleGuard="", summary="", value="";
- String[] defaultQueryData={}, defaultRequestAttributes={},
defaultRequestHeaders={}, defaultResponseHeaders={}, description={}, path={};
+ String[] defaultRequestQueryData={},
defaultRequestAttributes={}, defaultRequestHeaders={},
defaultResponseHeaders={}, description={}, path={};
/**
* Constructor.
@@ -141,13 +141,13 @@ public class RestDeleteAnnotation {
}
/**
- * Sets the {@link RestDelete#defaultQueryData()} property on
this annotation.
+ * Sets the {@link RestDelete#defaultRequestQueryData()}
property on this annotation.
*
* @param value The new value for this property.
* @return This object (for method chaining).
*/
- public Builder defaultQueryData(String...value) {
- this.defaultQueryData = value;
+ public Builder defaultRequestQueryData(String...value) {
+ this.defaultRequestQueryData = value;
return this;
}
@@ -323,7 +323,7 @@ public class RestDeleteAnnotation {
private final Class<? extends Encoder>[] encoders;
private final OpSwagger swagger;
private final String clientVersion, debug, defaultAccept,
defaultCharset, rolesDeclared, roleGuard, summary, value;
- private final String[] defaultQueryData,
defaultRequestAttributes, defaultRequestHeaders, defaultResponseHeaders,
description, path;
+ private final String[] defaultRequestQueryData,
defaultRequestAttributes, defaultRequestHeaders, defaultResponseHeaders,
description, path;
Impl(Builder b) {
super(b);
@@ -332,7 +332,7 @@ public class RestDeleteAnnotation {
this.debug = b.debug;
this.defaultAccept = b.defaultAccept;
this.defaultCharset = b.defaultCharset;
- this.defaultQueryData = copyOf(b.defaultQueryData);
+ this.defaultRequestQueryData =
copyOf(b.defaultRequestQueryData);
this.defaultRequestAttributes =
copyOf(b.defaultRequestAttributes);
this.defaultRequestHeaders =
copyOf(b.defaultRequestHeaders);
this.defaultResponseHeaders =
copyOf(b.defaultResponseHeaders);
@@ -375,8 +375,8 @@ public class RestDeleteAnnotation {
}
@Override /* RestDelete */
- public String[] defaultQueryData() {
- return defaultQueryData;
+ public String[] defaultRequestQueryData() {
+ return defaultRequestQueryData;
}
@Override /* RestDelete */
@@ -471,11 +471,11 @@ public class RestDeleteAnnotation {
classes(a.encoders()).ifPresent(x ->
b.encoders().set(x));
type(a.contextClass()).ifPresent(x -> b.type(x));
- strings(a.defaultRequestHeaders()).map(x ->
stringHeader(x)).forEach(x -> b.defaultRequestHeaders(x));
- strings(a.defaultResponseHeaders()).map(x ->
stringHeader(x)).forEach(x -> b.defaultResponseHeaders(x));
- strings(a.defaultRequestAttributes()).map(x ->
BasicNamedAttribute.ofPair(x)).forEach(x -> b.defaultRequestAttributes(x));
- strings(a.defaultQueryData()).map(x ->
basicPart(x)).forEach(x -> b.defaultQueryData(x));
- string(a.defaultAccept()).map(x ->
accept(x)).ifPresent(x -> b.defaultRequestHeaders(x));
+ strings(a.defaultRequestHeaders()).map(x ->
stringHeader(x)).forEach(x -> b.defaultRequestHeaders().setDefault(x));
+ strings(a.defaultResponseHeaders()).map(x ->
stringHeader(x)).forEach(x -> b.defaultResponseHeaders().setDefault(x));
+ strings(a.defaultRequestAttributes()).map(x ->
BasicNamedAttribute.ofPair(x)).forEach(x ->
b.defaultRequestAttributes().add(x));
+ strings(a.defaultRequestQueryData()).map(x ->
basicPart(x)).forEach(x -> b.defaultRequestQueryData().setDefault(x));
+ string(a.defaultAccept()).map(x ->
accept(x)).ifPresent(x -> b.defaultRequestHeaders().setDefault(x));
b.guards().append(a.guards());
b.matchers().append(a.matchers());
string(a.clientVersion()).ifPresent(x ->
b.clientVersion(x));
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestGet.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestGet.java
index 540e963..026787c 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestGet.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestGet.java
@@ -201,7 +201,7 @@ public @interface RestGet {
*
* <h5 class='section'>Example:</h5>
* <p class='bcode w800'>
- * <ja>@RestGet</ja>(path=<js>"/*"</js>,
defaultQueryData={<js>"foo=bar"</js>})
+ * <ja>@RestGet</ja>(path=<js>"/*"</js>,
defaultRequestQueryData={<js>"foo=bar"</js>})
* <jk>public</jk> String doGet(<ja>@Query</ja>(<js>"foo"</js>)
String foo) {...}
* </p>
*
@@ -215,7 +215,7 @@ public @interface RestGet {
* (e.g. <js>"$S{mySystemProperty}"</js>).
* </ul>
*/
- String[] defaultQueryData() default {};
+ String[] defaultRequestQueryData() default {};
/**
* Default request attributes.
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestGetAnnotation.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestGetAnnotation.java
index a617021..76c9e4b 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestGetAnnotation.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestGetAnnotation.java
@@ -71,7 +71,7 @@ public class RestGetAnnotation {
Class<? extends Serializer>[] serializers = new Class[0];
OpSwagger swagger = OpSwaggerAnnotation.DEFAULT;
String clientVersion="", debug="", defaultAccept="",
defaultCharset="", rolesDeclared="", roleGuard="", summary="", value="";
- String[] defaultQueryData={}, defaultRequestAttributes={},
defaultRequestHeaders={}, defaultResponseHeaders={}, description={}, path={},
produces={};
+ String[] defaultRequestQueryData={},
defaultRequestAttributes={}, defaultRequestHeaders={},
defaultResponseHeaders={}, description={}, path={}, produces={};
/**
* Constructor.
@@ -156,13 +156,13 @@ public class RestGetAnnotation {
}
/**
- * Sets the {@link RestGet#defaultQueryData()} property on this
annotation.
+ * Sets the {@link RestGet#defaultRequestQueryData()} property
on this annotation.
*
* @param value The new value for this property.
* @return This object (for method chaining).
*/
- public Builder defaultQueryData(String...value) {
- this.defaultQueryData = value;
+ public Builder defaultRequestQueryData(String...value) {
+ this.defaultRequestQueryData = value;
return this;
}
@@ -362,7 +362,7 @@ public class RestGetAnnotation {
private final Class<? extends Serializer>[] serializers;
private final OpSwagger swagger;
private final String clientVersion, debug, defaultAccept,
defaultCharset, rolesDeclared, roleGuard, summary, value;
- private final String[] defaultQueryData,
defaultRequestAttributes, defaultRequestHeaders, defaultResponseHeaders,
description, path, produces;
+ private final String[] defaultRequestQueryData,
defaultRequestAttributes, defaultRequestHeaders, defaultResponseHeaders,
description, path, produces;
Impl(Builder b) {
super(b);
@@ -372,7 +372,7 @@ public class RestGetAnnotation {
this.debug = b.debug;
this.defaultAccept = b.defaultAccept;
this.defaultCharset = b.defaultCharset;
- this.defaultQueryData = copyOf(b.defaultQueryData);
+ this.defaultRequestQueryData =
copyOf(b.defaultRequestQueryData);
this.defaultRequestAttributes =
copyOf(b.defaultRequestAttributes);
this.defaultRequestHeaders =
copyOf(b.defaultRequestHeaders);
this.defaultResponseHeaders =
copyOf(b.defaultResponseHeaders);
@@ -422,8 +422,8 @@ public class RestGetAnnotation {
}
@Override /* RestGet */
- public String[] defaultQueryData() {
- return defaultQueryData;
+ public String[] defaultRequestQueryData() {
+ return defaultRequestQueryData;
}
@Override /* RestGet */
@@ -530,11 +530,11 @@ public class RestGetAnnotation {
classes(a.encoders()).ifPresent(x ->
b.encoders().set(x));
type(a.contextClass()).ifPresent(x -> b.type(x));
strings(a.produces()).map(MediaType::of).forEach(x ->
b.produces(x));
- strings(a.defaultRequestHeaders()).map(x ->
stringHeader(x)).forEach(x -> b.defaultRequestHeaders(x));
- strings(a.defaultResponseHeaders()).map(x ->
stringHeader(x)).forEach(x -> b.defaultResponseHeaders(x));
- strings(a.defaultRequestAttributes()).map(x ->
BasicNamedAttribute.ofPair(x)).forEach(x -> b.defaultRequestAttributes(x));
- strings(a.defaultQueryData()).map(x ->
basicPart(x)).forEach(x -> b.defaultQueryData(x));
- string(a.defaultAccept()).map(x ->
accept(x)).ifPresent(x -> b.defaultRequestHeaders(x));
+ strings(a.defaultRequestHeaders()).map(x ->
stringHeader(x)).forEach(x -> b.defaultRequestHeaders().setDefault(x));
+ strings(a.defaultResponseHeaders()).map(x ->
stringHeader(x)).forEach(x -> b.defaultResponseHeaders().setDefault(x));
+ strings(a.defaultRequestAttributes()).map(x ->
BasicNamedAttribute.ofPair(x)).forEach(x ->
b.defaultRequestAttributes().add(x));
+ strings(a.defaultRequestQueryData()).map(x ->
basicPart(x)).forEach(x -> b.defaultRequestQueryData().setDefault(x));
+ string(a.defaultAccept()).map(x ->
accept(x)).ifPresent(x -> b.defaultRequestHeaders().setDefault(x));
b.converters().append(a.converters());
b.guards().append(a.guards());
b.matchers().append(a.matchers());
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestOp.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestOp.java
index be71dd4..6c10462 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestOp.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestOp.java
@@ -230,7 +230,7 @@ public @interface RestOp {
*
* <h5 class='section'>Example:</h5>
* <p class='bcode w800'>
- * <ja>@RestOp</ja>(method=<jsf>POST</jsf>, path=<js>"/*"</js>,
defaultFormData={<js>"foo=bar"</js>})
+ * <ja>@RestOp</ja>(method=<jsf>POST</jsf>, path=<js>"/*"</js>,
defaultRequestFormData={<js>"foo=bar"</js>})
* <jk>public</jk> String doGet(<ja>@FormData</ja>(<js>"foo"</js>)
String foo) {...}
* </p>
*
@@ -244,7 +244,7 @@ public @interface RestOp {
* (e.g. <js>"$S{mySystemProperty}"</js>).
* </ul>
*/
- String[] defaultFormData() default {};
+ String[] defaultRequestFormData() default {};
/**
* Specifies default values for query parameters.
@@ -257,7 +257,7 @@ public @interface RestOp {
*
* <h5 class='section'>Example:</h5>
* <p class='bcode w800'>
- * <ja>@RestOp</ja>(method=<jsf>GET</jsf>, path=<js>"/*"</js>,
defaultQueryData={<js>"foo=bar"</js>})
+ * <ja>@RestOp</ja>(method=<jsf>GET</jsf>, path=<js>"/*"</js>,
defaultRequestQueryData={<js>"foo=bar"</js>})
* <jk>public</jk> String doGet(<ja>@Query</ja>(<js>"foo"</js>)
String foo) {...}
* </p>
*
@@ -271,7 +271,7 @@ public @interface RestOp {
* (e.g. <js>"$S{mySystemProperty}"</js>).
* </ul>
*/
- String[] defaultQueryData() default {};
+ String[] defaultRequestQueryData() default {};
/**
* Default request attributes.
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestOpAnnotation.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestOpAnnotation.java
index 59c1001..ffe7868 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestOpAnnotation.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestOpAnnotation.java
@@ -73,7 +73,7 @@ public class RestOpAnnotation {
Class<?>[] parsers=new Class<?>[0];
OpSwagger swagger = OpSwaggerAnnotation.DEFAULT;
String clientVersion="", debug="", defaultAccept="",
defaultCharset="", defaultContentType="", maxInput="", method="",
rolesDeclared="", roleGuard="", summary="", value="";
- String[] consumes={}, defaultFormData={}, defaultQueryData={},
defaultRequestAttributes={}, defaultRequestHeaders={},
defaultResponseHeaders={}, description={}, path={}, produces={};
+ String[] consumes={}, defaultRequestFormData={},
defaultRequestQueryData={}, defaultRequestAttributes={},
defaultRequestHeaders={}, defaultResponseHeaders={}, description={}, path={},
produces={};
/**
* Constructor.
@@ -180,24 +180,24 @@ public class RestOpAnnotation {
}
/**
- * Sets the {@link RestOp#defaultFormData()} property on this
annotation.
+ * Sets the {@link RestOp#defaultRequestFormData()} property on
this annotation.
*
* @param value The new value for this property.
* @return This object (for method chaining).
*/
- public Builder defaultFormData(String...value) {
- this.defaultFormData = value;
+ public Builder defaultRequestFormData(String...value) {
+ this.defaultRequestFormData = value;
return this;
}
/**
- * Sets the {@link RestOp#defaultQueryData()} property on this
annotation.
+ * Sets the {@link RestOp#defaultRequestQueryData()} property
on this annotation.
*
* @param value The new value for this property.
* @return This object (for method chaining).
*/
- public Builder defaultQueryData(String...value) {
- this.defaultQueryData = value;
+ public Builder defaultRequestQueryData(String...value) {
+ this.defaultRequestQueryData = value;
return this;
}
@@ -431,7 +431,7 @@ public class RestOpAnnotation {
private final Class<?>[] parsers;
private final OpSwagger swagger;
private final String clientVersion, debug, defaultAccept,
defaultCharset, defaultContentType, maxInput, method, rolesDeclared, roleGuard,
summary, value;
- private final String[] consumes, defaultFormData,
defaultQueryData, defaultRequestAttributes, defaultRequestHeaders,
defaultResponseHeaders, description, path, produces;
+ private final String[] consumes, defaultRequestFormData,
defaultRequestQueryData, defaultRequestAttributes, defaultRequestHeaders,
defaultResponseHeaders, description, path, produces;
Impl(Builder b) {
super(b);
@@ -443,8 +443,8 @@ public class RestOpAnnotation {
this.defaultAccept = b.defaultAccept;
this.defaultCharset = b.defaultCharset;
this.defaultContentType = b.defaultContentType;
- this.defaultFormData = copyOf(b.defaultFormData);
- this.defaultQueryData = copyOf(b.defaultQueryData);
+ this.defaultRequestFormData =
copyOf(b.defaultRequestFormData);
+ this.defaultRequestQueryData =
copyOf(b.defaultRequestQueryData);
this.defaultRequestAttributes =
copyOf(b.defaultRequestAttributes);
this.defaultRequestHeaders =
copyOf(b.defaultRequestHeaders);
this.defaultResponseHeaders =
copyOf(b.defaultResponseHeaders);
@@ -507,13 +507,13 @@ public class RestOpAnnotation {
}
@Override /* RestOp */
- public String[] defaultFormData() {
- return defaultFormData;
+ public String[] defaultRequestFormData() {
+ return defaultRequestFormData;
}
@Override /* RestOp */
- public String[] defaultQueryData() {
- return defaultQueryData;
+ public String[] defaultRequestQueryData() {
+ return defaultRequestQueryData;
}
@Override /* RestOp */
@@ -635,13 +635,13 @@ public class RestOpAnnotation {
type(a.contextClass()).ifPresent(x -> b.type(x));
strings(a.produces()).map(MediaType::of).forEach(x ->
b.produces(x));
strings(a.consumes()).map(MediaType::of).forEach(x ->
b.consumes(x));
- strings(a.defaultRequestHeaders()).map(x ->
stringHeader(x)).forEach(x -> b.defaultRequestHeaders(x));
- strings(a.defaultResponseHeaders()).map(x ->
stringHeader(x)).forEach(x -> b.defaultResponseHeaders(x));
- strings(a.defaultRequestAttributes()).map(x ->
BasicNamedAttribute.ofPair(x)).forEach(x -> b.defaultRequestAttributes(x));
- strings(a.defaultQueryData()).map(x ->
basicPart(x)).forEach(x -> b.defaultQueryData(x));
- strings(a.defaultFormData()).map(x ->
basicPart(x)).forEach(x -> b.defaultFormData(x));
- string(a.defaultAccept()).map(x ->
accept(x)).ifPresent(x -> b.defaultRequestHeaders(x));
- string(a.defaultContentType()).map(x ->
contentType(x)).ifPresent(x -> b.defaultRequestHeaders(x));
+ strings(a.defaultRequestHeaders()).map(x ->
stringHeader(x)).forEach(x -> b.defaultRequestHeaders().setDefault(x));
+ strings(a.defaultResponseHeaders()).map(x ->
stringHeader(x)).forEach(x -> b.defaultResponseHeaders().setDefault(x));
+ strings(a.defaultRequestAttributes()).map(x ->
BasicNamedAttribute.ofPair(x)).forEach(x ->
b.defaultRequestAttributes().add(x));
+ strings(a.defaultRequestQueryData()).map(x ->
basicPart(x)).forEach(x -> b.defaultRequestQueryData().setDefault(x));
+ strings(a.defaultRequestFormData()).map(x ->
basicPart(x)).forEach(x -> b.defaultRequestFormData().setDefault(x));
+ string(a.defaultAccept()).map(x ->
accept(x)).ifPresent(x -> b.defaultRequestHeaders().setDefault(x));
+ string(a.defaultContentType()).map(x ->
contentType(x)).ifPresent(x -> b.defaultRequestHeaders().setDefault(x));
b.converters().append(a.converters());
b.guards().append(a.guards());
b.matchers().append(a.matchers());
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPost.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPost.java
index 8f34f7b..fe5fc72 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPost.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPost.java
@@ -232,7 +232,7 @@ public @interface RestPost {
*
* <h5 class='section'>Example:</h5>
* <p class='bcode w800'>
- * <ja>@RestPost</ja>(path=<js>"/*"</js>,
defaultFormData={<js>"foo=bar"</js>})
+ * <ja>@RestPost</ja>(path=<js>"/*"</js>,
defaultRequestFormData={<js>"foo=bar"</js>})
* <jk>public</jk> String doGet(<ja>@FormData</ja>(<js>"foo"</js>)
String foo) {...}
* </p>
*
@@ -246,7 +246,7 @@ public @interface RestPost {
* (e.g. <js>"$S{mySystemProperty}"</js>).
* </ul>
*/
- String[] defaultFormData() default {};
+ String[] defaultRequestFormData() default {};
/**
* Specifies default values for query parameters.
@@ -259,7 +259,7 @@ public @interface RestPost {
*
* <h5 class='section'>Example:</h5>
* <p class='bcode w800'>
- * <ja>@RestPost</ja>(path=<js>"/*"</js>,
defaultQueryData={<js>"foo=bar"</js>})
+ * <ja>@RestPost</ja>(path=<js>"/*"</js>,
defaultRequestQueryData={<js>"foo=bar"</js>})
* <jk>public</jk> String doPost(<ja>@Query</ja>(<js>"foo"</js>)
String foo) {...}
* </p>
*
@@ -273,7 +273,7 @@ public @interface RestPost {
* (e.g. <js>"$S{mySystemProperty}"</js>).
* </ul>
*/
- String[] defaultQueryData() default {};
+ String[] defaultRequestQueryData() default {};
/**
* Default request attributes.
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPostAnnotation.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPostAnnotation.java
index 344dff5..0e726c0 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPostAnnotation.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPostAnnotation.java
@@ -72,7 +72,7 @@ public class RestPostAnnotation {
Class<?>[] parsers=new Class<?>[0];
OpSwagger swagger = OpSwaggerAnnotation.DEFAULT;
String clientVersion="", debug="", defaultAccept="",
defaultCharset="", defaultContentType="", maxInput="", rolesDeclared="",
roleGuard="", summary="", value="";
- String[] consumes={}, defaultFormData={}, defaultQueryData={},
defaultRequestAttributes={}, defaultRequestHeaders={},
defaultResponseHeaders={}, description={}, path={}, produces={};
+ String[] consumes={}, defaultRequestFormData={},
defaultRequestQueryData={}, defaultRequestAttributes={},
defaultRequestHeaders={}, defaultResponseHeaders={}, description={}, path={},
produces={};
/**
* Constructor.
@@ -179,24 +179,24 @@ public class RestPostAnnotation {
}
/**
- * Sets the {@link RestPost#defaultFormData()} property on this
annotation.
+ * Sets the {@link RestPost#defaultRequestFormData()} property
on this annotation.
*
* @param value The new value for this property.
* @return This object (for method chaining).
*/
- public Builder defaultFormData(String...value) {
- this.defaultFormData = value;
+ public Builder defaultRequestFormData(String...value) {
+ this.defaultRequestFormData = value;
return this;
}
/**
- * Sets the {@link RestPost#defaultQueryData()} property on
this annotation.
+ * Sets the {@link RestPost#defaultRequestQueryData()} property
on this annotation.
*
* @param value The new value for this property.
* @return This object (for method chaining).
*/
- public Builder defaultQueryData(String...value) {
- this.defaultQueryData = value;
+ public Builder defaultRequestQueryData(String...value) {
+ this.defaultRequestQueryData = value;
return this;
}
@@ -419,7 +419,7 @@ public class RestPostAnnotation {
private final Class<?>[] parsers;
private final OpSwagger swagger;
private final String clientVersion, debug, defaultAccept,
defaultCharset, defaultContentType, maxInput, rolesDeclared, roleGuard,
summary, value;
- private final String[] consumes, defaultFormData,
defaultQueryData, defaultRequestAttributes, defaultRequestHeaders,
defaultResponseHeaders, description, path, produces;
+ private final String[] consumes, defaultRequestFormData,
defaultRequestQueryData, defaultRequestAttributes, defaultRequestHeaders,
defaultResponseHeaders, description, path, produces;
Impl(Builder b) {
super(b);
@@ -431,8 +431,8 @@ public class RestPostAnnotation {
this.defaultAccept = b.defaultAccept;
this.defaultCharset = b.defaultCharset;
this.defaultContentType = b.defaultContentType;
- this.defaultFormData = copyOf(b.defaultFormData);
- this.defaultQueryData = copyOf(b.defaultQueryData);
+ this.defaultRequestFormData =
copyOf(b.defaultRequestFormData);
+ this.defaultRequestQueryData =
copyOf(b.defaultRequestQueryData);
this.defaultRequestAttributes =
copyOf(b.defaultRequestAttributes);
this.defaultRequestHeaders =
copyOf(b.defaultRequestHeaders);
this.defaultResponseHeaders =
copyOf(b.defaultResponseHeaders);
@@ -494,13 +494,13 @@ public class RestPostAnnotation {
}
@Override /* RestPost */
- public String[] defaultFormData() {
- return defaultFormData;
+ public String[] defaultRequestFormData() {
+ return defaultRequestFormData;
}
@Override /* RestPost */
- public String[] defaultQueryData() {
- return defaultQueryData;
+ public String[] defaultRequestQueryData() {
+ return defaultRequestQueryData;
}
@Override /* RestPost */
@@ -619,13 +619,13 @@ public class RestPostAnnotation {
type(a.contextClass()).ifPresent(x -> b.type(x));
strings(a.produces()).map(MediaType::of).forEach(x ->
b.produces(x));
strings(a.consumes()).map(MediaType::of).forEach(x ->
b.consumes(x));
- strings(a.defaultRequestHeaders()).map(x ->
stringHeader(x)).forEach(x -> b.defaultRequestHeaders(x));
- strings(a.defaultResponseHeaders()).map(x ->
stringHeader(x)).forEach(x -> b.defaultResponseHeaders(x));
- strings(a.defaultRequestAttributes()).map(x ->
BasicNamedAttribute.ofPair(x)).forEach(x -> b.defaultRequestAttributes(x));
- strings(a.defaultQueryData()).map(x ->
basicPart(x)).forEach(x -> b.defaultQueryData(x));
- strings(a.defaultFormData()).map(x ->
basicPart(x)).forEach(x -> b.defaultFormData(x));
- string(a.defaultAccept()).map(x ->
accept(x)).ifPresent(x -> b.defaultRequestHeaders(x));
- string(a.defaultContentType()).map(x ->
contentType(x)).ifPresent(x -> b.defaultRequestHeaders(x));
+ strings(a.defaultRequestHeaders()).map(x ->
stringHeader(x)).forEach(x -> b.defaultRequestHeaders().setDefault(x));
+ strings(a.defaultResponseHeaders()).map(x ->
stringHeader(x)).forEach(x -> b.defaultResponseHeaders().setDefault(x));
+ strings(a.defaultRequestAttributes()).map(x ->
BasicNamedAttribute.ofPair(x)).forEach(x ->
b.defaultRequestAttributes().add(x));
+ strings(a.defaultRequestQueryData()).map(x ->
basicPart(x)).forEach(x -> b.defaultRequestQueryData().setDefault(x));
+ strings(a.defaultRequestFormData()).map(x ->
basicPart(x)).forEach(x -> b.defaultRequestFormData().setDefault(x));
+ string(a.defaultAccept()).map(x ->
accept(x)).ifPresent(x -> b.defaultRequestHeaders().setDefault(x));
+ string(a.defaultContentType()).map(x ->
contentType(x)).ifPresent(x -> b.defaultRequestHeaders().setDefault(x));
b.converters().append(a.converters());
b.guards().append(a.guards());
b.matchers().append(a.matchers());
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPut.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPut.java
index 057d5ee..66cdb9d 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPut.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPut.java
@@ -232,7 +232,7 @@ public @interface RestPut {
*
* <h5 class='section'>Example:</h5>
* <p class='bcode w800'>
- * <ja>@RestPut</ja>(path=<js>"/*"</js>,
defaultFormData={<js>"foo=bar"</js>})
+ * <ja>@RestPut</ja>(path=<js>"/*"</js>,
defaultRequestFormData={<js>"foo=bar"</js>})
* <jk>public</jk> String doPut(<ja>@FormData</ja>(<js>"foo"</js>)
String foo) {...}
* </p>
*
@@ -246,7 +246,7 @@ public @interface RestPut {
* (e.g. <js>"$S{mySystemProperty}"</js>).
* </ul>
*/
- String[] defaultFormData() default {};
+ String[] defaultRequestFormData() default {};
/**
* Specifies default values for query parameters.
@@ -259,7 +259,7 @@ public @interface RestPut {
*
* <h5 class='section'>Example:</h5>
* <p class='bcode w800'>
- * <ja>@RestPut</ja>(path=<js>"/*"</js>,
defaultQueryData={<js>"foo=bar"</js>})
+ * <ja>@RestPut</ja>(path=<js>"/*"</js>,
defaultRequestQueryData={<js>"foo=bar"</js>})
* <jk>public</jk> String doPut(<ja>@Query</ja>(<js>"foo"</js>)
String foo) {...}
* </p>
*
@@ -273,7 +273,7 @@ public @interface RestPut {
* (e.g. <js>"$S{mySystemProperty}"</js>).
* </ul>
*/
- String[] defaultQueryData() default {};
+ String[] defaultRequestQueryData() default {};
/**
* Default request attributes.
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPutAnnotation.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPutAnnotation.java
index cc422de..5162cf6 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPutAnnotation.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPutAnnotation.java
@@ -72,7 +72,7 @@ public class RestPutAnnotation {
Class<?>[] parsers=new Class<?>[0];
OpSwagger swagger = OpSwaggerAnnotation.DEFAULT;
String clientVersion="", debug="", defaultAccept="",
defaultCharset="", defaultContentType="", maxInput="", rolesDeclared="",
roleGuard="", summary="", value="";
- String[] consumes={}, defaultFormData={}, defaultQueryData={},
defaultRequestAttributes={}, defaultRequestHeaders={},
defaultResponseHeaders={}, description={}, path={}, produces={};
+ String[] consumes={}, defaultRequestFormData={},
defaultRequestQueryData={}, defaultRequestAttributes={},
defaultRequestHeaders={}, defaultResponseHeaders={}, description={}, path={},
produces={};
/**
* Constructor.
@@ -179,24 +179,24 @@ public class RestPutAnnotation {
}
/**
- * Sets the {@link RestPut#defaultFormData()} property on this
annotation.
+ * Sets the {@link RestPut#defaultRequestFormData()} property
on this annotation.
*
* @param value The new value for this property.
* @return This object (for method chaining).
*/
- public Builder defaultFormData(String...value) {
- this.defaultFormData = value;
+ public Builder defaultRequestFormData(String...value) {
+ this.defaultRequestFormData = value;
return this;
}
/**
- * Sets the {@link RestPut#defaultQueryData()} property on this
annotation.
+ * Sets the {@link RestPut#defaultRequestQueryData()} property
on this annotation.
*
* @param value The new value for this property.
* @return This object (for method chaining).
*/
- public Builder defaultQueryData(String...value) {
- this.defaultQueryData = value;
+ public Builder defaultRequestQueryData(String...value) {
+ this.defaultRequestQueryData = value;
return this;
}
@@ -419,7 +419,7 @@ public class RestPutAnnotation {
private final Class<?>[] parsers;
private final OpSwagger swagger;
private final String clientVersion, debug, defaultAccept,
defaultCharset, defaultContentType, maxInput, rolesDeclared, roleGuard,
summary, value;
- private final String[] consumes, defaultFormData,
defaultQueryData, defaultRequestAttributes, defaultRequestHeaders,
defaultResponseHeaders, description, path, produces;
+ private final String[] consumes, defaultRequestFormData,
defaultRequestQueryData, defaultRequestAttributes, defaultRequestHeaders,
defaultResponseHeaders, description, path, produces;
Impl(Builder b) {
super(b);
@@ -431,8 +431,8 @@ public class RestPutAnnotation {
this.defaultAccept = b.defaultAccept;
this.defaultCharset = b.defaultCharset;
this.defaultContentType = b.defaultContentType;
- this.defaultFormData = copyOf(b.defaultFormData);
- this.defaultQueryData = copyOf(b.defaultQueryData);
+ this.defaultRequestFormData =
copyOf(b.defaultRequestFormData);
+ this.defaultRequestQueryData =
copyOf(b.defaultRequestQueryData);
this.defaultRequestAttributes =
copyOf(b.defaultRequestAttributes);
this.defaultRequestHeaders =
copyOf(b.defaultRequestHeaders);
this.defaultResponseHeaders =
copyOf(b.defaultResponseHeaders);
@@ -494,13 +494,13 @@ public class RestPutAnnotation {
}
@Override /* RestPut */
- public String[] defaultFormData() {
- return defaultFormData;
+ public String[] defaultRequestFormData() {
+ return defaultRequestFormData;
}
@Override /* RestPut */
- public String[] defaultQueryData() {
- return defaultQueryData;
+ public String[] defaultRequestQueryData() {
+ return defaultRequestQueryData;
}
@Override /* RestPut */
@@ -619,13 +619,13 @@ public class RestPutAnnotation {
type(a.contextClass()).ifPresent(x -> b.type(x));
strings(a.produces()).map(MediaType::of).forEach(x ->
b.produces(x));
strings(a.consumes()).map(MediaType::of).forEach(x ->
b.consumes(x));
- strings(a.defaultRequestHeaders()).map(x ->
stringHeader(x)).forEach(x -> b.defaultRequestHeaders(x));
- strings(a.defaultResponseHeaders()).map(x ->
stringHeader(x)).forEach(x -> b.defaultResponseHeaders(x));
- strings(a.defaultRequestAttributes()).map(x ->
BasicNamedAttribute.ofPair(x)).forEach(x -> b.defaultRequestAttributes(x));
- strings(a.defaultQueryData()).map(x ->
basicPart(x)).forEach(x -> b.defaultQueryData(x));
- strings(a.defaultFormData()).map(x ->
basicPart(x)).forEach(x -> b.defaultFormData(x));
- string(a.defaultAccept()).map(x ->
accept(x)).ifPresent(x -> b.defaultRequestHeaders(x));
- string(a.defaultContentType()).map(x ->
contentType(x)).ifPresent(x -> b.defaultRequestHeaders(x));
+ strings(a.defaultRequestHeaders()).map(x ->
stringHeader(x)).forEach(x -> b.defaultRequestHeaders().setDefault(x));
+ strings(a.defaultResponseHeaders()).map(x ->
stringHeader(x)).forEach(x -> b.defaultResponseHeaders().setDefault(x));
+ strings(a.defaultRequestAttributes()).map(x ->
BasicNamedAttribute.ofPair(x)).forEach(x ->
b.defaultRequestAttributes().add(x));
+ strings(a.defaultRequestQueryData()).map(x ->
basicPart(x)).forEach(x -> b.defaultRequestQueryData().setDefault(x));
+ strings(a.defaultRequestFormData()).map(x ->
basicPart(x)).forEach(x -> b.defaultRequestFormData().setDefault(x));
+ string(a.defaultAccept()).map(x ->
accept(x)).ifPresent(x -> b.defaultRequestHeaders().setDefault(x));
+ string(a.defaultContentType()).map(x ->
contentType(x)).ifPresent(x -> b.defaultRequestHeaders().setDefault(x));
b.converters().append(a.converters());
b.guards().append(a.guards());
b.matchers().append(a.matchers());
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/FormData_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/FormData_Test.java
index 6c3a018..78cad68 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/FormData_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/FormData_Test.java
@@ -96,7 +96,7 @@ public class FormData_Test {
@Rest
public static class C {
- @RestPost(defaultFormData={"f1:1","f2=2"," f3 : 3 "})
+ @RestPost(defaultRequestFormData={"f1:1","f2=2"," f3 : 3 "})
public OMap a(RequestFormParams formData) {
return OMap.create()
.a("f1", formData.getString("f1"))
@@ -117,7 +117,7 @@ public class FormData_Test {
.a("f2", f2)
.a("f3", f3);
}
- @RestPost(defaultFormData={"f1:1","f2=2"," f3 : 3 "})
+ @RestPost(defaultRequestFormData={"f1:1","f2=2"," f3 : 3 "})
public OMap d(@FormData(value="f1",_default="4") String f1,
@FormData(value="f2",_default="5") String f2,
@FormData(value="f3",_default="6") String f3) {
return OMap.create()
.a("f1", f1)
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/Query_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/Query_Test.java
index c5b95fd..25d13ad 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/Query_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/Query_Test.java
@@ -182,7 +182,7 @@ public class Query_Test {
@Rest
public static class D {
- @RestGet(defaultQueryData={"f1:1","f2=2"," f3 : 3 "})
+ @RestGet(defaultRequestQueryData={"f1:1","f2=2"," f3 : 3 "})
public OMap a(RequestQueryParams query) {
return OMap.create()
.a("f1", query.getString("f1"))
@@ -203,7 +203,7 @@ public class Query_Test {
.a("f2", f2)
.a("f3", f3);
}
- @RestGet(defaultQueryData={"f1:1","f2=2"," f3 : 3 "})
+ @RestGet(defaultRequestQueryData={"f1:1","f2=2"," f3 : 3 "})
public OMap d(@Query(n="f1",df="4") String f1,
@Query(n="f2",df="5") String f2, @Query(n="f3",df="6") String f3) {
return OMap.create()
.a("f1", f1)
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/RestDeleteAnnotation_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/RestDeleteAnnotation_Test.java
index 421de88..4197ce0 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/RestDeleteAnnotation_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/RestDeleteAnnotation_Test.java
@@ -37,7 +37,7 @@ public class RestDeleteAnnotation_Test {
.debug("debug")
.defaultAccept("defaultAccept")
.defaultCharset("defaultCharset")
- .defaultQueryData("defaultQueryData")
+ .defaultRequestQueryData("defaultRequestQueryData")
.defaultRequestAttributes("defaultRequestAttributes")
.defaultRequestHeaders("defaultRequestHeaders")
.defaultResponseHeaders("defaultResponseHeaders")
@@ -60,7 +60,7 @@ public class RestDeleteAnnotation_Test {
.debug("debug")
.defaultAccept("defaultAccept")
.defaultCharset("defaultCharset")
- .defaultQueryData("defaultQueryData")
+ .defaultRequestQueryData("defaultRequestQueryData")
.defaultRequestAttributes("defaultRequestAttributes")
.defaultRequestHeaders("defaultRequestHeaders")
.defaultResponseHeaders("defaultResponseHeaders")
@@ -86,7 +86,7 @@ public class RestDeleteAnnotation_Test {
+ "debug:'debug',"
+ "defaultAccept:'defaultAccept',"
+ "defaultCharset:'defaultCharset',"
- + "defaultQueryData:['defaultQueryData'],"
+ +
"defaultRequestQueryData:['defaultRequestQueryData'],"
+
"defaultRequestAttributes:['defaultRequestAttributes'],"
+
"defaultRequestHeaders:['defaultRequestHeaders'],"
+
"defaultResponseHeaders:['defaultResponseHeaders'],"
@@ -154,7 +154,7 @@ public class RestDeleteAnnotation_Test {
debug="debug",
defaultAccept="defaultAccept",
defaultCharset="defaultCharset",
- defaultQueryData="defaultQueryData",
+ defaultRequestQueryData="defaultRequestQueryData",
defaultRequestAttributes="defaultRequestAttributes",
defaultRequestHeaders="defaultRequestHeaders",
defaultResponseHeaders="defaultResponseHeaders",
@@ -178,7 +178,7 @@ public class RestDeleteAnnotation_Test {
debug="debug",
defaultAccept="defaultAccept",
defaultCharset="defaultCharset",
- defaultQueryData="defaultQueryData",
+ defaultRequestQueryData="defaultRequestQueryData",
defaultRequestAttributes="defaultRequestAttributes",
defaultRequestHeaders="defaultRequestHeaders",
defaultResponseHeaders="defaultResponseHeaders",
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/RestGetAnnotation_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/RestGetAnnotation_Test.java
index 2b122a7..077f04a 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/RestGetAnnotation_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/RestGetAnnotation_Test.java
@@ -39,7 +39,7 @@ public class RestGetAnnotation_Test {
.debug("debug")
.defaultAccept("defaultAccept")
.defaultCharset("defaultCharset")
- .defaultQueryData("defaultQueryData")
+ .defaultRequestQueryData("defaultRequestQueryData")
.defaultRequestAttributes("defaultRequestAttributes")
.defaultRequestHeaders("defaultRequestHeaders")
.defaultResponseHeaders("defaultResponseHeaders")
@@ -65,7 +65,7 @@ public class RestGetAnnotation_Test {
.debug("debug")
.defaultAccept("defaultAccept")
.defaultCharset("defaultCharset")
- .defaultQueryData("defaultQueryData")
+ .defaultRequestQueryData("defaultRequestQueryData")
.defaultRequestAttributes("defaultRequestAttributes")
.defaultRequestHeaders("defaultRequestHeaders")
.defaultResponseHeaders("defaultResponseHeaders")
@@ -94,7 +94,7 @@ public class RestGetAnnotation_Test {
+ "debug:'debug',"
+ "defaultAccept:'defaultAccept',"
+ "defaultCharset:'defaultCharset',"
- + "defaultQueryData:['defaultQueryData'],"
+ +
"defaultRequestQueryData:['defaultRequestQueryData'],"
+
"defaultRequestAttributes:['defaultRequestAttributes'],"
+
"defaultRequestHeaders:['defaultRequestHeaders'],"
+
"defaultResponseHeaders:['defaultResponseHeaders'],"
@@ -165,7 +165,7 @@ public class RestGetAnnotation_Test {
debug="debug",
defaultAccept="defaultAccept",
defaultCharset="defaultCharset",
- defaultQueryData="defaultQueryData",
+ defaultRequestQueryData="defaultRequestQueryData",
defaultRequestAttributes="defaultRequestAttributes",
defaultRequestHeaders="defaultRequestHeaders",
defaultResponseHeaders="defaultResponseHeaders",
@@ -192,7 +192,7 @@ public class RestGetAnnotation_Test {
debug="debug",
defaultAccept="defaultAccept",
defaultCharset="defaultCharset",
- defaultQueryData="defaultQueryData",
+ defaultRequestQueryData="defaultRequestQueryData",
defaultRequestAttributes="defaultRequestAttributes",
defaultRequestHeaders="defaultRequestHeaders",
defaultResponseHeaders="defaultResponseHeaders",
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/RestOpAnnotation_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/RestOpAnnotation_Test.java
index 1405215..3e44184 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/RestOpAnnotation_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/RestOpAnnotation_Test.java
@@ -42,8 +42,8 @@ public class RestOpAnnotation_Test {
.defaultAccept("defaultAccept")
.defaultCharset("defaultCharset")
.defaultContentType("defaultContentType")
- .defaultFormData("defaultFormData")
- .defaultQueryData("defaultQueryData")
+ .defaultRequestFormData("defaultRequestFormData")
+ .defaultRequestQueryData("defaultRequestQueryData")
.defaultRequestAttributes("defaultRequestAttributes")
.defaultRequestHeaders("defaultRequestHeaders")
.defaultResponseHeaders("defaultResponseHeaders")
@@ -74,8 +74,8 @@ public class RestOpAnnotation_Test {
.defaultAccept("defaultAccept")
.defaultCharset("defaultCharset")
.defaultContentType("defaultContentType")
- .defaultFormData("defaultFormData")
- .defaultQueryData("defaultQueryData")
+ .defaultRequestFormData("defaultRequestFormData")
+ .defaultRequestQueryData("defaultRequestQueryData")
.defaultRequestAttributes("defaultRequestAttributes")
.defaultRequestHeaders("defaultRequestHeaders")
.defaultResponseHeaders("defaultResponseHeaders")
@@ -109,8 +109,8 @@ public class RestOpAnnotation_Test {
+ "defaultAccept:'defaultAccept',"
+ "defaultCharset:'defaultCharset',"
+ "defaultContentType:'defaultContentType',"
- + "defaultFormData:['defaultFormData'],"
- + "defaultQueryData:['defaultQueryData'],"
+ +
"defaultRequestFormData:['defaultRequestFormData'],"
+ +
"defaultRequestQueryData:['defaultRequestQueryData'],"
+
"defaultRequestAttributes:['defaultRequestAttributes'],"
+
"defaultRequestHeaders:['defaultRequestHeaders'],"
+
"defaultResponseHeaders:['defaultResponseHeaders'],"
@@ -186,8 +186,8 @@ public class RestOpAnnotation_Test {
defaultAccept="defaultAccept",
defaultCharset="defaultCharset",
defaultContentType="defaultContentType",
- defaultFormData="defaultFormData",
- defaultQueryData="defaultQueryData",
+ defaultRequestFormData="defaultRequestFormData",
+ defaultRequestQueryData="defaultRequestQueryData",
defaultRequestAttributes="defaultRequestAttributes",
defaultRequestHeaders="defaultRequestHeaders",
defaultResponseHeaders="defaultResponseHeaders",
@@ -219,8 +219,8 @@ public class RestOpAnnotation_Test {
defaultAccept="defaultAccept",
defaultCharset="defaultCharset",
defaultContentType="defaultContentType",
- defaultFormData="defaultFormData",
- defaultQueryData="defaultQueryData",
+ defaultRequestFormData="defaultRequestFormData",
+ defaultRequestQueryData="defaultRequestQueryData",
defaultRequestAttributes="defaultRequestAttributes",
defaultRequestHeaders="defaultRequestHeaders",
defaultResponseHeaders="defaultResponseHeaders",
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/RestPostAnnotation_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/RestPostAnnotation_Test.java
index b2f71e7..710ba30 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/RestPostAnnotation_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/RestPostAnnotation_Test.java
@@ -42,8 +42,8 @@ public class RestPostAnnotation_Test {
.defaultAccept("defaultAccept")
.defaultCharset("defaultCharset")
.defaultContentType("defaultContentType")
- .defaultFormData("defaultFormData")
- .defaultQueryData("defaultQueryData")
+ .defaultRequestFormData("defaultRequestFormData")
+ .defaultRequestQueryData("defaultRequestQueryData")
.defaultRequestAttributes("defaultRequestAttributes")
.defaultRequestHeaders("defaultRequestHeaders")
.defaultResponseHeaders("defaultResponseHeaders")
@@ -73,8 +73,8 @@ public class RestPostAnnotation_Test {
.defaultAccept("defaultAccept")
.defaultCharset("defaultCharset")
.defaultContentType("defaultContentType")
- .defaultFormData("defaultFormData")
- .defaultQueryData("defaultQueryData")
+ .defaultRequestFormData("defaultRequestFormData")
+ .defaultRequestQueryData("defaultRequestQueryData")
.defaultRequestAttributes("defaultRequestAttributes")
.defaultRequestHeaders("defaultRequestHeaders")
.defaultResponseHeaders("defaultResponseHeaders")
@@ -107,8 +107,8 @@ public class RestPostAnnotation_Test {
+ "defaultAccept:'defaultAccept',"
+ "defaultCharset:'defaultCharset',"
+ "defaultContentType:'defaultContentType',"
- + "defaultFormData:['defaultFormData'],"
- + "defaultQueryData:['defaultQueryData'],"
+ +
"defaultRequestFormData:['defaultRequestFormData'],"
+ +
"defaultRequestQueryData:['defaultRequestQueryData'],"
+
"defaultRequestAttributes:['defaultRequestAttributes'],"
+
"defaultRequestHeaders:['defaultRequestHeaders'],"
+
"defaultResponseHeaders:['defaultResponseHeaders'],"
@@ -183,8 +183,8 @@ public class RestPostAnnotation_Test {
defaultAccept="defaultAccept",
defaultCharset="defaultCharset",
defaultContentType="defaultContentType",
- defaultFormData="defaultFormData",
- defaultQueryData="defaultQueryData",
+ defaultRequestFormData="defaultRequestFormData",
+ defaultRequestQueryData="defaultRequestQueryData",
defaultRequestAttributes="defaultRequestAttributes",
defaultRequestHeaders="defaultRequestHeaders",
defaultResponseHeaders="defaultResponseHeaders",
@@ -215,8 +215,8 @@ public class RestPostAnnotation_Test {
defaultAccept="defaultAccept",
defaultCharset="defaultCharset",
defaultContentType="defaultContentType",
- defaultFormData="defaultFormData",
- defaultQueryData="defaultQueryData",
+ defaultRequestFormData="defaultRequestFormData",
+ defaultRequestQueryData="defaultRequestQueryData",
defaultRequestAttributes="defaultRequestAttributes",
defaultRequestHeaders="defaultRequestHeaders",
defaultResponseHeaders="defaultResponseHeaders",
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/RestPutAnnotation_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/RestPutAnnotation_Test.java
index 6d910b2..be4539b 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/RestPutAnnotation_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/RestPutAnnotation_Test.java
@@ -42,8 +42,8 @@ public class RestPutAnnotation_Test {
.defaultAccept("defaultAccept")
.defaultCharset("defaultCharset")
.defaultContentType("defaultContentType")
- .defaultFormData("defaultFormData")
- .defaultQueryData("defaultQueryData")
+ .defaultRequestFormData("defaultRequestFormData")
+ .defaultRequestQueryData("defaultRequestQueryData")
.defaultRequestAttributes("defaultRequestAttributes")
.defaultRequestHeaders("defaultRequestHeaders")
.defaultResponseHeaders("defaultResponseHeaders")
@@ -73,8 +73,8 @@ public class RestPutAnnotation_Test {
.defaultAccept("defaultAccept")
.defaultCharset("defaultCharset")
.defaultContentType("defaultContentType")
- .defaultFormData("defaultFormData")
- .defaultQueryData("defaultQueryData")
+ .defaultRequestFormData("defaultRequestFormData")
+ .defaultRequestQueryData("defaultRequestQueryData")
.defaultRequestAttributes("defaultRequestAttributes")
.defaultRequestHeaders("defaultRequestHeaders")
.defaultResponseHeaders("defaultResponseHeaders")
@@ -107,8 +107,8 @@ public class RestPutAnnotation_Test {
+ "defaultAccept:'defaultAccept',"
+ "defaultCharset:'defaultCharset',"
+ "defaultContentType:'defaultContentType',"
- + "defaultFormData:['defaultFormData'],"
- + "defaultQueryData:['defaultQueryData'],"
+ +
"defaultRequestFormData:['defaultRequestFormData'],"
+ +
"defaultRequestQueryData:['defaultRequestQueryData'],"
+
"defaultRequestAttributes:['defaultRequestAttributes'],"
+
"defaultRequestHeaders:['defaultRequestHeaders'],"
+
"defaultResponseHeaders:['defaultResponseHeaders'],"
@@ -183,8 +183,8 @@ public class RestPutAnnotation_Test {
defaultAccept="defaultAccept",
defaultCharset="defaultCharset",
defaultContentType="defaultContentType",
- defaultFormData="defaultFormData",
- defaultQueryData="defaultQueryData",
+ defaultRequestFormData="defaultRequestFormData",
+ defaultRequestQueryData="defaultRequestQueryData",
defaultRequestAttributes="defaultRequestAttributes",
defaultRequestHeaders="defaultRequestHeaders",
defaultResponseHeaders="defaultResponseHeaders",
@@ -215,8 +215,8 @@ public class RestPutAnnotation_Test {
defaultAccept="defaultAccept",
defaultCharset="defaultCharset",
defaultContentType="defaultContentType",
- defaultFormData="defaultFormData",
- defaultQueryData="defaultQueryData",
+ defaultRequestFormData="defaultRequestFormData",
+ defaultRequestQueryData="defaultRequestQueryData",
defaultRequestAttributes="defaultRequestAttributes",
defaultRequestHeaders="defaultRequestHeaders",
defaultResponseHeaders="defaultResponseHeaders",