You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@asterixdb.apache.org by AsterixDB Code Review <do...@asterix-gerrit.ics.uci.edu> on 2021/12/21 02:44:16 UTC

Change in asterixdb[master]: [NO ISSUE][HYR][UTL] Add methods to extract query params from a uri

From Michael Blow <mb...@apache.org>:

Michael Blow has uploaded this change for review. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/14623 )


Change subject: [NO ISSUE][HYR][UTL] Add methods to extract query params from a uri
......................................................................

[NO ISSUE][HYR][UTL] Add methods to extract query params from a uri

Change-Id: Ifac17d25b72b5a550a626325fcd6f9d5fe91407e
---
M hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/utils/HttpUtil.java
1 file changed, 19 insertions(+), 0 deletions(-)



  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/23/14623/1

diff --git a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/utils/HttpUtil.java b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/utils/HttpUtil.java
index 3bd4033..e433c02 100644
--- a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/utils/HttpUtil.java
+++ b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/utils/HttpUtil.java
@@ -38,7 +38,9 @@
 import java.util.stream.Stream;
 
 import org.apache.commons.lang3.StringUtils;
+import org.apache.http.NameValuePair;
 import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.utils.URLEncodedUtils;
 import org.apache.hyracks.http.api.IServletRequest;
 import org.apache.hyracks.http.api.IServletResponse;
 import org.apache.hyracks.http.server.BaseRequest;
@@ -252,6 +254,23 @@
                 ? HttpScheme.HTTPS : HttpScheme.HTTP;
     }
 
+    /**
+     * @return the first parameter value of the supplied parameter name, or {@link Optional#empty()}
+     */
+    public static Optional<String> extractQueryParameter(String uri, String parameterName) {
+        return extractQueryParameters(uri, parameterName).map(values -> values[0]);
+    }
+
+    /**
+     * @return all parameter values of the supplied parameter name, or {@link Optional#empty()}
+     */
+    public static Optional<String[]> extractQueryParameters(String uri, String parameterName) {
+        String[] values = URLEncodedUtils.parse(uri, StandardCharsets.UTF_8, '?', '&').stream()
+                .filter(pair -> pair.getName().equals(parameterName)).map(NameValuePair::getValue)
+                .toArray(String[]::new);
+        return values.length == 0 ? Optional.empty() : Optional.of(values);
+    }
+
     public static class ContentType {
         public static final String ADM = "adm";
         public static final String JSON = "json";

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/14623
To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Change-Id: Ifac17d25b72b5a550a626325fcd6f9d5fe91407e
Gerrit-Change-Number: 14623
Gerrit-PatchSet: 1
Gerrit-Owner: Michael Blow <mb...@apache.org>
Gerrit-MessageType: newchange

Change in asterixdb[master]: [NO ISSUE][HYR][UTL] Add methods to extract query params from a uri

Posted by AsterixDB Code Review <do...@asterix-gerrit.ics.uci.edu>.
From Michael Blow <mb...@apache.org>:

Michael Blow has uploaded this change for review. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/14623 )


Change subject: [NO ISSUE][HYR][UTL] Add methods to extract query params from a uri
......................................................................

[NO ISSUE][HYR][UTL] Add methods to extract query params from a uri

Change-Id: Ifac17d25b72b5a550a626325fcd6f9d5fe91407e
---
M hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/utils/HttpUtil.java
1 file changed, 19 insertions(+), 0 deletions(-)



  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/23/14623/1

diff --git a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/utils/HttpUtil.java b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/utils/HttpUtil.java
index 3bd4033..e433c02 100644
--- a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/utils/HttpUtil.java
+++ b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/utils/HttpUtil.java
@@ -38,7 +38,9 @@
 import java.util.stream.Stream;
 
 import org.apache.commons.lang3.StringUtils;
+import org.apache.http.NameValuePair;
 import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.utils.URLEncodedUtils;
 import org.apache.hyracks.http.api.IServletRequest;
 import org.apache.hyracks.http.api.IServletResponse;
 import org.apache.hyracks.http.server.BaseRequest;
@@ -252,6 +254,23 @@
                 ? HttpScheme.HTTPS : HttpScheme.HTTP;
     }
 
+    /**
+     * @return the first parameter value of the supplied parameter name, or {@link Optional#empty()}
+     */
+    public static Optional<String> extractQueryParameter(String uri, String parameterName) {
+        return extractQueryParameters(uri, parameterName).map(values -> values[0]);
+    }
+
+    /**
+     * @return all parameter values of the supplied parameter name, or {@link Optional#empty()}
+     */
+    public static Optional<String[]> extractQueryParameters(String uri, String parameterName) {
+        String[] values = URLEncodedUtils.parse(uri, StandardCharsets.UTF_8, '?', '&').stream()
+                .filter(pair -> pair.getName().equals(parameterName)).map(NameValuePair::getValue)
+                .toArray(String[]::new);
+        return values.length == 0 ? Optional.empty() : Optional.of(values);
+    }
+
     public static class ContentType {
         public static final String ADM = "adm";
         public static final String JSON = "json";

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/14623
To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Change-Id: Ifac17d25b72b5a550a626325fcd6f9d5fe91407e
Gerrit-Change-Number: 14623
Gerrit-PatchSet: 1
Gerrit-Owner: Michael Blow <mb...@apache.org>
Gerrit-MessageType: newchange

Change in asterixdb[master]: [NO ISSUE][HYR][UTL] Add methods to extract query params from a uri

Posted by AsterixDB Code Review <do...@asterix-gerrit.ics.uci.edu>.
From Jenkins <je...@fulliautomatix.ics.uci.edu>:

Jenkins has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/14623 )

