nastra commented on code in PR #6837:
URL: https://github.com/apache/iceberg/pull/6837#discussion_r1109430531


##########
core/src/main/java/org/apache/iceberg/rest/auth/OAuth2Util.java:
##########
@@ -355,62 +357,52 @@ public static class AuthSession {
     private static final long MAX_REFRESH_WINDOW_MILLIS = 300_000; // 5 minutes
     private static final long MIN_REFRESH_WAIT_MILLIS = 10;
     private volatile Map<String, String> headers;
-    private volatile String token;
-    private volatile String tokenType;
-    private volatile Long expiresAtMillis;
-    private final String credential;
-    private final String scope;
-    private volatile boolean keepRefreshed = true;
+    private volatile AuthConfig config;
 
     /**
-     * @deprecated will be removed in 1.3.0; use {@link 
AuthSession#AuthSession(Map, String, String,
-     *     String, String)} instead.
+     * @deprecated will be removed in 1.3.0; use {@link 
AuthSession#AuthSession(Map, AuthConfig)}
+     *     instead.
      */
     @Deprecated
     public AuthSession(Map<String, String> baseHeaders, String token, String 
tokenType) {
-      this(baseHeaders, token, tokenType, null, 
OAuth2Properties.CATALOG_SCOPE);
+      this(baseHeaders, 
ImmutableAuthConfig.builder().token(token).tokenType(tokenType).build());

Review Comment:
   using a null executor was the very first approach I had to this (and I made 
it available in https://github.com/apache/iceberg/pull/6867) but I discarded it 
after reviewing and thinking about it. 
   
   While the diff in https://github.com/apache/iceberg/pull/6867 ends up being 
smaller, the code is still somewhat difficult to grasp if you're reading it.
   One has to pass through all the `fromXyz()` methods to really understand 
what's happening with the parameters that are being passed around.
   
   Having an `AuthConfig` is fairly straight-forward to understand and one 
doesn't have to go through multiple layers of methods to figure out how the 
`AuthSession` ends up being configured.
   
   Obviously during PR reviews we only see a diff and a smaller diff is always 
easier to review. However, sometimes it's better to produce a slightly bigger 
diff to improve the code for readability and understandability.
   
   



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org
For additional commands, e-mail: issues-h...@iceberg.apache.org

Reply via email to