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

jmclean pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/gravitino.git


The following commit(s) were added to refs/heads/main by this push:
     new 918fc49b77 [#6420] improve(CLI): Add column command context CLI (#6436)
918fc49b77 is described below

commit 918fc49b775f463445a619e86aa0c15393dea9b3
Author: Lord of Abyss <103809695+abyss-l...@users.noreply.github.com>
AuthorDate: Tue Feb 11 13:50:14 2025 +0800

    [#6420] improve(CLI): Add column command context CLI (#6436)
    
    ### What changes were proposed in this pull request?
    
    Add column command context CLI
    
    ### Why are the changes needed?
    
    Fix: #6420
    
    ### Does this PR introduce _any_ user-facing change?
    
    No
    
    ### How was this patch tested?
    
    local test.
---
 .../apache/gravitino/cli/ColumnCommandHandler.java |  38 ++--
 .../apache/gravitino/cli/GravitinoCommandLine.java |   2 +-
 .../apache/gravitino/cli/TestableCommandLine.java  |  58 ++---
 .../apache/gravitino/cli/commands/AddColumn.java   |  11 +-
 .../apache/gravitino/cli/commands/ColumnAudit.java |  26 +--
 .../gravitino/cli/commands/DeleteColumn.java       |  11 +-
 .../apache/gravitino/cli/commands/ListColumns.java |  18 +-
 .../cli/commands/UpdateColumnAutoIncrement.java    |  11 +-
 .../cli/commands/UpdateColumnComment.java          |  11 +-
 .../cli/commands/UpdateColumnDatatype.java         |  11 +-
 .../cli/commands/UpdateColumnDefault.java          |  11 +-
 .../gravitino/cli/commands/UpdateColumnName.java   |  11 +-
 .../cli/commands/UpdateColumnNullability.java      |  11 +-
 .../cli/commands/UpdateColumnPosition.java         |  11 +-
 .../apache/gravitino/cli/TestColumnCommands.java   | 235 ++++++++++-----------
 15 files changed, 217 insertions(+), 259 deletions(-)

diff --git 
a/clients/cli/src/main/java/org/apache/gravitino/cli/ColumnCommandHandler.java 
b/clients/cli/src/main/java/org/apache/gravitino/cli/ColumnCommandHandler.java
index c0775dae96..58398585c3 100644
--- 
a/clients/cli/src/main/java/org/apache/gravitino/cli/ColumnCommandHandler.java
+++ 
b/clients/cli/src/main/java/org/apache/gravitino/cli/ColumnCommandHandler.java
@@ -29,8 +29,7 @@ public class ColumnCommandHandler extends CommandHandler {
   private final GravitinoCommandLine gravitinoCommandLine;
   private final CommandLine line;
   private final String command;
-  private final boolean ignore;
-  private final String url;
+  private final CommandContext context;
   private final FullName name;
   private final String metalake;
   private final String catalog;
@@ -44,16 +43,19 @@ public class ColumnCommandHandler extends CommandHandler {
    * @param gravitinoCommandLine The Gravitino command line instance.
    * @param line The command line arguments.
    * @param command The command to execute.
-   * @param ignore Ignore server version mismatch.
+   * @param context The command context.
    */
   public ColumnCommandHandler(
-      GravitinoCommandLine gravitinoCommandLine, CommandLine line, String 
command, boolean ignore) {
+      GravitinoCommandLine gravitinoCommandLine,
+      CommandLine line,
+      String command,
+      CommandContext context) {
     this.gravitinoCommandLine = gravitinoCommandLine;
     this.line = line;
     this.command = command;
-    this.ignore = ignore;
+    this.context = context;
 
-    this.url = getUrl(line);
+    this.context.setUrl(getUrl(line));
     this.name = new FullName(line);
     this.metalake = name.getMetalakeName();
     this.catalog = name.getCatalogName();
@@ -120,7 +122,7 @@ public class ColumnCommandHandler extends CommandHandler {
   private void handleDetailsCommand() {
     if (line.hasOption(GravitinoOptions.AUDIT)) {
       gravitinoCommandLine
-          .newColumnAudit(url, ignore, metalake, catalog, schema, table, 
column)
+          .newColumnAudit(context, metalake, catalog, schema, table, column)
           .validate()
           .handle();
     } else {
@@ -144,8 +146,7 @@ public class ColumnCommandHandler extends CommandHandler {
 
     gravitinoCommandLine
         .newAddColumn(
-            url,
-            ignore,
+            context,
             metalake,
             catalog,
             schema,
@@ -164,7 +165,7 @@ public class ColumnCommandHandler extends CommandHandler {
   /** Handles the "DELETE" command. */
   private void handleDeleteCommand() {
     gravitinoCommandLine
-        .newDeleteColumn(url, ignore, metalake, catalog, schema, table, column)
+        .newDeleteColumn(context, metalake, catalog, schema, table, column)
         .validate()
         .handle();
   }
@@ -174,36 +175,35 @@ public class ColumnCommandHandler extends CommandHandler {
     if (line.hasOption(GravitinoOptions.COMMENT)) {
       String comment = line.getOptionValue(GravitinoOptions.COMMENT);
       gravitinoCommandLine
-          .newUpdateColumnComment(url, ignore, metalake, catalog, schema, 
table, column, comment)
+          .newUpdateColumnComment(context, metalake, catalog, schema, table, 
column, comment)
           .validate()
           .handle();
     }
     if (line.hasOption(GravitinoOptions.RENAME)) {
       String newName = line.getOptionValue(GravitinoOptions.RENAME);
       gravitinoCommandLine
-          .newUpdateColumnName(url, ignore, metalake, catalog, schema, table, 
column, newName)
+          .newUpdateColumnName(context, metalake, catalog, schema, table, 
column, newName)
           .validate()
           .handle();
     }
     if (line.hasOption(GravitinoOptions.DATATYPE) && 
!line.hasOption(GravitinoOptions.DEFAULT)) {
       String datatype = line.getOptionValue(GravitinoOptions.DATATYPE);
       gravitinoCommandLine
-          .newUpdateColumnDatatype(url, ignore, metalake, catalog, schema, 
table, column, datatype)
+          .newUpdateColumnDatatype(context, metalake, catalog, schema, table, 
column, datatype)
           .validate()
           .handle();
     }
     if (line.hasOption(GravitinoOptions.POSITION)) {
       String position = line.getOptionValue(GravitinoOptions.POSITION);
       gravitinoCommandLine
-          .newUpdateColumnPosition(url, ignore, metalake, catalog, schema, 
table, column, position)
+          .newUpdateColumnPosition(context, metalake, catalog, schema, table, 
column, position)
           .validate()
           .handle();
     }
     if (line.hasOption(GravitinoOptions.NULL)) {
       boolean nullable = 
line.getOptionValue(GravitinoOptions.NULL).equals("true");
       gravitinoCommandLine
-          .newUpdateColumnNullability(
-              url, ignore, metalake, catalog, schema, table, column, nullable)
+          .newUpdateColumnNullability(context, metalake, catalog, schema, 
table, column, nullable)
           .validate()
           .handle();
     }
@@ -211,7 +211,7 @@ public class ColumnCommandHandler extends CommandHandler {
       boolean autoIncrement = 
line.getOptionValue(GravitinoOptions.AUTO).equals("true");
       gravitinoCommandLine
           .newUpdateColumnAutoIncrement(
-              url, ignore, metalake, catalog, schema, table, column, 
autoIncrement)
+              context, metalake, catalog, schema, table, column, autoIncrement)
           .validate()
           .handle();
     }
@@ -220,7 +220,7 @@ public class ColumnCommandHandler extends CommandHandler {
       String dataType = line.getOptionValue(GravitinoOptions.DATATYPE);
       gravitinoCommandLine
           .newUpdateColumnDefault(
-              url, ignore, metalake, catalog, schema, table, column, 
defaultValue, dataType)
+              context, metalake, catalog, schema, table, column, defaultValue, 
dataType)
           .validate()
           .handle();
     }
@@ -229,7 +229,7 @@ public class ColumnCommandHandler extends CommandHandler {
   /** Handles the "LIST" command. */
   private void handleListCommand() {
     gravitinoCommandLine
-        .newListColumns(url, ignore, metalake, catalog, schema, table)
+        .newListColumns(context, metalake, catalog, schema, table)
         .validate()
         .handle();
   }
diff --git 
a/clients/cli/src/main/java/org/apache/gravitino/cli/GravitinoCommandLine.java 
b/clients/cli/src/main/java/org/apache/gravitino/cli/GravitinoCommandLine.java
index b5e5838f1b..7230604655 100644
--- 
a/clients/cli/src/main/java/org/apache/gravitino/cli/GravitinoCommandLine.java
+++ 
b/clients/cli/src/main/java/org/apache/gravitino/cli/GravitinoCommandLine.java
@@ -116,7 +116,7 @@ public class GravitinoCommandLine extends 
TestableCommandLine {
     } else if (line.hasOption(GravitinoOptions.OWNER)) {
       new OwnerCommandHandler(this, line, command, ignore, entity).handle();
     } else if (entity.equals(CommandEntities.COLUMN)) {
-      new ColumnCommandHandler(this, line, command, ignore).handle();
+      new ColumnCommandHandler(this, line, command, context).handle();
     } else if (entity.equals(CommandEntities.TABLE)) {
       new TableCommandHandler(this, line, command, context).handle();
     } else if (entity.equals(CommandEntities.SCHEMA)) {
diff --git 
a/clients/cli/src/main/java/org/apache/gravitino/cli/TestableCommandLine.java 
b/clients/cli/src/main/java/org/apache/gravitino/cli/TestableCommandLine.java
index 8a64c6c551..b27e24fde9 100644
--- 
a/clients/cli/src/main/java/org/apache/gravitino/cli/TestableCommandLine.java
+++ 
b/clients/cli/src/main/java/org/apache/gravitino/cli/TestableCommandLine.java
@@ -538,19 +538,18 @@ public class TestableCommandLine {
   }
 
   protected ColumnAudit newColumnAudit(
-      String url,
-      boolean ignore,
+      CommandContext context,
       String metalake,
       String catalog,
       String schema,
       String table,
       String column) {
-    return new ColumnAudit(url, ignore, metalake, catalog, schema, table, 
column);
+    return new ColumnAudit(context, metalake, catalog, schema, table, column);
   }
 
   protected ListColumns newListColumns(
-      String url, boolean ignore, String metalake, String catalog, String 
schema, String table) {
-    return new ListColumns(url, ignore, metalake, catalog, schema, table);
+      CommandContext context, String metalake, String catalog, String schema, 
String table) {
+    return new ListColumns(context, metalake, catalog, schema, table);
   }
 
   protected SetOwner newSetOwner(
@@ -703,8 +702,7 @@ public class TestableCommandLine {
   }
 
   protected AddColumn newAddColumn(
-      String url,
-      boolean ignore,
+      CommandContext context,
       String metalake,
       String catalog,
       String schema,
@@ -717,8 +715,7 @@ public class TestableCommandLine {
       boolean autoIncrement,
       String defaultValue) {
     return new AddColumn(
-        url,
-        ignore,
+        context,
         metalake,
         catalog,
         schema,
@@ -733,82 +730,72 @@ public class TestableCommandLine {
   }
 
   protected DeleteColumn newDeleteColumn(
-      String url,
-      boolean ignore,
+      CommandContext context,
       String metalake,
       String catalog,
       String schema,
       String table,
       String column) {
-    return new DeleteColumn(url, ignore, metalake, catalog, schema, table, 
column);
+    return new DeleteColumn(context, metalake, catalog, schema, table, column);
   }
 
   protected UpdateColumnComment newUpdateColumnComment(
-      String url,
-      boolean ignore,
+      CommandContext context,
       String metalake,
       String catalog,
       String schema,
       String table,
       String column,
       String comment) {
-    return new UpdateColumnComment(url, ignore, metalake, catalog, schema, 
table, column, comment);
+    return new UpdateColumnComment(context, metalake, catalog, schema, table, 
column, comment);
   }
 
   protected UpdateColumnName newUpdateColumnName(
-      String url,
-      boolean ignore,
+      CommandContext context,
       String metalake,
       String catalog,
       String schema,
       String table,
       String column,
       String rename) {
-    return new UpdateColumnName(url, ignore, metalake, catalog, schema, table, 
column, rename);
+    return new UpdateColumnName(context, metalake, catalog, schema, table, 
column, rename);
   }
 
   protected UpdateColumnDatatype newUpdateColumnDatatype(
-      String url,
-      boolean ignore,
+      CommandContext context,
       String metalake,
       String catalog,
       String schema,
       String table,
       String column,
       String datatype) {
-    return new UpdateColumnDatatype(
-        url, ignore, metalake, catalog, schema, table, column, datatype);
+    return new UpdateColumnDatatype(context, metalake, catalog, schema, table, 
column, datatype);
   }
 
   protected UpdateColumnPosition newUpdateColumnPosition(
-      String url,
-      boolean ignore,
+      CommandContext context,
       String metalake,
       String catalog,
       String schema,
       String table,
       String column,
       String position) {
-    return new UpdateColumnPosition(
-        url, ignore, metalake, catalog, schema, table, column, position);
+    return new UpdateColumnPosition(context, metalake, catalog, schema, table, 
column, position);
   }
 
   protected UpdateColumnNullability newUpdateColumnNullability(
-      String url,
-      boolean ignore,
+      CommandContext context,
       String metalake,
       String catalog,
       String schema,
       String table,
       String column,
       boolean nullable) {
-    return new UpdateColumnNullability(
-        url, ignore, metalake, catalog, schema, table, column, nullable);
+    return new UpdateColumnNullability(context, metalake, catalog, schema, 
table, column, nullable);
   }
 
   protected UpdateColumnAutoIncrement newUpdateColumnAutoIncrement(
-      String url,
-      boolean ignore,
+      CommandContext context,
       String metalake,
       String catalog,
       String schema,
@@ -816,12 +803,11 @@ public class TestableCommandLine {
       String column,
       boolean autoIncrement) {
     return new UpdateColumnAutoIncrement(
-        url, ignore, metalake, catalog, schema, table, column, autoIncrement);
+        context, metalake, catalog, schema, table, column, autoIncrement);
   }
 
   protected UpdateColumnDefault newUpdateColumnDefault(
-      String url,
-      boolean ignore,
+      CommandContext context,
       String metalake,
       String catalog,
       String schema,
@@ -830,7 +816,7 @@ public class TestableCommandLine {
       String defaultValue,
       String dataType) {
     return new UpdateColumnDefault(
-        url, ignore, metalake, catalog, schema, table, column, defaultValue, 
dataType);
+        context, metalake, catalog, schema, table, column, defaultValue, 
dataType);
   }
 
   protected CreateTable newCreateTable(
diff --git 
a/clients/cli/src/main/java/org/apache/gravitino/cli/commands/AddColumn.java 
b/clients/cli/src/main/java/org/apache/gravitino/cli/commands/AddColumn.java
index 7160360716..6227f695d9 100644
--- a/clients/cli/src/main/java/org/apache/gravitino/cli/commands/AddColumn.java
+++ b/clients/cli/src/main/java/org/apache/gravitino/cli/commands/AddColumn.java
@@ -20,6 +20,7 @@
 package org.apache.gravitino.cli.commands;
 
 import org.apache.gravitino.NameIdentifier;
+import org.apache.gravitino.cli.CommandContext;
 import org.apache.gravitino.cli.DefaultConverter;
 import org.apache.gravitino.cli.ErrorMessages;
 import org.apache.gravitino.cli.ParseType;
@@ -49,8 +50,7 @@ public class AddColumn extends Command {
   /**
    * Adds an optional column to a table.
    *
-   * @param url The URL of the Gravitino server.
-   * @param ignoreVersions If true don't check the client/server versions 
match.
+   * @param context The command context.
    * @param metalake The name of the metalake.
    * @param catalog The name of the catalog.
    * @param schema The name of the schema.
@@ -64,8 +64,7 @@ public class AddColumn extends Command {
    * @param defaultValue Default value of the column (optional).
    */
   public AddColumn(
-      String url,
-      boolean ignoreVersions,
+      CommandContext context,
       String metalake,
       String catalog,
       String schema,
@@ -77,7 +76,7 @@ public class AddColumn extends Command {
       boolean nullable,
       boolean autoIncrement,
       String defaultValue) {
-    super(url, ignoreVersions);
+    super(context);
     this.metalake = metalake;
     this.catalog = catalog;
     this.schema = schema;
@@ -123,6 +122,6 @@ public class AddColumn extends Command {
       exitWithError(exp.getMessage());
     }
 
-    System.out.println(column + " added to table " + table + ".");
+    printInformation(column + " added to table " + table + ".");
   }
 }
diff --git 
a/clients/cli/src/main/java/org/apache/gravitino/cli/commands/ColumnAudit.java 
b/clients/cli/src/main/java/org/apache/gravitino/cli/commands/ColumnAudit.java
index db17f6551f..7cee2f9eb6 100644
--- 
a/clients/cli/src/main/java/org/apache/gravitino/cli/commands/ColumnAudit.java
+++ 
b/clients/cli/src/main/java/org/apache/gravitino/cli/commands/ColumnAudit.java
@@ -20,6 +20,7 @@
 package org.apache.gravitino.cli.commands;
 
 import org.apache.gravitino.Catalog;
+import org.apache.gravitino.cli.CommandContext;
 import org.apache.gravitino.cli.ErrorMessages;
 import org.apache.gravitino.client.GravitinoClient;
 import org.apache.gravitino.exceptions.NoSuchCatalogException;
@@ -38,8 +39,7 @@ public class ColumnAudit extends AuditCommand {
   /**
    * Displays the audit information of a column.
    *
-   * @param url The URL of the Gravitino server.
-   * @param ignoreVersions If true don't check the client/server versions 
match.
+   * @param context The command context.
    * @param metalake The name of the metalake.
    * @param catalog The name of the catalog.
    * @param schema The name of the schema.
@@ -47,14 +47,13 @@ public class ColumnAudit extends AuditCommand {
    * @param column The name of the column.
    */
   public ColumnAudit(
-      String url,
-      boolean ignoreVersions,
+      CommandContext context,
       String metalake,
       String catalog,
       String schema,
       String table,
       String column) {
-    super(url, ignoreVersions);
+    super(context);
     this.metalake = metalake;
     this.catalog = catalog;
     this.schema = schema;
@@ -65,25 +64,20 @@ public class ColumnAudit extends AuditCommand {
   /** Displays the audit information of a specified column. */
   @Override
   public void handle() {
-    Catalog result;
+    Catalog result = null;
 
     try (GravitinoClient client = buildClient(metalake)) {
       result = client.loadCatalog(this.catalog);
     } catch (NoSuchMetalakeException err) {
-      System.err.println(ErrorMessages.UNKNOWN_METALAKE);
-      return;
+      exitWithError(ErrorMessages.UNKNOWN_METALAKE);
     } catch (NoSuchCatalogException err) {
-      System.err.println(ErrorMessages.UNKNOWN_CATALOG);
-      return;
+      exitWithError(ErrorMessages.UNKNOWN_CATALOG);
     } catch (NoSuchTableException err) {
-      System.err.println(ErrorMessages.UNKNOWN_TABLE);
-      return;
+      exitWithError(ErrorMessages.UNKNOWN_TABLE);
     } catch (NoSuchColumnException err) {
-      System.err.println(ErrorMessages.UNKNOWN_COLUMN);
-      return;
+      exitWithError(ErrorMessages.UNKNOWN_COLUMN);
     } catch (Exception exp) {
-      System.err.println(exp.getMessage());
-      return;
+      exitWithError(exp.getMessage());
     }
 
     if (result != null) {
diff --git 
a/clients/cli/src/main/java/org/apache/gravitino/cli/commands/DeleteColumn.java 
b/clients/cli/src/main/java/org/apache/gravitino/cli/commands/DeleteColumn.java
index 17ac22d128..34ed73b2ee 100644
--- 
a/clients/cli/src/main/java/org/apache/gravitino/cli/commands/DeleteColumn.java
+++ 
b/clients/cli/src/main/java/org/apache/gravitino/cli/commands/DeleteColumn.java
@@ -20,6 +20,7 @@
 package org.apache.gravitino.cli.commands;
 
 import org.apache.gravitino.NameIdentifier;
+import org.apache.gravitino.cli.CommandContext;
 import org.apache.gravitino.cli.ErrorMessages;
 import org.apache.gravitino.client.GravitinoClient;
 import org.apache.gravitino.exceptions.NoSuchCatalogException;
@@ -40,8 +41,7 @@ public class DeleteColumn extends Command {
   /**
    * Delete a column.
    *
-   * @param url The URL of the Gravitino server.
-   * @param ignoreVersions If true don't check the client/server versions 
match.
+   * @param context The command context.
    * @param metalake The name of the metalake.
    * @param catalog The name of the catalog.
    * @param schema The name of the schema.
@@ -49,14 +49,13 @@ public class DeleteColumn extends Command {
    * @param column The name of the column.
    */
   public DeleteColumn(
-      String url,
-      boolean ignoreVersions,
+      CommandContext context,
       String metalake,
       String catalog,
       String schema,
       String table,
       String column) {
-    super(url, ignoreVersions);
+    super(context);
     this.metalake = metalake;
     this.catalog = catalog;
     this.schema = schema;
@@ -88,6 +87,6 @@ public class DeleteColumn extends Command {
       exitWithError(exp.getMessage());
     }
 
-    System.out.println(column + " deleted.");
+    printInformation(column + " deleted.");
   }
 }
diff --git 
a/clients/cli/src/main/java/org/apache/gravitino/cli/commands/ListColumns.java 
b/clients/cli/src/main/java/org/apache/gravitino/cli/commands/ListColumns.java
index e1d8eac208..f638caf687 100644
--- 
a/clients/cli/src/main/java/org/apache/gravitino/cli/commands/ListColumns.java
+++ 
b/clients/cli/src/main/java/org/apache/gravitino/cli/commands/ListColumns.java
@@ -21,6 +21,7 @@ package org.apache.gravitino.cli.commands;
 
 import com.google.common.base.Joiner;
 import org.apache.gravitino.NameIdentifier;
+import org.apache.gravitino.cli.CommandContext;
 import org.apache.gravitino.cli.ErrorMessages;
 import org.apache.gravitino.exceptions.NoSuchTableException;
 import org.apache.gravitino.rel.Column;
@@ -34,21 +35,15 @@ public class ListColumns extends TableCommand {
   /**
    * Displays the details of a table's columns.
    *
-   * @param url The URL of the Gravitino server.
-   * @param ignoreVersions If true don't check the client/server versions 
match.
+   * @param context The command context.
    * @param metalake The name of the metalake.
    * @param catalog The name of the catalog.
    * @param schema The name of the schenma.
    * @param table The name of the table.
    */
   public ListColumns(
-      String url,
-      boolean ignoreVersions,
-      String metalake,
-      String catalog,
-      String schema,
-      String table) {
-    super(url, ignoreVersions, metalake, catalog);
+      CommandContext context, String metalake, String catalog, String schema, 
String table) {
+    super(context, metalake, catalog);
     this.schema = schema;
     this.table = table;
   }
@@ -62,9 +57,8 @@ public class ListColumns extends TableCommand {
       NameIdentifier name = NameIdentifier.of(schema, table);
       columns = tableCatalog().loadTable(name).columns();
     } catch (NoSuchTableException noSuchTableException) {
-      System.err.println(
+      exitWithError(
           ErrorMessages.UNKNOWN_TABLE + Joiner.on(".").join(metalake, catalog, 
schema, table));
-      return;
     } catch (Exception exp) {
       exitWithError(exp.getMessage());
     }
@@ -94,6 +88,6 @@ public class ListColumns extends TableCommand {
               + System.lineSeparator());
     }
 
-    System.out.print(all);
+    printResults(all.toString());
   }
 }
diff --git 
a/clients/cli/src/main/java/org/apache/gravitino/cli/commands/UpdateColumnAutoIncrement.java
 
b/clients/cli/src/main/java/org/apache/gravitino/cli/commands/UpdateColumnAutoIncrement.java
index 99b27b200e..44b114e0a2 100644
--- 
a/clients/cli/src/main/java/org/apache/gravitino/cli/commands/UpdateColumnAutoIncrement.java
+++ 
b/clients/cli/src/main/java/org/apache/gravitino/cli/commands/UpdateColumnAutoIncrement.java
@@ -20,6 +20,7 @@
 package org.apache.gravitino.cli.commands;
 
 import org.apache.gravitino.NameIdentifier;
+import org.apache.gravitino.cli.CommandContext;
 import org.apache.gravitino.cli.ErrorMessages;
 import org.apache.gravitino.client.GravitinoClient;
 import org.apache.gravitino.exceptions.NoSuchCatalogException;
@@ -42,8 +43,7 @@ public class UpdateColumnAutoIncrement extends Command {
   /**
    * Update the auto increment of a column.
    *
-   * @param url The URL of the Gravitino server.
-   * @param ignoreVersions If true don't check the client/server versions 
match.
+   * @param context The command context.
    * @param metalake The name of the metalake.
    * @param catalog The name of the catalog.
    * @param schema The name of the schema.
@@ -52,15 +52,14 @@ public class UpdateColumnAutoIncrement extends Command {
    * @param autoincrement True if the column can be null, false if it must 
have non-null values.
    */
   public UpdateColumnAutoIncrement(
-      String url,
-      boolean ignoreVersions,
+      CommandContext context,
       String metalake,
       String catalog,
       String schema,
       String table,
       String column,
       boolean autoincrement) {
-    super(url, ignoreVersions);
+    super(context);
     this.metalake = metalake;
     this.catalog = catalog;
     this.schema = schema;
@@ -94,6 +93,6 @@ public class UpdateColumnAutoIncrement extends Command {
       exitWithError(exp.getMessage());
     }
 
-    System.out.println(column + " auto increment changed to " + autoincrement 
+ ".");
+    printInformation(column + " auto increment changed to " + autoincrement + 
".");
   }
 }
diff --git 
a/clients/cli/src/main/java/org/apache/gravitino/cli/commands/UpdateColumnComment.java
 
b/clients/cli/src/main/java/org/apache/gravitino/cli/commands/UpdateColumnComment.java
index 2c7f05a8fd..85413f1e8f 100644
--- 
a/clients/cli/src/main/java/org/apache/gravitino/cli/commands/UpdateColumnComment.java
+++ 
b/clients/cli/src/main/java/org/apache/gravitino/cli/commands/UpdateColumnComment.java
@@ -20,6 +20,7 @@
 package org.apache.gravitino.cli.commands;
 
 import org.apache.gravitino.NameIdentifier;
+import org.apache.gravitino.cli.CommandContext;
 import org.apache.gravitino.cli.ErrorMessages;
 import org.apache.gravitino.client.GravitinoClient;
 import org.apache.gravitino.exceptions.NoSuchCatalogException;
@@ -42,8 +43,7 @@ public class UpdateColumnComment extends Command {
   /**
    * Update the comment of a column.
    *
-   * @param url The URL of the Gravitino server.
-   * @param ignoreVersions If true don't check the client/server versions 
match.
+   * @param context The command context.
    * @param metalake The name of the metalake.
    * @param catalog The name of the catalog.
    * @param schema The name of the schema.
@@ -52,15 +52,14 @@ public class UpdateColumnComment extends Command {
    * @param comment New column comment.
    */
   public UpdateColumnComment(
-      String url,
-      boolean ignoreVersions,
+      CommandContext context,
       String metalake,
       String catalog,
       String schema,
       String table,
       String column,
       String comment) {
-    super(url, ignoreVersions);
+    super(context);
     this.metalake = metalake;
     this.catalog = catalog;
     this.schema = schema;
@@ -94,6 +93,6 @@ public class UpdateColumnComment extends Command {
       exitWithError(exp.getMessage());
     }
 
-    System.out.println(column + " comment changed.");
+    printInformation(column + " comment changed.");
   }
 }
diff --git 
a/clients/cli/src/main/java/org/apache/gravitino/cli/commands/UpdateColumnDatatype.java
 
b/clients/cli/src/main/java/org/apache/gravitino/cli/commands/UpdateColumnDatatype.java
index 6eac9da7ef..29e44b648d 100644
--- 
a/clients/cli/src/main/java/org/apache/gravitino/cli/commands/UpdateColumnDatatype.java
+++ 
b/clients/cli/src/main/java/org/apache/gravitino/cli/commands/UpdateColumnDatatype.java
@@ -20,6 +20,7 @@
 package org.apache.gravitino.cli.commands;
 
 import org.apache.gravitino.NameIdentifier;
+import org.apache.gravitino.cli.CommandContext;
 import org.apache.gravitino.cli.ErrorMessages;
 import org.apache.gravitino.cli.ParseType;
 import org.apache.gravitino.client.GravitinoClient;
@@ -44,8 +45,7 @@ public class UpdateColumnDatatype extends Command {
   /**
    * Update the data type of a column.
    *
-   * @param url The URL of the Gravitino server.
-   * @param ignoreVersions If true don't check the client/server versions 
match.
+   * @param context The command context.
    * @param metalake The name of the metalake.
    * @param catalog The name of the catalog.
    * @param schema The name of the schema.
@@ -54,15 +54,14 @@ public class UpdateColumnDatatype extends Command {
    * @param datatype The new data type name.
    */
   public UpdateColumnDatatype(
-      String url,
-      boolean ignoreVersions,
+      CommandContext context,
       String metalake,
       String catalog,
       String schema,
       String table,
       String column,
       String datatype) {
-    super(url, ignoreVersions);
+    super(context);
     this.metalake = metalake;
     this.catalog = catalog;
     this.schema = schema;
@@ -97,6 +96,6 @@ public class UpdateColumnDatatype extends Command {
       exitWithError(exp.getMessage());
     }
 
-    System.out.println(column + " datatype changed to " + datatype + ".");
+    printInformation(column + " datatype changed to " + datatype + ".");
   }
 }
diff --git 
a/clients/cli/src/main/java/org/apache/gravitino/cli/commands/UpdateColumnDefault.java
 
b/clients/cli/src/main/java/org/apache/gravitino/cli/commands/UpdateColumnDefault.java
index 976cf62305..cf8a49c47c 100644
--- 
a/clients/cli/src/main/java/org/apache/gravitino/cli/commands/UpdateColumnDefault.java
+++ 
b/clients/cli/src/main/java/org/apache/gravitino/cli/commands/UpdateColumnDefault.java
@@ -20,6 +20,7 @@
 package org.apache.gravitino.cli.commands;
 
 import org.apache.gravitino.NameIdentifier;
+import org.apache.gravitino.cli.CommandContext;
 import org.apache.gravitino.cli.DefaultConverter;
 import org.apache.gravitino.cli.ErrorMessages;
 import org.apache.gravitino.client.GravitinoClient;
@@ -44,8 +45,7 @@ public class UpdateColumnDefault extends Command {
   /**
    * Update the default type of a column.
    *
-   * @param url The URL of the Gravitino server.
-   * @param ignoreVersions If true don't check the client/server versions 
match.
+   * @param context The command context.
    * @param metalake The name of the metalake.
    * @param catalog The name of the catalog.
    * @param schema The name of the schema.
@@ -55,8 +55,7 @@ public class UpdateColumnDefault extends Command {
    * @param dataType The new default data type.
    */
   public UpdateColumnDefault(
-      String url,
-      boolean ignoreVersions,
+      CommandContext context,
       String metalake,
       String catalog,
       String schema,
@@ -64,7 +63,7 @@ public class UpdateColumnDefault extends Command {
       String column,
       String defaultValue,
       String dataType) {
-    super(url, ignoreVersions);
+    super(context);
     this.metalake = metalake;
     this.catalog = catalog;
     this.schema = schema;
@@ -101,7 +100,7 @@ public class UpdateColumnDefault extends Command {
       exitWithError(exp.getMessage());
     }
 
-    System.out.println(column + " default changed.");
+    printInformation(column + " default changed.");
   }
 
   @Override
diff --git 
a/clients/cli/src/main/java/org/apache/gravitino/cli/commands/UpdateColumnName.java
 
b/clients/cli/src/main/java/org/apache/gravitino/cli/commands/UpdateColumnName.java
index 124223dbd2..74865f4c44 100644
--- 
a/clients/cli/src/main/java/org/apache/gravitino/cli/commands/UpdateColumnName.java
+++ 
b/clients/cli/src/main/java/org/apache/gravitino/cli/commands/UpdateColumnName.java
@@ -20,6 +20,7 @@
 package org.apache.gravitino.cli.commands;
 
 import org.apache.gravitino.NameIdentifier;
+import org.apache.gravitino.cli.CommandContext;
 import org.apache.gravitino.cli.ErrorMessages;
 import org.apache.gravitino.client.GravitinoClient;
 import org.apache.gravitino.exceptions.NoSuchCatalogException;
@@ -42,8 +43,7 @@ public class UpdateColumnName extends Command {
   /**
    * Update the name of a column.
    *
-   * @param url The URL of the Gravitino server.
-   * @param ignoreVersions If true don't check the client/server versions 
match.
+   * @param context The command context.
    * @param metalake The name of the metalake.
    * @param catalog The name of the catalog.
    * @param schema The name of the schema.
@@ -52,15 +52,14 @@ public class UpdateColumnName extends Command {
    * @param name The new column name.
    */
   public UpdateColumnName(
-      String url,
-      boolean ignoreVersions,
+      CommandContext context,
       String metalake,
       String catalog,
       String schema,
       String table,
       String column,
       String name) {
-    super(url, ignoreVersions);
+    super(context);
     this.metalake = metalake;
     this.catalog = catalog;
     this.schema = schema;
@@ -94,6 +93,6 @@ public class UpdateColumnName extends Command {
       exitWithError(exp.getMessage());
     }
 
-    System.out.println(column + " name changed.");
+    printInformation(column + " name changed.");
   }
 }
diff --git 
a/clients/cli/src/main/java/org/apache/gravitino/cli/commands/UpdateColumnNullability.java
 
b/clients/cli/src/main/java/org/apache/gravitino/cli/commands/UpdateColumnNullability.java
index 868b426868..dce5c23aa2 100644
--- 
a/clients/cli/src/main/java/org/apache/gravitino/cli/commands/UpdateColumnNullability.java
+++ 
b/clients/cli/src/main/java/org/apache/gravitino/cli/commands/UpdateColumnNullability.java
@@ -20,6 +20,7 @@
 package org.apache.gravitino.cli.commands;
 
 import org.apache.gravitino.NameIdentifier;
+import org.apache.gravitino.cli.CommandContext;
 import org.apache.gravitino.cli.ErrorMessages;
 import org.apache.gravitino.client.GravitinoClient;
 import org.apache.gravitino.exceptions.NoSuchCatalogException;
@@ -42,8 +43,7 @@ public class UpdateColumnNullability extends Command {
   /**
    * Update the nullability of a column.
    *
-   * @param url The URL of the Gravitino server.
-   * @param ignoreVersions If true don't check the client/server versions 
match.
+   * @param context The command context.
    * @param metalake The name of the metalake.
    * @param catalog The name of the catalog.
    * @param schema The name of the schema.
@@ -52,15 +52,14 @@ public class UpdateColumnNullability extends Command {
    * @param nullability True if the column can be null, false if it must have 
non-null values.
    */
   public UpdateColumnNullability(
-      String url,
-      boolean ignoreVersions,
+      CommandContext context,
       String metalake,
       String catalog,
       String schema,
       String table,
       String column,
       boolean nullability) {
-    super(url, ignoreVersions);
+    super(context);
     this.metalake = metalake;
     this.catalog = catalog;
     this.schema = schema;
@@ -94,6 +93,6 @@ public class UpdateColumnNullability extends Command {
       exitWithError(exp.getMessage());
     }
 
-    System.out.println(column + " nullability changed to " + nullability + 
".");
+    printInformation(column + " nullability changed to " + nullability + ".");
   }
 }
diff --git 
a/clients/cli/src/main/java/org/apache/gravitino/cli/commands/UpdateColumnPosition.java
 
b/clients/cli/src/main/java/org/apache/gravitino/cli/commands/UpdateColumnPosition.java
index 4bbe809d44..ba79aece7c 100644
--- 
a/clients/cli/src/main/java/org/apache/gravitino/cli/commands/UpdateColumnPosition.java
+++ 
b/clients/cli/src/main/java/org/apache/gravitino/cli/commands/UpdateColumnPosition.java
@@ -20,6 +20,7 @@
 package org.apache.gravitino.cli.commands;
 
 import org.apache.gravitino.NameIdentifier;
+import org.apache.gravitino.cli.CommandContext;
 import org.apache.gravitino.cli.ErrorMessages;
 import org.apache.gravitino.cli.PositionConverter;
 import org.apache.gravitino.client.GravitinoClient;
@@ -43,8 +44,7 @@ public class UpdateColumnPosition extends Command {
   /**
    * Update the position of a column.
    *
-   * @param url The URL of the Gravitino server.
-   * @param ignoreVersions If true don't check the client/server versions 
match.
+   * @param context The command context.
    * @param metalake The name of the metalake.
    * @param catalog The name of the catalog.
    * @param schema The name of the schema.
@@ -53,15 +53,14 @@ public class UpdateColumnPosition extends Command {
    * @param position The new position of the column.
    */
   public UpdateColumnPosition(
-      String url,
-      boolean ignoreVersions,
+      CommandContext context,
       String metalake,
       String catalog,
       String schema,
       String table,
       String column,
       String position) {
-    super(url, ignoreVersions);
+    super(context);
     this.metalake = metalake;
     this.catalog = catalog;
     this.schema = schema;
@@ -97,6 +96,6 @@ public class UpdateColumnPosition extends Command {
       exitWithError(exp.getMessage());
     }
 
-    System.out.println(column + " position changed to " + position + ".");
+    printInformation(column + " position changed to " + position + ".");
   }
 }
diff --git 
a/clients/cli/src/test/java/org/apache/gravitino/cli/TestColumnCommands.java 
b/clients/cli/src/test/java/org/apache/gravitino/cli/TestColumnCommands.java
index 31a3139482..521b1e2b61 100644
--- a/clients/cli/src/test/java/org/apache/gravitino/cli/TestColumnCommands.java
+++ b/clients/cli/src/test/java/org/apache/gravitino/cli/TestColumnCommands.java
@@ -21,6 +21,10 @@ package org.apache.gravitino.cli;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThrows;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.ArgumentMatchers.isNull;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
@@ -92,7 +96,11 @@ class TestColumnCommands {
     doReturn(mockList)
         .when(commandLine)
         .newListColumns(
-            GravitinoCommandLine.DEFAULT_URL, false, "metalake_demo", 
"catalog", "schema", "users");
+            any(CommandContext.class),
+            eq("metalake_demo"),
+            eq("catalog"),
+            eq("schema"),
+            eq("users"));
     doReturn(mockList).when(mockList).validate();
     commandLine.handleCommandLine();
     verify(mockList).handle();
@@ -114,13 +122,12 @@ class TestColumnCommands {
     doReturn(mockAudit)
         .when(commandLine)
         .newColumnAudit(
-            GravitinoCommandLine.DEFAULT_URL,
-            false,
-            "metalake_demo",
-            "catalog",
-            "schema",
-            "users",
-            "name");
+            any(CommandContext.class),
+            eq("metalake_demo"),
+            eq("catalog"),
+            eq("schema"),
+            eq("users"),
+            eq("name"));
     doReturn(mockAudit).when(mockAudit).validate();
     commandLine.handleCommandLine();
     verify(mockAudit).handle();
@@ -142,14 +149,12 @@ class TestColumnCommands {
     assertThrows(RuntimeException.class, commandLine::handleCommandLine);
     verify(commandLine, never())
         .newColumnAudit(
-            GravitinoCommandLine.DEFAULT_URL,
-            false,
-            "metalake_demo",
-            "catalog",
-            "schema",
-            "users",
-            "name");
-
+            any(CommandContext.class),
+            eq("metalake_demo"),
+            eq("catalog"),
+            eq("schema"),
+            eq("users"),
+            eq("name"));
     String output = new String(errContent.toByteArray(), 
StandardCharsets.UTF_8).trim();
     assertEquals(output, ErrorMessages.UNSUPPORTED_ACTION);
   }
@@ -176,19 +181,18 @@ class TestColumnCommands {
     doReturn(mockAddColumn)
         .when(commandLine)
         .newAddColumn(
-            GravitinoCommandLine.DEFAULT_URL,
-            false,
-            "metalake_demo",
-            "catalog",
-            "schema",
-            "users",
-            "name",
-            "varchar(100)",
-            "comment",
-            null,
-            true,
-            false,
-            null);
+            any(CommandContext.class),
+            eq("metalake_demo"),
+            eq("catalog"),
+            eq("schema"),
+            eq("users"),
+            eq("name"),
+            eq("varchar(100)"),
+            eq("comment"),
+            isNull(),
+            anyBoolean(),
+            anyBoolean(),
+            isNull());
     doReturn(mockAddColumn).when(mockAddColumn).validate();
     commandLine.handleCommandLine();
     verify(mockAddColumn).handle();
@@ -210,13 +214,12 @@ class TestColumnCommands {
     doReturn(mockDelete)
         .when(commandLine)
         .newDeleteColumn(
-            GravitinoCommandLine.DEFAULT_URL,
-            false,
-            "metalake_demo",
-            "catalog",
-            "schema",
-            "users",
-            "name");
+            any(CommandContext.class),
+            eq("metalake_demo"),
+            eq("catalog"),
+            eq("schema"),
+            eq("users"),
+            eq("name"));
     doReturn(mockDelete).when(mockDelete).validate();
     commandLine.handleCommandLine();
     verify(mockDelete).handle();
@@ -242,14 +245,13 @@ class TestColumnCommands {
     doReturn(mockUpdateColumn)
         .when(commandLine)
         .newUpdateColumnComment(
-            GravitinoCommandLine.DEFAULT_URL,
-            false,
-            "metalake_demo",
-            "catalog",
-            "schema",
-            "users",
-            "name",
-            "new comment");
+            any(CommandContext.class),
+            eq("metalake_demo"),
+            eq("catalog"),
+            eq("schema"),
+            eq("users"),
+            eq("name"),
+            eq("new comment"));
     doReturn(mockUpdateColumn).when(mockUpdateColumn).validate();
     commandLine.handleCommandLine();
     verify(mockUpdateColumn).handle();
@@ -275,14 +277,13 @@ class TestColumnCommands {
     doReturn(mockUpdateName)
         .when(commandLine)
         .newUpdateColumnName(
-            GravitinoCommandLine.DEFAULT_URL,
-            false,
-            "metalake_demo",
-            "catalog",
-            "schema",
-            "users",
-            "name",
-            "renamed");
+            any(CommandContext.class),
+            eq("metalake_demo"),
+            eq("catalog"),
+            eq("schema"),
+            eq("users"),
+            eq("name"),
+            eq("renamed"));
     doReturn(mockUpdateName).when(mockUpdateName).validate();
     commandLine.handleCommandLine();
     verify(mockUpdateName).handle();
@@ -308,14 +309,13 @@ class TestColumnCommands {
     doReturn(mockUpdateDatatype)
         .when(commandLine)
         .newUpdateColumnDatatype(
-            GravitinoCommandLine.DEFAULT_URL,
-            false,
-            "metalake_demo",
-            "catalog",
-            "schema",
-            "users",
-            "name",
-            "varchar(250)");
+            any(CommandContext.class),
+            eq("metalake_demo"),
+            eq("catalog"),
+            eq("schema"),
+            eq("users"),
+            eq("name"),
+            eq("varchar(250)"));
     doReturn(mockUpdateDatatype).when(mockUpdateDatatype).validate();
     commandLine.handleCommandLine();
     verify(mockUpdateDatatype).handle();
@@ -341,14 +341,13 @@ class TestColumnCommands {
     doReturn(mockUpdatePosition)
         .when(commandLine)
         .newUpdateColumnPosition(
-            GravitinoCommandLine.DEFAULT_URL,
-            false,
-            "metalake_demo",
-            "catalog",
-            "schema",
-            "users",
-            "name",
-            "first");
+            any(CommandContext.class),
+            eq("metalake_demo"),
+            eq("catalog"),
+            eq("schema"),
+            eq("users"),
+            eq("name"),
+            eq("first"));
     doReturn(mockUpdatePosition).when(mockUpdatePosition).validate();
     commandLine.handleCommandLine();
     verify(mockUpdatePosition).handle();
@@ -373,14 +372,13 @@ class TestColumnCommands {
     doReturn(mockUpdateNull)
         .when(commandLine)
         .newUpdateColumnNullability(
-            GravitinoCommandLine.DEFAULT_URL,
-            false,
-            "metalake_demo",
-            "catalog",
-            "schema",
-            "users",
-            "name",
-            true);
+            any(CommandContext.class),
+            eq("metalake_demo"),
+            eq("catalog"),
+            eq("schema"),
+            eq("users"),
+            eq("name"),
+            anyBoolean());
     doReturn(mockUpdateNull).when(mockUpdateNull).validate();
     commandLine.handleCommandLine();
     verify(mockUpdateNull).handle();
@@ -405,14 +403,13 @@ class TestColumnCommands {
     doReturn(mockUpdateAuto)
         .when(commandLine)
         .newUpdateColumnAutoIncrement(
-            GravitinoCommandLine.DEFAULT_URL,
-            false,
-            "metalake_demo",
-            "catalog",
-            "schema",
-            "users",
-            "name",
-            true);
+            any(CommandContext.class),
+            eq("metalake_demo"),
+            eq("catalog"),
+            eq("schema"),
+            eq("users"),
+            eq("name"),
+            anyBoolean());
     doReturn(mockUpdateAuto).when(mockUpdateAuto).validate();
     commandLine.handleCommandLine();
     verify(mockUpdateAuto).handle();
@@ -440,15 +437,14 @@ class TestColumnCommands {
     doReturn(mockUpdateDefault)
         .when(commandLine)
         .newUpdateColumnDefault(
-            GravitinoCommandLine.DEFAULT_URL,
-            false,
-            "metalake_demo",
-            "catalog",
-            "schema",
-            "users",
-            "name",
-            "Fred Smith",
-            "varchar(100)");
+            any(CommandContext.class),
+            eq("metalake_demo"),
+            eq("catalog"),
+            eq("schema"),
+            eq("users"),
+            eq("name"),
+            eq("Fred Smith"),
+            eq("varchar(100)"));
     doReturn(mockUpdateDefault).when(mockUpdateDefault).validate();
     commandLine.handleCommandLine();
     verify(mockUpdateDefault).handle();
@@ -457,18 +453,12 @@ class TestColumnCommands {
   @Test
   void testUpdateColumnDefaultWithoutDataType() {
     Main.useExit = false;
+    CommandContext mockContext = mock(CommandContext.class);
+    when(mockContext.url()).thenReturn(GravitinoCommandLine.DEFAULT_URL);
     UpdateColumnDefault spyUpdate =
         spy(
             new UpdateColumnDefault(
-                GravitinoCommandLine.DEFAULT_URL,
-                false,
-                "metalake_demo",
-                "catalog",
-                "schema",
-                "user",
-                "name",
-                "",
-                null));
+                mockContext, "metalake_demo", "catalog", "schema", "user", 
"name", "", null));
 
     assertThrows(RuntimeException.class, spyUpdate::validate);
     verify(spyUpdate, never()).handle();
@@ -491,7 +481,7 @@ class TestColumnCommands {
     assertThrows(RuntimeException.class, commandLine::handleCommandLine);
     verify(commandLine, never())
         .newDeleteColumn(
-            GravitinoCommandLine.DEFAULT_URL, false, "metalake_demo", null, 
null, null, null);
+            any(CommandContext.class), eq("metalake_demo"), isNull(), 
isNull(), isNull(), isNull());
     String output = new String(errContent.toByteArray(), 
StandardCharsets.UTF_8).trim();
     assertEquals(
         output,
@@ -523,7 +513,12 @@ class TestColumnCommands {
     assertThrows(RuntimeException.class, commandLine::handleCommandLine);
     verify(commandLine, never())
         .newDeleteColumn(
-            GravitinoCommandLine.DEFAULT_URL, false, "metalake_demo", 
"catalog", null, null, null);
+            any(CommandContext.class),
+            eq("metalake_demo"),
+            eq("catalog"),
+            isNull(),
+            isNull(),
+            isNull());
     String output = new String(errContent.toByteArray(), 
StandardCharsets.UTF_8).trim();
     assertEquals(
         output,
@@ -552,13 +547,12 @@ class TestColumnCommands {
     assertThrows(RuntimeException.class, commandLine::handleCommandLine);
     verify(commandLine, never())
         .newDeleteColumn(
-            GravitinoCommandLine.DEFAULT_URL,
-            false,
-            "metalake_demo",
-            "catalog",
-            "schema",
-            null,
-            null);
+            any(CommandContext.class),
+            eq("metalake_demo"),
+            eq("catalog"),
+            eq("schema"),
+            isNull(),
+            isNull());
     String output = new String(errContent.toByteArray(), 
StandardCharsets.UTF_8).trim();
     assertEquals(
         output,
@@ -584,13 +578,12 @@ class TestColumnCommands {
     assertThrows(RuntimeException.class, commandLine::handleCommandLine);
     verify(commandLine, never())
         .newDeleteColumn(
-            GravitinoCommandLine.DEFAULT_URL,
-            false,
-            "metalake_demo",
-            "catalog",
-            "schema",
-            "users",
-            null);
+            any(CommandContext.class),
+            eq("metalake_demo"),
+            eq("catalog"),
+            eq("schema"),
+            eq("users"),
+            isNull());
     String output = new String(errContent.toByteArray(), 
StandardCharsets.UTF_8).trim();
     assertEquals(
         output,
@@ -615,7 +608,7 @@ class TestColumnCommands {
     assertThrows(RuntimeException.class, commandLine::handleCommandLine);
     verify(commandLine, never())
         .newListColumns(
-            GravitinoCommandLine.DEFAULT_URL, false, "metalake_demo", 
"catalog", "schema", null);
+            any(CommandContext.class), eq("metalake_demo"), eq("catalog"), 
eq("schema"), isNull());
     String output = new String(errContent.toByteArray(), 
StandardCharsets.UTF_8).trim();
     assertEquals(
         output,
@@ -644,7 +637,7 @@ class TestColumnCommands {
     assertThrows(RuntimeException.class, commandLine::handleCommandLine);
     verify(commandLine, never())
         .newListColumns(
-            GravitinoCommandLine.DEFAULT_URL, false, "metalake_demo", 
"catalog", "schema", null);
+            any(CommandContext.class), eq("metalake_demo"), eq("catalog"), 
eq("schema"), isNull());
     String output = new String(errContent.toByteArray(), 
StandardCharsets.UTF_8).trim();
     assertEquals(
         output,
@@ -670,7 +663,7 @@ class TestColumnCommands {
     assertThrows(RuntimeException.class, commandLine::handleCommandLine);
     verify(commandLine, never())
         .newListColumns(
-            GravitinoCommandLine.DEFAULT_URL, false, "metalake_demo", 
"catalog", "schema", null);
+            any(CommandContext.class), eq("metalake_demo"), eq("catalog"), 
eq("schema"), isNull());
     String output = new String(errContent.toByteArray(), 
StandardCharsets.UTF_8).trim();
     assertEquals(
         output,

Reply via email to