Change subject: [NO ISSUE][HYR][UTL] Add methods to extract query params from a uri
......................................................................


Patch Set 2: Integration-Tests+1

Integration Tests Successful

https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-integration-tests/12848/ : SUCCESS


-- 
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/14623
To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Change-Id: Ifac17d25b72b5a550a626325fcd6f9d5fe91407e
Gerrit-Change-Number: 14623
Gerrit-PatchSet: 2
Gerrit-Owner: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Ali Alsuliman <al...@gmail.com>
Gerrit-Reviewer: Hussain Towaileb <hu...@gmail.com>
Gerrit-Reviewer: Ian Maxon <im...@uci.edu>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Till Westmann <ti...@couchbase.com>
Gerrit-Comment-Date: Thu, 23 Dec 2021 15:07:36 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
Gerrit-MessageType: comment

Change in asterixdb[master]: [NO ISSUE][HYR][UTL] Add methods to extract query params from a uri

Posted by AsterixDB Code Review <do...@asterix-gerrit.ics.uci.edu>.
From Michael Blow <mb...@apache.org>:

Michael Blow has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/14623 )

Change subject: [NO ISSUE][HYR][UTL] Add methods to extract query params from a uri
......................................................................


Patch Set 1: Code-Review+1


-- 
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/14623
To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Change-Id: Ifac17d25b72b5a550a626325fcd6f9d5fe91407e
Gerrit-Change-Number: 14623
Gerrit-PatchSet: 1
Gerrit-Owner: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Ali Alsuliman <al...@gmail.com>
Gerrit-Reviewer: Hussain Towaileb <hu...@gmail.com>
Gerrit-Reviewer: Ian Maxon <im...@uci.edu>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Till Westmann <ti...@couchbase.com>
Gerrit-Comment-Date: Thu, 23 Dec 2021 12:26:43 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
Gerrit-MessageType: comment

Change in asterixdb[master]: [NO ISSUE][HYR][UTL] Add methods to extract query params from a uri

Posted by AsterixDB Code Review <do...@asterix-gerrit.ics.uci.edu>.
From Michael Blow <mb...@apache.org>:

Michael Blow has submitted this change. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/14623 )

Change subject: [NO ISSUE][HYR][UTL] Add methods to extract query params from a uri
......................................................................

[NO ISSUE][HYR][UTL] Add methods to extract query params from a uri

Change-Id: Ifac17d25b72b5a550a626325fcd6f9d5fe91407e
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/14623
Integration-Tests: Jenkins <je...@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
Reviewed-by: Ali Alsuliman <al...@gmail.com>
---
M hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/utils/HttpUtil.java
1 file changed, 19 insertions(+), 0 deletions(-)

Approvals:
  Ali Alsuliman: Looks good to me, approved
  Jenkins: Verified; Verified



diff --git a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/utils/HttpUtil.java b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/utils/HttpUtil.java
index 3bd4033..e433c02 100644
--- a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/utils/HttpUtil.java
+++ b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/utils/HttpUtil.java
@@ -38,7 +38,9 @@
 import java.util.stream.Stream;
 
 import org.apache.commons.lang3.StringUtils;
+import org.apache.http.NameValuePair;
 import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.utils.URLEncodedUtils;
 import org.apache.hyracks.http.api.IServletRequest;
 import org.apache.hyracks.http.api.IServletResponse;
 import org.apache.hyracks.http.server.BaseRequest;
@@ -252,6 +254,23 @@
                 ? HttpScheme.HTTPS : HttpScheme.HTTP;
     }
 
+    /**
+     * @return the first parameter value of the supplied parameter name, or {@link Optional#empty()}
+     */
+    public static Optional<String> extractQueryParameter(String uri, String parameterName) {
+        return extractQueryParameters(uri, parameterName).map(values -> values[0]);
+    }
+
+    /**
+     * @return all parameter values of the supplied parameter name, or {@link Optional#empty()}
+     */
+    public static Optional<String[]> extractQueryParameters(String uri, String parameterName) {
+        String[] values = URLEncodedUtils.parse(uri, StandardCharsets.UTF_8, '?', '&').stream()
+                .filter(pair -> pair.getName().equals(parameterName)).map(NameValuePair::getValue)
+                .toArray(String[]::new);
+        return values.length == 0 ? Optional.empty() : Optional.of(values);
+    }
+
     public static class ContentType {
         public static final String ADM = "adm";
         public static final String JSON = "json";

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/14623
To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Change-Id: Ifac17d25b72b5a550a626325fcd6f9d5fe91407e
Gerrit-Change-Number: 14623
Gerrit-PatchSet: 3
Gerrit-Owner: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Ali Alsuliman <al...@gmail.com>
Gerrit-Reviewer: Hussain Towaileb <hu...@gmail.com>
Gerrit-Reviewer: Ian Maxon <im...@uci.edu>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Till Westmann <ti...@couchbase.com>
Gerrit-MessageType: merged