From commits-return-4758-archive-asf-public=cust-asf.ponee.io@juneau.apache.org Fri Jan 5 03:34:03 2018 Return-Path: X-Original-To: archive-asf-public@eu.ponee.io Delivered-To: archive-asf-public@eu.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by mx-eu-01.ponee.io (Postfix) with ESMTP id C7CB5180657 for ; Fri, 5 Jan 2018 03:34:03 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id B80F4160C3A; Fri, 5 Jan 2018 02:34:03 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 87BD4160C2B for ; Fri, 5 Jan 2018 03:34:02 +0100 (CET) Received: (qmail 46971 invoked by uid 500); 5 Jan 2018 02:34:01 -0000 Mailing-List: contact commits-help@juneau.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@juneau.apache.org Delivered-To: mailing list commits@juneau.apache.org Received: (qmail 46962 invoked by uid 99); 5 Jan 2018 02:34:01 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 05 Jan 2018 02:34:01 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 31549C2148 for ; Fri, 5 Jan 2018 02:34:01 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -4.231 X-Spam-Level: X-Spam-Status: No, score=-4.231 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=disabled Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id CGNhJANdaScW for ; Fri, 5 Jan 2018 02:33:59 +0000 (UTC) Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with SMTP id 17AAC5F21E for ; Fri, 5 Jan 2018 02:33:58 +0000 (UTC) Received: (qmail 46936 invoked by uid 99); 5 Jan 2018 02:33:58 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 05 Jan 2018 02:33:58 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id AA229DFC3E; Fri, 5 Jan 2018 02:33:55 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: jamesbognar@apache.org To: commits@juneau.incubator.apache.org Message-Id: X-Mailer: ASF-Git Admin Mailer Subject: juneau git commit: RestContext refactoring. Date: Fri, 5 Jan 2018 02:33:55 +0000 (UTC) Repository: juneau Updated Branches: refs/heads/master 3fc40afc2 -> 40923605e RestContext refactoring. Project: http://git-wip-us.apache.org/repos/asf/juneau/repo Commit: http://git-wip-us.apache.org/repos/asf/juneau/commit/40923605 Tree: http://git-wip-us.apache.org/repos/asf/juneau/tree/40923605 Diff: http://git-wip-us.apache.org/repos/asf/juneau/diff/40923605 Branch: refs/heads/master Commit: 40923605e1b53dd5c1f41758ee393e8ab8d2f3cd Parents: 3fc40af Author: JamesBognar Authored: Thu Jan 4 21:33:52 2018 -0500 Committer: JamesBognar Committed: Thu Jan 4 21:33:52 2018 -0500 ---------------------------------------------------------------------- .../org/apache/juneau/rest/RestContext.java | 116 ++++++------ .../apache/juneau/rest/RestContextBuilder.java | 175 ++++++++++++------- .../juneau/rest/annotation/RestResource.java | 42 ++++- 3 files changed, 215 insertions(+), 118 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/juneau/blob/40923605/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java ---------------------------------------------------------------------- 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 7507a0c..24bafb6 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 @@ -1146,57 +1146,67 @@ public final class RestContext extends BeanContext { // */ // public static final String REST_parsers = PREFIX + "parsers.lo"; // -// /** -// * Configuration property: HTTP part serializer. -// * -// *
    -// *
  • Name: "RestContext.partSerializer.o" -// *
  • Data type: Class <? extends HttpPartSerializer> | HttpPartSerializer -// *
  • Default: {@link SimpleUonPartSerializer} -// *
  • Session-overridable: false -// *
