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 d337bb7ec6109e401cbeb0b6536212968ac0b10b
Author: Ali Alsuliman <[email protected]>
AuthorDate: Thu Feb 11 17:15:37 2021 -0800

    [NO ISSUE][OTH] Make ExecuteStatementRequestMessage extensible
    
    - user model changes: no
    - storage format changes: no
    - interface changes: no
    
    Details:
    Make ExecuteStatementRequestMessage extensible.
    
    Change-Id: I481a3bf16bbaf1b11e1073898f48b2d89a26c897
    Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/9986
    Integration-Tests: Jenkins <[email protected]>
    Tested-by: Jenkins <[email protected]>
    Reviewed-by: Ali Alsuliman <[email protected]>
    Reviewed-by: Murtadha Hubail <[email protected]>
---
 .../asterix/api/http/server/NCQueryServiceServlet.java   | 16 ++++++++--------
 .../asterix/api/http/server/QueryServiceServlet.java     |  8 ++++----
 .../app/message/ExecuteStatementRequestMessage.java      | 11 ++++++++---
 3 files changed, 20 insertions(+), 15 deletions(-)

diff --git 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/NCQueryServiceServlet.java
 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/NCQueryServiceServlet.java
index 99b6be1..0b0f262 100644
--- 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/NCQueryServiceServlet.java
+++ 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/NCQueryServiceServlet.java
@@ -68,7 +68,7 @@ public class NCQueryServiceServlet extends 
QueryServiceServlet {
     }
 
     @Override
