Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 503CB200498 for ; Tue, 29 Aug 2017 12:07:46 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 4EB5B163892; Tue, 29 Aug 2017 10:07:46 +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 9E1BF16388E for ; Tue, 29 Aug 2017 12:07:45 +0200 (CEST) Received: (qmail 70022 invoked by uid 500); 29 Aug 2017 10:07:44 -0000 Mailing-List: contact commits-help@flink.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@flink.apache.org Delivered-To: mailing list commits@flink.apache.org Received: (qmail 70005 invoked by uid 99); 29 Aug 2017 10:07:43 -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; Tue, 29 Aug 2017 10:07:43 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id C384FF552A; Tue, 29 Aug 2017 10:07:42 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: chesnay@apache.org To: commits@flink.apache.org Date: Tue, 29 Aug 2017 10:07:43 -0000 Message-Id: <50415e6be7f340cd8d276cd2042f6aad@git.apache.org> In-Reply-To: <55ef91f158084c7db5f906cc2f8735fa@git.apache.org> References: <55ef91f158084c7db5f906cc2f8735fa@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [2/2] flink git commit: [FLINK-7543] [REST] Simplify handler access to path/query parameters archived-at: Tue, 29 Aug 2017 10:07:46 -0000 [FLINK-7543] [REST] Simplify handler access to path/query parameters This closes #4611. Project: http://git-wip-us.apache.org/repos/asf/flink/repo Commit: http://git-wip-us.apache.org/repos/asf/flink/commit/a6905df0 Tree: http://git-wip-us.apache.org/repos/asf/flink/tree/a6905df0 Diff: http://git-wip-us.apache.org/repos/asf/flink/diff/a6905df0 Branch: refs/heads/master Commit: a6905df09098caf6c2b3c11e164132784801d815 Parents: dcce0b7 Author: zentol Authored: Mon Aug 28 17:26:01 2017 +0200 Committer: zentol Committed: Tue Aug 29 12:07:05 2017 +0200 ---------------------------------------------------------------------- .../runtime/rest/handler/HandlerRequest.java | 29 +++++++++++++------- .../flink/runtime/rest/RestEndpointITCase.java | 12 ++------ 2 files changed, 21 insertions(+), 20 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flink/blob/a6905df0/flink-runtime/src/main/java/org/apache/flink/runtime/rest/handler/HandlerRequest.java ---------------------------------------------------------------------- diff --git a/flink-runtime/src/main/java/org/apache/flink/runtime/rest/handler/HandlerRequest.java b/flink-runtime/src/main/java/org/apache/flink/runtime/rest/handler/HandlerRequest.java index fa17b24..6a9bce9 100644 --- a/flink-runtime/src/main/java/org/apache/flink/runtime/rest/handler/HandlerRequest.java +++ b/flink-runtime/src/main/java/org/apache/flink/runtime/rest/handler/HandlerRequest.java @@ -24,6 +24,7 @@ import org.apache.flink.runtime.rest.messages.MessageQueryParameter; import org.apache.flink.runtime.rest.messages.RequestBody; import org.apache.flink.util.Preconditions; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -83,28 +84,36 @@ public class HandlerRequest } /** - * Returns the {@link MessagePathParameter} for the given class. + * Returns the value of the {@link MessagePathParameter} for the given class. * * @param parameterClass class of the parameter * @param the value type that the parameter contains * @param type of the path parameter - * @return path parameter for the given class, or null if no parameter value exists for the given class + * @return path parameter value for the given class + * @throws IllegalStateException if no value is defined for the given parameter class */ - @SuppressWarnings("unchecked") - public > PP getPathParameter(Class parameterClass) { - return (PP) pathParameters.get(parameterClass); + public > X getPathParameter(Class parameterClass) { + @SuppressWarnings("unchecked") + PP pathParameter = (PP) pathParameters.get(parameterClass); + Preconditions.checkState(pathParameter != null, "No parameter could be found for the given class."); + return pathParameter.getValue(); } /** - * Returns the {@link MessageQueryParameter} for the given class. + * Returns the value of the {@link MessageQueryParameter} for the given class. * * @param parameterClass class of the parameter * @param the value type that the parameter contains * @param type of the query parameter - * @return query parameter for the given class, or null if no parameter value exists for the given class + * @return query parameter value for the given class, or an empty list if no parameter value exists for the given class */ - @SuppressWarnings("unchecked") - public > QP getQueryParameter(Class parameterClass) { - return (QP) queryParameters.get(parameterClass); + public > List getQueryParameter(Class parameterClass) { + @SuppressWarnings("unchecked") + QP queryParameter = (QP) queryParameters.get(parameterClass); + if (queryParameter == null) { + return Collections.emptyList(); + } else { + return queryParameter.getValue(); + } } } http://git-wip-us.apache.org/repos/asf/flink/blob/a6905df0/flink-runtime/src/test/java/org/apache/flink/runtime/rest/RestEndpointITCase.java ---------------------------------------------------------------------- diff --git a/flink-runtime/src/test/java/org/apache/flink/runtime/rest/RestEndpointITCase.java b/flink-runtime/src/test/java/org/apache/flink/runtime/rest/RestEndpointITCase.java index 77c5179..ab43f77 100644 --- a/flink-runtime/src/test/java/org/apache/flink/runtime/rest/RestEndpointITCase.java +++ b/flink-runtime/src/test/java/org/apache/flink/runtime/rest/RestEndpointITCase.java @@ -131,16 +131,8 @@ public class RestEndpointITCase extends TestLogger { @Override protected CompletableFuture handleRequest(@Nonnull HandlerRequest request) throws RestHandlerException { - if (request.getPathParameter(JobIDPathParameter.class) == null) { - throw new RestHandlerException("Path parameter was missing.", HttpResponseStatus.INTERNAL_SERVER_ERROR); - } else { - Assert.assertEquals(request.getPathParameter(JobIDPathParameter.class).getValue(), PATH_JOB_ID); - } - if (request.getQueryParameter(JobIDQueryParameter.class) == null) { - throw new RestHandlerException("Query parameter was missing.", HttpResponseStatus.INTERNAL_SERVER_ERROR); - } else { - Assert.assertEquals(request.getQueryParameter(JobIDQueryParameter.class).getValue().get(0), QUERY_JOB_ID); - } + Assert.assertEquals(request.getPathParameter(JobIDPathParameter.class), PATH_JOB_ID); + Assert.assertEquals(request.getQueryParameter(JobIDQueryParameter.class).get(0), QUERY_JOB_ID); if (request.getRequestBody().id == 1) { synchronized (LOCK) {