-// * -// *
Notes:
-// *
    -// *
  • Property: {@link RestContext#REST_partSerializer} -// *
  • Annotations: -// *
      -// *
    • {@link RestResource#partSerializer()} -// *
    -// *
  • Methods: -// *
      -// *
    • {@link RestContextBuilder#partSerializer(Class)} -// *
    • {@link RestContextBuilder#partSerializer(HttpPartSerializer)} -// *
    -// *
-// */ -// public static final String REST_partSerializer = PREFIX + "partSerializer.o"; -// -// /** -// * Configuration property: HTTP part parser. -// * -// *
    -// *
  • Name: "RestContext.partParser.o" -// *
  • Data type: Class <? extends HttpPartParser> | HttpPartParser -// *
  • Default: {@link UonPartParser} -// *
  • Session-overridable: false -// *
-// * -// *
Notes:
-// *
    -// *
  • Property: {@link RestContext#REST_partParser} -// *
  • Annotations: -// *
      -// *
    • {@link RestResource#partParser()} -// *
    -// *
  • Methods: -// *
      -// *
    • {@link RestContextBuilder#partParser(Class)} -// *
    • {@link RestContextBuilder#partParser(HttpPartParser)} -// *
    -// *
-// */ -// public static final String REST_partParser = PREFIX + "partParser.o"; + /** + * Configuration property: HTTP part serializer. + * + *
    + *
  • Name: "RestContext.partSerializer.o" + *
  • Data type: Class <? extends HttpPartSerializer> | HttpPartSerializer + *
  • Default: {@link SimpleUonPartSerializer} + *
  • Session-overridable: false + *
+ * + *

+ * Specifies the {@link HttpPartSerializer} to use for serializing headers, query/form parameters, and URI parts. + * + *

Notes:
+ *
    + *
  • Property: {@link RestContext#REST_partSerializer} + *
  • Annotations: + *
      + *
    • {@link RestResource#partSerializer()} + *
    + *
  • Methods: + *
      + *
    • {@link RestContextBuilder#partSerializer(Class)} + *
    • {@link RestContextBuilder#partSerializer(HttpPartSerializer)} + *
    + *
  • When defined as a class, properties/transforms defined on the resource/method are inherited. + *
  • When defined as an instance, properties/transforms defined on the resource/method are NOT inherited. + *
+ */ + public static final String REST_partSerializer = PREFIX + "partSerializer.o"; + + /** + * Configuration property: HTTP part parser. + * + *
    + *
  • Name: "RestContext.partParser.o" + *
  • Data type: Class <? extends HttpPartParser> | HttpPartParser + *
  • Default: {@link UonPartParser} + *
  • Session-overridable: false + *
+ * + *

+ * Specifies the {@link HttpPartParser} to use for parsing headers, query/form parameters, and URI parts. + * + *

Notes:
+ *
    + *
  • Property: {@link RestContext#REST_partParser} + *
  • Annotations: + *
      + *
    • {@link RestResource#partParser()} + *
    + *
  • Methods: + *
      + *
    • {@link RestContextBuilder#partParser(Class)} + *
    • {@link RestContextBuilder#partParser(HttpPartParser)} + *
    + *
  • When defined as a class, properties/transforms defined on the resource/method are inherited. + *
  • When defined as an instance, properties/transforms defined on the resource/method are NOT inherited. + *
+ */ + public static final String REST_partParser = PREFIX + "partParser.o"; /** * Configuration property: Compression encoders. @@ -1399,8 +1409,8 @@ public final class RestContext extends BeanContext { properties = builder.properties; serializers = builder.serializers.apply(ps).add(properties).build(); parsers = builder.parsers.apply(ps).add(properties).build(); - partSerializer = resolve(resource, HttpPartSerializer.class, builder.partSerializer, serializers.getPropertyStore()); - partParser = resolve(resource, HttpPartParser.class, builder.partParser, parsers.getPropertyStore()); + partSerializer = getInstanceProperty(REST_partSerializer, HttpPartSerializer.class, SimpleUonPartSerializer.class, true, resource, ps); + partParser = getInstanceProperty(REST_partSerializer, HttpPartParser.class, UonPartParser.class, true, resource, ps); encoders = new EncoderGroupBuilder().append(getInstanceArrayProperty(REST_encoders, Encoder.class, new Encoder[0], true, resource, ps)).build(); beanContext = BeanContext.create().apply(ps).add(properties).build(); http://git-wip-us.apache.org/repos/asf/juneau/blob/40923605/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContextBuilder.java ---------------------------------------------------------------------- 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 03e9713..8b03a16 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 @@ -102,9 +102,6 @@ public class RestContextBuilder extends BeanContextBuilder implements ServletCon SerializerGroupBuilder serializers = SerializerGroup.create(); ParserGroupBuilder parsers = ParserGroup.create(); - Object - partSerializer = SimpleUonPartSerializer.class, - partParser = UonPartParser.class; List childResources = new ArrayList<>(); String path; @@ -517,62 +514,6 @@ public class RestContextBuilder extends BeanContextBuilder implements ServletCon } /** - * Specifies the class-level {@link HttpPartSerializer} to use for serializing headers, query/form parameters, and URI parts. - * - *

- * This is the programmatic equivalent to the {@link RestResource#partSerializer() @RestResource.partSerializer()} annotation. - * - * @param partSerializer The serializer class. - * @return This object (for method chaining). - */ - public RestContextBuilder partSerializer(Class partSerializer) { - this.partSerializer = partSerializer; - return this; - } - - /** - * Specifies the class-level {@link HttpPartSerializer} to use for serializing headers, query/form parameters, and URI parts. - * - *

- * This is the programmatic equivalent to the {@link RestResource#partSerializer() @RestResource.partSerializer()} annotation. - * - * @param partSerializer The serializer instance. - * @return This object (for method chaining). - */ - public RestContextBuilder partSerializer(HttpPartSerializer partSerializer) { - this.partSerializer = partSerializer; - return this; - } - - /** - * Specifies the class-level {@link HttpPartParser} to use for parsing headers, query/form parameters, and URI parts. - * - *

- * This is the programmatic equivalent to the {@link RestResource#partParser() @RestResource.partParser()} annotation. - * - * @param partParser The parser class. - * @return This object (for method chaining). - */ - public RestContextBuilder partParser(Class partParser) { - this.partParser = partParser; - return this; - } - - /** - * Specifies the class-level {@link HttpPartParser} to use for parsing headers, query/form parameters, and URI parts. - * - *

- * This is the programmatic equivalent to the {@link RestResource#partParser() @RestResource.partParser()} annotation. - * - * @param partParser The parser instance. - * @return This object (for method chaining). - */ - public RestContextBuilder partParser(HttpPartParser partParser) { - this.partParser = partParser; - return this; - } - - /** * Adds a child resource to this resource. * *

@@ -2370,6 +2311,122 @@ public class RestContextBuilder extends BeanContextBuilder implements ServletCon } /** + * Configuration property: HTTP part serializer. + * + *

+ * Specifies the {@link HttpPartSerializer} to use for serializing headers, query/form parameters, and URI parts. + * + *

Notes:
+ *
    + *
  • Property: {@link RestContext#REST_partSerializer} + *
  • Annotations: + *
      + *
    • {@link RestResource#partSerializer()} + *
    + *
  • Methods: + *
      + *
    • {@link RestContextBuilder#partSerializer(Class)} + *
    • {@link RestContextBuilder#partSerializer(HttpPartSerializer)} + *
    + *
  • When defined as a class, properties/transforms defined on the resource/method are inherited. + *
  • When defined as an instance, properties/transforms defined on the resource/method are NOT inherited. + *
+ * + * @param partSerializer The serializer class. + * @return This object (for method chaining). + */ + public RestContextBuilder partSerializer(Class partSerializer) { + return set(REST_partSerializer, partSerializer); + } + + /** + * Configuration property: HTTP part serializer. + * + *

+ * Specifies the {@link HttpPartSerializer} to use for serializing headers, query/form parameters, and URI parts. + * + *

Notes:
+ *
    + *
  • Property: {@link RestContext#REST_partSerializer} + *
  • Annotations: + *
      + *
    • {@link RestResource#partSerializer()} + *
    + *
  • Methods: + *
      + *
    • {@link RestContextBuilder#partSerializer(Class)} + *
    • {@link RestContextBuilder#partSerializer(HttpPartSerializer)} + *
    + *
  • When defined as a class, properties/transforms defined on the resource/method are inherited. + *
  • When defined as an instance, properties/transforms defined on the resource/method are NOT inherited. + *
+ * + * @param partSerializer The serializer instance. + * @return This object (for method chaining). + */ + public RestContextBuilder partSerializer(HttpPartSerializer partSerializer) { + return set(REST_partSerializer, partSerializer); + } + + /** + * Configuration property: HTTP part parser. + * + *

+ * Specifies the {@link HttpPartParser} to use for parsing headers, query/form parameters, and URI parts. + * + *

Notes:
+ *
    + *
  • Property: {@link RestContext#REST_partParser} + *
  • Annotations: + *
      + *
    • {@link RestResource#partParser()} + *
    + *
  • Methods: + *
      + *
    • {@link RestContextBuilder#partParser(Class)} + *
    • {@link RestContextBuilder#partParser(HttpPartParser)} + *
    + *
  • When defined as a class, properties/transforms defined on the resource/method are inherited. + *
  • When defined as an instance, properties/transforms defined on the resource/method are NOT inherited. + *
+ * + * @param partParser The parser class. + * @return This object (for method chaining). + */ + public RestContextBuilder partParser(Class partParser) { + return set(REST_partParser, partParser); + } + + /** + * Configuration property: HTTP part parser. + * + *

+ * Specifies the {@link HttpPartParser} to use for parsing headers, query/form parameters, and URI parts. + * + *

Notes:
+ *
    + *
  • Property: {@link RestContext#REST_partParser} + *
  • Annotations: + *
      + *
    • {@link RestResource#partParser()} + *
    + *
  • Methods: + *
      + *
    • {@link RestContextBuilder#partParser(Class)} + *
    • {@link RestContextBuilder#partParser(HttpPartParser)} + *
    + *
  • When defined as a class, properties/transforms defined on the resource/method are inherited. + *
  • When defined as an instance, properties/transforms defined on the resource/method are NOT inherited. + *
+ * + * @param partParser The parser instance. + * @return This object (for method chaining). + */ + public RestContextBuilder partParser(HttpPartParser partParser) { + return set(REST_partParser, partParser); + } + + /** * Configuration property: Compression encoders. * *

http://git-wip-us.apache.org/repos/asf/juneau/blob/40923605/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestResource.java ---------------------------------------------------------------------- diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestResource.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestResource.java index 656c8bf..6355dec 100644 --- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestResource.java +++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestResource.java @@ -301,20 +301,50 @@ public @interface RestResource { Class[] parsers() default {}; /** - * Specifies the {@link HttpPartSerializer} to use for serializing headers, query/form parameters, and URI parts. + * HTTP part serializer. * *

- * The programmatic equivalent to this annotation are the {@link RestContextBuilder#partSerializer(Class)}/ - * {@link RestContextBuilder#partSerializer(HttpPartSerializer)} methods. + * Specifies the {@link HttpPartSerializer} to use for serializing headers, query/form parameters, and URI parts. + * + *

Notes:
+ *
    + *
  • Property: {@link RestContext#REST_partSerializer} + *
  • Annotations: + *
      + *
    • {@link RestResource#partSerializer()} + *
    + *
  • Methods: + *
      + *
    • {@link RestContextBuilder#partSerializer(Class)} + *
    • {@link RestContextBuilder#partSerializer(HttpPartSerializer)} + *
    + *
  • When defined as a class, properties/transforms defined on the resource/method are inherited. + *
  • When defined as an instance, properties/transforms defined on the resource/method are NOT inherited. + *
*/ Class partSerializer() default SimpleUonPartSerializer.class; /** - * Specifies the {@link HttpPartParser} to use for parsing headers, query/form parameters, and URI parts. + * HTTP part parser. * *

- * The programmatic equivalent to this annotation are the {@link RestContextBuilder#partParser(Class)}/ - * {@link RestContextBuilder#partParser(HttpPartParser)} methods. + * Specifies the {@link HttpPartParser} to use for parsing headers, query/form parameters, and URI parts. + * + *

Notes:
+ *
    + *
  • Property: {@link RestContext#REST_partParser} + *
  • Annotations: + *
      + *
    • {@link RestResource#partParser()} + *
    + *
  • Methods: + *
      + *
    • {@link RestContextBuilder#partParser(Class)} + *
    • {@link RestContextBuilder#partParser(HttpPartParser)} + *
    + *
  • When defined as a class, properties/transforms defined on the resource/method are inherited. + *
  • When defined as an instance, properties/transforms defined on the resource/method are NOT inherited. + *
*/ Class partParser() default UonPartParser.class;