[ 
https://issues.apache.org/jira/browse/KNOX-3146?focusedWorklogId=972020&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-972020
 ]

ASF GitHub Bot logged work on KNOX-3146:
----------------------------------------

                Author: ASF GitHub Bot
            Created on: 05/Jun/25 20:11
            Start Date: 05/Jun/25 20:11
    Worklog Time Spent: 10m 
      Work Description: lmccay commented on code in PR #1049:
URL: https://github.com/apache/knox/pull/1049#discussion_r2130110688


##########
gateway-provider-ha/src/main/java/org/apache/knox/gateway/ha/dispatch/CommonHaDispatch.java:
##########
@@ -38,14 +40,17 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Optional;
+import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicReference;
 import java.util.stream.Collectors;
 
-public interface LBHaDispatch {
+public interface CommonHaDispatch {

Review Comment:
   Not sure this was needed to be renamed. Failover is typically a LB feature 
as well. Nothing you need to change but it probably would have required fewer 
other changes to use the new name everywhere.



##########
gateway-provider-ha/src/main/java/org/apache/knox/gateway/ha/dispatch/CommonHaDispatch.java:
##########
@@ -240,4 +270,73 @@ default void shiftActiveURL(boolean userAgentDisabled, 
Optional<URI> backendURI)
             }
         }
     }
+

Review Comment:
   It is super confusing to have so much code in an interface.
   Maybe only so for old eyes like mine though.
   Based on the default modifier being in this class previously, I assume that 
you are not introducing it here for the first time. I'll think about it a bit 
more further into the review where multiple inheritance starts to rear its 
head. :)



##########
gateway-provider-ha/src/main/java/org/apache/knox/gateway/ha/dispatch/SSEHaDispatch.java:
##########
@@ -136,17 +149,100 @@ public void setActiveURL(String url) {
         activeURL.set(url);
     }
 
+    @Override
+    public int getMaxFailoverAttempts() {
+        return maxFailoverAttempts;
+    }
+
+    @Override
+    public void setMaxFailoverAttempts(int maxFailoverAttempts) {
+        this.maxFailoverAttempts = maxFailoverAttempts;
+    }
+
+    @Override
+    public int getFailoverSleep() {
+        return failoverSleep;
+    }
+
+    @Override
+    public void setFailoverSleep(int failoverSleep) {
+        this.failoverSleep = failoverSleep;
+    }
+
+    @Override
+    public void setFailoverNonIdempotentRequestEnabled(boolean enabled) {
+        this.failoverNonIdempotentRequestEnabled = enabled;
+    }
+
+    @Override
+    public boolean isFailoverNonIdempotentRequestEnabled() {
+        return failoverNonIdempotentRequestEnabled;
+    }
+
+    @Override
+    public void setNoFallbackEnabled(boolean enabled) {
+        this.noFallbackEnabled = enabled;
+    }
+
+    @Override
+    public boolean isNoFallbackEnabled() {
+        return noFallbackEnabled;
+    }
+

Review Comment:
   Is this only because SSEHaDispatch doesn't extend the common one?



##########
gateway-provider-ha/src/main/java/org/apache/knox/gateway/ha/dispatch/SSEHaDispatch.java:
##########
@@ -136,17 +149,100 @@ public void setActiveURL(String url) {
         activeURL.set(url);
     }
 
+    @Override
+    public int getMaxFailoverAttempts() {
+        return maxFailoverAttempts;
+    }
+
+    @Override
+    public void setMaxFailoverAttempts(int maxFailoverAttempts) {
+        this.maxFailoverAttempts = maxFailoverAttempts;
+    }
+
+    @Override
+    public int getFailoverSleep() {
+        return failoverSleep;
+    }
+
+    @Override
+    public void setFailoverSleep(int failoverSleep) {
+        this.failoverSleep = failoverSleep;
+    }
+
+    @Override
+    public void setFailoverNonIdempotentRequestEnabled(boolean enabled) {
+        this.failoverNonIdempotentRequestEnabled = enabled;
+    }
+
+    @Override
+    public boolean isFailoverNonIdempotentRequestEnabled() {
+        return failoverNonIdempotentRequestEnabled;
+    }
+
+    @Override
+    public void setNoFallbackEnabled(boolean enabled) {
+        this.noFallbackEnabled = enabled;
+    }
+
+    @Override
+    public boolean isNoFallbackEnabled() {
+        return noFallbackEnabled;
+    }
+

Review Comment:
   All of the above methods have to be duplicated across all implementers of 
CommonHaDispatch? Why is that? If they were added to a common extension instead 
wouldn't that be better?





Issue Time Tracking
-------------------

    Worklog Id:     (was: 972020)
    Time Spent: 20m  (was: 10m)

> Failover ability for SSEHaDispatch
> ----------------------------------
>
>                 Key: KNOX-3146
>                 URL: https://issues.apache.org/jira/browse/KNOX-3146
>             Project: Apache Knox
>          Issue Type: Improvement
>          Components: Server
>    Affects Versions: 2.2.0
>            Reporter: Tamás Hanicz
>            Assignee: Tamás Hanicz
>            Priority: Major
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> The failover ability is missing for SSEHaDispatch. It would be beneficial to 
> add it.  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to