You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2018/01/06 04:13:27 UTC
juneau git commit: Improve efficiency of RestResponse initialization.
Repository: juneau
Updated Branches:
refs/heads/master 8574ebab3 -> 5d827126e
Improve efficiency of RestResponse initialization.
Project: http://git-wip-us.apache.org/repos/asf/juneau/repo
Commit: http://git-wip-us.apache.org/repos/asf/juneau/commit/5d827126
Tree: http://git-wip-us.apache.org/repos/asf/juneau/tree/5d827126
Diff: http://git-wip-us.apache.org/repos/asf/juneau/diff/5d827126
Branch: refs/heads/master
Commit: 5d827126e6a9ceebc21770c984097d460e53a64c
Parents: 8574eba
Author: JamesBognar <ja...@apache.org>
Authored: Fri Jan 5 23:13:24 2018 -0500
Committer: JamesBognar <ja...@apache.org>
Committed: Fri Jan 5 23:13:24 2018 -0500
----------------------------------------------------------------------
.../org/apache/juneau/rest/RestJavaMethod.java | 4 +--
.../org/apache/juneau/rest/RestResponse.java | 27 +++++++++-----------
2 files changed, 14 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/juneau/blob/5d827126/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestJavaMethod.java
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestJavaMethod.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestJavaMethod.java
index 6d35555..194df12 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestJavaMethod.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestJavaMethod.java
@@ -52,7 +52,6 @@ class RestJavaMethod implements Comparable<RestJavaMethod> {
private final RestMatcher[] optionalMatchers;
private final RestMatcher[] requiredMatchers;
private final RestConverter[] converters;
- private final HttpPartSerializer partSerializer;
private final ObjectMap properties;
private final boolean deprecated;
private final String description, tags, summary, externalDocs;
@@ -64,6 +63,7 @@ class RestJavaMethod implements Comparable<RestJavaMethod> {
final SerializerGroup serializers;
final ParserGroup parsers;
final EncoderGroup encoders;
+ final HttpPartSerializer partSerializer;
final HttpPartParser partParser;
final Map<String,Object>
defaultRequestHeaders,
@@ -799,7 +799,7 @@ class RestJavaMethod implements Comparable<RestJavaMethod> {
ObjectMap requestProperties = new ResolvingObjectMap(req.getVarResolverSession()).setInner(properties);
req.init(this, requestProperties);
- res.init(requestProperties, defaultCharset, serializers, partSerializer, encoders);
+ res.init(this, requestProperties);
// Class-level guards
for (RestGuard guard : context.getGuards())
http://git-wip-us.apache.org/repos/asf/juneau/blob/5d827126/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestResponse.java
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestResponse.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestResponse.java
index 310d910..15d58da 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestResponse.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestResponse.java
@@ -53,12 +53,10 @@ import org.apache.juneau.serializer.*;
public final class RestResponse extends HttpServletResponseWrapper {
private final RestRequest request;
+ private RestJavaMethod restJavaMethod;
private Object output; // The POJO being sent to the output.
private boolean isNullOutput; // The output is null (as opposed to not being set at all)
private ObjectMap properties; // Response properties
- SerializerGroup serializerGroup;
- HttpPartSerializer partSerializer;
- private EncoderGroup encoders;
private ServletOutputStream os;
private PrintWriter w;
private HtmlDocBuilder htmlDocBuilder;
@@ -89,22 +87,20 @@ public final class RestResponse extends HttpServletResponseWrapper {
/*
* Called from RestServlet after a match has been made but before the guard or method invocation.
*/
- final void init(ObjectMap properties, String defaultCharset, SerializerGroup mSerializers, HttpPartSerializer partSerializer, EncoderGroup encoders) {
+ final void init(RestJavaMethod rjm, ObjectMap properties) {
+ this.restJavaMethod = rjm;
this.properties = properties;
- this.serializerGroup = mSerializers;
- this.partSerializer = partSerializer;
- this.encoders = encoders;
// Find acceptable charset
String h = request.getHeader("accept-charset");
String charset = null;
if (h == null)
- charset = defaultCharset;
+ charset = rjm.defaultCharset;
else for (MediaTypeRange r : MediaTypeRange.parse(h)) {
if (r.getQValue() > 0) {
MediaType mt = r.getMediaType();
if (mt.getType().equals("*"))
- charset = defaultCharset;
+ charset = rjm.defaultCharset;
else if (Charset.isSupported(mt.getType()))
charset = mt.getType();
if (charset != null)
@@ -123,7 +119,7 @@ public final class RestResponse extends HttpServletResponseWrapper {
* @return The serializer group for the response.
*/
public SerializerGroup getSerializerGroup() {
- return serializerGroup;
+ return restJavaMethod.serializers;
}
/**
@@ -132,7 +128,7 @@ public final class RestResponse extends HttpServletResponseWrapper {
* @return The set of media types registered in the parser group of this request.
*/
public List<MediaType> getSupportedMediaTypes() {
- return serializerGroup.getSupportedMediaTypes();
+ return restJavaMethod.supportedAcceptTypes;
}
/**
@@ -143,7 +139,7 @@ public final class RestResponse extends HttpServletResponseWrapper {
* @throws RestServletException
*/
public List<String> getSupportedEncodings() throws RestServletException {
- return encoders.getSupportedEncodings();
+ return restJavaMethod.encoders.getSupportedEncodings();
}
/**
@@ -270,10 +266,11 @@ public final class RestResponse extends HttpServletResponseWrapper {
public ServletOutputStream getNegotiatedOutputStream() throws IOException {
if (os == null) {
Encoder encoder = null;
-
+ EncoderGroup encoders = restJavaMethod.encoders;
+
String ae = request.getHeader("Accept-Encoding");
if (! (ae == null || ae.isEmpty())) {
- EncoderMatch match = encoders != null ? encoders.getEncoderMatch(ae) : null;
+ EncoderMatch match = encoders.getEncoderMatch(ae);
if (match == null) {
// Identity should always match unless "identity;q=0" or "*;q=0" is specified.
if (ae.matches(".*(identity|\\*)\\s*;\\s*q\\s*=\\s*(0(?!\\.)|0\\.0).*")) {
@@ -432,7 +429,7 @@ public final class RestResponse extends HttpServletResponseWrapper {
* @return The HTTP-part serializer associated with this response.
*/
public HttpPartSerializer getPartSerializer() {
- return partSerializer;
+ return restJavaMethod.partSerializer;
}
@Override /* ServletResponse */