This is an automated email from the ASF dual-hosted git repository.

mblow pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git

commit 69f95307b3575a0b161c3400062c2091ed9ece29
Author: Michael Blow <[email protected]>
AuthorDate: Fri Dec 22 00:25:19 2023 -0500

    [NO ISSUE][HYR][HTTP] Minor refactoring
    
    Change-Id: Ib1196ae6f0fec60c414fabced42f2aeb61fbd662
    Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18024
    Integration-Tests: Jenkins <[email protected]>
    Tested-by: Jenkins <[email protected]>
    Reviewed-by: Hussain Towaileb <[email protected]>
---
 .../apache/hyracks/http/api/IServletRequest.java   |  7 ++++++-
 .../apache/hyracks/http/server/BaseRequest.java    | 22 ++++++++++++----------
 .../org/apache/hyracks/http/server/CLFLogger.java  | 11 ++++++++---
 .../hyracks/http/server/FormUrlEncodedRequest.java | 12 +++++-------
 4 files changed, 31 insertions(+), 21 deletions(-)

diff --git 
a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/api/IServletRequest.java
 
b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/api/IServletRequest.java
index a049412737..59c0ae05f2 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/api/IServletRequest.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/api/IServletRequest.java
@@ -23,6 +23,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import io.netty.channel.Channel;
 import io.netty.handler.codec.http.FullHttpRequest;
 import io.netty.handler.codec.http.HttpScheme;
 
@@ -78,7 +79,9 @@ public interface IServletRequest {
      * @param name header name
      * @return the header or null if not found
      */
-    String getHeader(CharSequence name);
+    default String getHeader(CharSequence name) {
+        return getHttpRequest().headers().get(name);
+    }
 
     /**
      * Get a request header if found, return the default value, otherwise
@@ -110,4 +113,6 @@ public interface IServletRequest {
      * @return the remote address
      */
     InetSocketAddress getLocalAddress();
+
+    Channel getChannel();
 }
diff --git 
a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/BaseRequest.java
 
b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/BaseRequest.java
index c3c7dbccf1..4a72d539b4 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/BaseRequest.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/BaseRequest.java
@@ -29,6 +29,7 @@ import java.util.Set;
 
 import org.apache.hyracks.http.api.IServletRequest;
 
+import io.netty.channel.Channel;
 import io.netty.channel.ChannelHandlerContext;
 import io.netty.handler.codec.http.FullHttpRequest;
 import io.netty.handler.codec.http.HttpScheme;
