You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by ch...@apache.org on 2017/08/29 10:07:43 UTC
[2/2] flink git commit: [FLINK-7543] [REST] Simplify handler access
to path/query parameters
[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 <ch...@apache.org>
Authored: Mon Aug 28 17:26:01 2017 +0200
Committer: zentol <ch...@apache.org>
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<R extends RequestBody, M extends MessageParameters>
}
/**
- * 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 <X> the value type that the parameter contains
* @param <PP> 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 <X, PP extends MessagePathParameter<X>> PP getPathParameter(Class<PP> parameterClass) {
- return (PP) pathParameters.get(parameterClass);
+ public <X, PP extends MessagePathParameter<X>> X getPathParameter(Class<PP> 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 <X> the value type that the parameter contains
* @param <QP> 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 <X, QP extends MessageQueryParameter<X>> QP getQueryParameter(Class<QP> parameterClass) {
- return (QP) queryParameters.get(parameterClass);
+ public <X, QP extends MessageQueryParameter<X>> List<X> getQueryParameter(Class<QP> 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<TestResponse> handleRequest(@Nonnull HandlerRequest<TestRequest, TestParameters> 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) {