-    protected void executeStatement(IRequestReference requestReference, String 
statementsText,
+    protected void executeStatement(IServletRequest request, IRequestReference 
requestReference, String statementsText,
             SessionOutput sessionOutput, ResultProperties resultProperties,
             IStatementExecutor.StatementProperties statementProperties, 
IStatementExecutor.Stats stats,
             QueryServiceRequestParameters param, RequestExecutionState 
executionState,
@@ -85,7 +85,7 @@ public class NCQueryServiceServlet extends 
QueryServiceServlet {
             long timeout = param.getTimeout();
             int stmtCategoryRestrictionMask = 
org.apache.asterix.app.translator.RequestParameters
                     .getStatementCategoryRestrictionMask(param.isReadOnly());
-            ExecuteStatementRequestMessage requestMsg = 
createRequestMessage(requestReference, statementsText,
+            ExecuteStatementRequestMessage requestMsg = 
createRequestMessage(request, requestReference, statementsText,
                     sessionOutput, resultProperties, param, 
optionalParameters, statementParameters, ncCtx,
                     responseFuture, queryLanguage, handleUrl, 
stmtCategoryRestrictionMask, false);
             executionState.start();
@@ -129,12 +129,12 @@ public class NCQueryServiceServlet extends 
QueryServiceServlet {
         buildResponseResults(responsePrinter, sessionOutput, 
responseMsg.getExecutionPlans(), warnings);
     }
 
-    protected ExecuteStatementRequestMessage 
createRequestMessage(IRequestReference requestReference,
-            String statementsText, SessionOutput sessionOutput, 
ResultProperties resultProperties,
-            QueryServiceRequestParameters param, Map<String, String> 
optionalParameters,
-            Map<String, byte[]> statementParameters, INCServiceContext ncCtx, 
MessageFuture responseFuture,
-            ILangExtension.Language queryLanguage, String handleUrl, int 
stmtCategoryRestrictionMask,
-            boolean forceDropDataset) {
+    protected ExecuteStatementRequestMessage 
createRequestMessage(IServletRequest request,
+            IRequestReference requestReference, String statementsText, 
SessionOutput sessionOutput,
+            ResultProperties resultProperties, QueryServiceRequestParameters 
param,
+            Map<String, String> optionalParameters, Map<String, byte[]> 
statementParameters, INCServiceContext ncCtx,
+            MessageFuture responseFuture, ILangExtension.Language 
queryLanguage, String handleUrl,
+            int stmtCategoryRestrictionMask, boolean forceDropDataset) {
         return new ExecuteStatementRequestMessage(ncCtx.getNodeId(), 
responseFuture.getFutureId(), queryLanguage,
                 statementsText, sessionOutput.config(), 
resultProperties.getNcToCcResultProperties(),
                 param.getClientContextID(), handleUrl, optionalParameters, 
statementParameters,
diff --git 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java
 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java
index dea46f2..f394794 100644
--- 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java
+++ 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java
@@ -301,9 +301,9 @@ public class QueryServiceServlet extends 
AbstractQueryApiServlet {
                 IStatementExecutor.StatementProperties statementProperties =
                         new IStatementExecutor.StatementProperties();
                 response.setStatus(HttpResponseStatus.OK);
-                executeStatement(requestRef, statementsText, sessionOutput, 
resultProperties, statementProperties,
-                        stats, param, executionState, 
param.getOptionalParams(), statementParams, responsePrinter,
-                        warnings);
+                executeStatement(request, requestRef, statementsText, 
sessionOutput, resultProperties,
+                        statementProperties, stats, param, executionState, 
param.getOptionalParams(), statementParams,
+                        responsePrinter, warnings);
                 executionState.setStatus(ResultStatus.SUCCESS, 
HttpResponseStatus.OK);
             }
             errorCount = 0;
@@ -386,7 +386,7 @@ public class QueryServiceServlet extends 
AbstractQueryApiServlet {
         return new ResultUtil.ParseOnlyResult(extVars);
     }
 
-    protected void executeStatement(IRequestReference requestReference, String 
statementsText,
+    protected void executeStatement(IServletRequest request, IRequestReference 
requestReference, String statementsText,
             SessionOutput sessionOutput, ResultProperties resultProperties,
             IStatementExecutor.StatementProperties statementProperties, Stats 
stats,
             QueryServiceRequestParameters param, RequestExecutionState 
executionState,
diff --git 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/ExecuteStatementRequestMessage.java
 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/ExecuteStatementRequestMessage.java
index 66a6dde..d3345fb 100644
--- 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/ExecuteStatementRequestMessage.java
+++ 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/ExecuteStatementRequestMessage.java
@@ -72,8 +72,8 @@ public class ExecuteStatementRequestMessage implements 
ICcAddressedMessage {
     public static final long DEFAULT_NC_TIMEOUT_MILLIS = 
TimeUnit.MILLISECONDS.toMillis(Long.MAX_VALUE);
     //TODO: Make configurable: 
https://issues.apache.org/jira/browse/ASTERIXDB-2063
     public static final long DEFAULT_QUERY_CANCELLATION_WAIT_MILLIS = 
TimeUnit.MINUTES.toMillis(1);
-    private final String requestNodeId;
-    private final long requestMessageId;
+    protected final String requestNodeId;
+    protected final long requestMessageId;
     private final ILangExtension.Language lang;
     private final String statementsText;
     private final SessionConfig sessionConfig;
@@ -178,6 +178,11 @@ public class ExecuteStatementRequestMessage implements 
ICcAddressedMessage {
         }
     }
 
+    protected CCMessageBroker getMessageBroker(ICcApplicationContext ccAppCtx) 
{
+        ICCServiceContext ccSrvContext = ccAppCtx.getServiceContext();
+        return (CCMessageBroker) ccSrvContext.getMessageBroker();
+    }
+
     static RuntimeDataException getRejectionReason(ClusterControllerService 
ccSrv, String requestNodeId) {
         if (ccSrv.getNodeManager().getNodeControllerState(requestNodeId) == 
null) {
             return new 
RuntimeDataException(ErrorCode.REJECT_NODE_UNREGISTERED);
@@ -191,7 +196,7 @@ public class ExecuteStatementRequestMessage implements 
ICcAddressedMessage {
         return null;
     }
 
-    static void sendRejection(RuntimeDataException reason, CCMessageBroker 
messageBroker, long requestMessageId,
+    protected static void sendRejection(Exception reason, CCMessageBroker 
messageBroker, long requestMessageId,
             String requestNodeId) {
         ExecuteStatementResponseMessage responseMsg = new 
ExecuteStatementResponseMessage(requestMessageId);
         responseMsg.setError(reason);

Reply via email to