@@ -37,26 +38,22 @@ import io.netty.handler.codec.http.QueryStringDecoder;
 public class BaseRequest implements IServletRequest {
 
     private static final List<String> NO_PARAM = 
Collections.singletonList(null);
+    private final Channel channel;
     protected final FullHttpRequest request;
     protected final Map<? extends CharSequence, List<String>> parameters;
-    protected final InetSocketAddress remoteAddress;
     protected final HttpScheme scheme;
-    protected final InetSocketAddress localAddress;
 
     public static IServletRequest create(ChannelHandlerContext ctx, 
FullHttpRequest request, HttpScheme scheme,
             boolean ignoreQueryParameters) {
         Map<? extends CharSequence, List<String>> param =
                 ignoreQueryParameters ? Collections.emptyMap() : new 
QueryStringDecoder(request.uri()).parameters();
-        InetSocketAddress remoteAddress = (InetSocketAddress) 
ctx.channel().remoteAddress();
-        InetSocketAddress localAddress = (InetSocketAddress) 
ctx.channel().localAddress();
-        return new BaseRequest(request, localAddress, remoteAddress, param, 
scheme);
+        return new BaseRequest(ctx.channel(), request, param, scheme);
     }
 
-    protected BaseRequest(FullHttpRequest request, InetSocketAddress 
localAddress, InetSocketAddress remoteAddress,
+    protected BaseRequest(Channel channel, FullHttpRequest request,
             Map<? extends CharSequence, List<String>> parameters, HttpScheme 
scheme) {
+        this.channel = channel;
         this.request = request;
-        this.localAddress = localAddress;
-        this.remoteAddress = remoteAddress;
         this.parameters = parameters;
         this.scheme = scheme;
     }
@@ -104,7 +101,7 @@ public class BaseRequest implements IServletRequest {
 
     @Override
     public InetSocketAddress getRemoteAddress() {
-        return remoteAddress;
+        return (InetSocketAddress) channel.remoteAddress();
     }
 
     @Override
@@ -114,6 +111,11 @@ public class BaseRequest implements IServletRequest {
 
     @Override
     public InetSocketAddress getLocalAddress() {
-        return localAddress;
+        return (InetSocketAddress) channel.localAddress();
+    }
+
+    @Override
+    public Channel getChannel() {
+        return channel;
     }
 }
diff --git 
a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/CLFLogger.java
 
b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/CLFLogger.java
index 219995b8e3..a24ed9575b 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/CLFLogger.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/CLFLogger.java
@@ -120,21 +120,22 @@ public class CLFLogger extends ChannelDuplexHandler {
     @Override
     public void flush(ChannelHandlerContext ctx) throws Exception {
         if (lastChunk) {
-            printAndPrepare();
+            printAndPrepare(ctx);
             lastChunk = false;
         }
         ctx.flush();
     }
 
-    private void printAndPrepare() {
+    private void printAndPrepare(ChannelHandlerContext ctx) {
         if (!accessLogger.isEnabled(ACCESS_LOG_LEVEL)) {
             return;
         }
         logLineBuilder.append(clientIp);
         //identd value - not relevant here
         logLineBuilder.append(" - ");
+        logLineBuilder.append(getUserId(ctx));
         //no http auth or any auth either for that matter
-        logLineBuilder.append(" - [");
+        logLineBuilder.append(" [");
         logLineBuilder.append(DATE_TIME_FORMATTER.format(requestTime));
         logLineBuilder.append("] \"");
         logLineBuilder.append(reqLine);
@@ -146,4 +147,8 @@ public class CLFLogger extends ChannelDuplexHandler {
         respSize = 0;
         logLineBuilder.setLength(0);
     }
+
+    protected String getUserId(ChannelHandlerContext ctx) {
+        return "-";
+    }
 }
diff --git 
a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/FormUrlEncodedRequest.java
 
b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/FormUrlEncodedRequest.java
index fa7ef66a12..983a1fdc45 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/FormUrlEncodedRequest.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/FormUrlEncodedRequest.java
@@ -18,7 +18,6 @@
  */
 package org.apache.hyracks.http.server;
 
-import java.net.InetSocketAddress;
 import java.nio.charset.Charset;
 import java.util.ArrayList;
 import java.util.LinkedHashMap;
@@ -29,6 +28,7 @@ import org.apache.http.client.utils.URLEncodedUtils;
 import org.apache.hyracks.http.api.IServletRequest;
 import org.apache.hyracks.http.server.utils.HttpUtil;
 
+import io.netty.channel.Channel;
 import io.netty.channel.ChannelHandlerContext;
 import io.netty.handler.codec.http.FullHttpRequest;
 import io.netty.handler.codec.http.HttpScheme;
@@ -46,13 +46,11 @@ public class FormUrlEncodedRequest extends BaseRequest 
implements IServletReques
             new QueryStringDecoder(request.uri()).parameters()
                     .forEach((name, value) -> parameters.computeIfAbsent(name, 
a -> new ArrayList<>()).addAll(value));
         }
-        InetSocketAddress remoteAddress = (InetSocketAddress) 
ctx.channel().remoteAddress();
-        InetSocketAddress localAddress = (InetSocketAddress) 
ctx.channel().localAddress();
-        return new FormUrlEncodedRequest(request, localAddress, remoteAddress, 
parameters, scheme);
+        return new FormUrlEncodedRequest(ctx.channel(), request, parameters, 
scheme);
     }
 
-    private FormUrlEncodedRequest(FullHttpRequest request, InetSocketAddress 
localAddress,
-            InetSocketAddress remoteAddress, Map<String, List<String>> 
parameters, HttpScheme scheme) {
-        super(request, localAddress, remoteAddress, parameters, scheme);
+    private FormUrlEncodedRequest(Channel channel, FullHttpRequest request, 
Map<String, List<String>> parameters,
+            HttpScheme scheme) {
+        super(channel, request, parameters, scheme);
     }
 }

Reply via email to