You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@polaris.apache.org by di...@apache.org on 2025/01/31 18:55:01 UTC

(polaris) branch main updated: Make PolarisApiEndpoints respect base URI path prefixes (#918)

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

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


The following commit(s) were added to refs/heads/main by this push:
     new 638c3b77 Make PolarisApiEndpoints respect base URI path prefixes (#918)
638c3b77 is described below

commit 638c3b77c994e38ace5183ed77d131a87d1c0d1e
Author: Andrew Guterman <an...@gmail.com>
AuthorDate: Fri Jan 31 10:54:57 2025 -0800

    Make PolarisApiEndpoints respect base URI path prefixes (#918)
    
    * Make PolarisApiEndpoints respect base URI path prefixes
---
 .../service/it/env/PolarisApiEndpoints.java        |  4 +--
 .../service/it/env/PolarisApiEndpointsTest.java}   | 42 +++++++---------------
 2 files changed, 15 insertions(+), 31 deletions(-)

diff --git a/integration-tests/src/main/java/org/apache/polaris/service/it/env/PolarisApiEndpoints.java b/integration-tests/src/main/java/org/apache/polaris/service/it/env/PolarisApiEndpoints.java
index ff4b1748..392b21f2 100644
--- a/integration-tests/src/main/java/org/apache/polaris/service/it/env/PolarisApiEndpoints.java
+++ b/integration-tests/src/main/java/org/apache/polaris/service/it/env/PolarisApiEndpoints.java
@@ -39,11 +39,11 @@ public final class PolarisApiEndpoints implements Serializable {
   }
 
   public URI catalogApiEndpoint() {
-    return baseUri.resolve("api/catalog");
+    return baseUri.resolve(baseUri.getRawPath() + "/api/catalog").normalize();
   }
 
   public URI managementApiEndpoint() {
-    return baseUri.resolve("api/management");
+    return baseUri.resolve(baseUri.getRawPath() + "/api/management").normalize();
   }
 
   public String realm() {
diff --git a/integration-tests/src/main/java/org/apache/polaris/service/it/env/PolarisApiEndpoints.java b/integration-tests/src/test/java/org/apache/polaris/service/it/env/PolarisApiEndpointsTest.java
similarity index 53%
copy from integration-tests/src/main/java/org/apache/polaris/service/it/env/PolarisApiEndpoints.java
copy to integration-tests/src/test/java/org/apache/polaris/service/it/env/PolarisApiEndpointsTest.java
index ff4b1748..32877e58 100644
--- a/integration-tests/src/main/java/org/apache/polaris/service/it/env/PolarisApiEndpoints.java
+++ b/integration-tests/src/test/java/org/apache/polaris/service/it/env/PolarisApiEndpointsTest.java
@@ -18,35 +18,19 @@
  */
 package org.apache.polaris.service.it.env;
 
-import java.io.Serializable;
 import java.net.URI;
-
-/**
- * This class contains the most fundamental information for accessing Polaris APIs, such as the base
- * URI and realm ID and provides methods for obtaining Icenberg REST API and Polaris Management
- * endpoints.
- */
-public final class PolarisApiEndpoints implements Serializable {
-
-  public static String REALM_HEADER = "realm";
-
-  private final URI baseUri;
-  private final String realm;
-
-  public PolarisApiEndpoints(URI baseUri, String realm) {
-    this.baseUri = baseUri;
-    this.realm = realm;
-  }
-
-  public URI catalogApiEndpoint() {
-    return baseUri.resolve("api/catalog");
-  }
-
-  public URI managementApiEndpoint() {
-    return baseUri.resolve("api/management");
-  }
-
-  public String realm() {
-    return realm;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+
+/** Unit tests for PolarisApiEndpoints */
+public class PolarisApiEndpointsTest {
+  @Test
+  void testEndpointRespectsPathPrefix() {
+    PolarisApiEndpoints endpoints =
+        new PolarisApiEndpoints(URI.create("http://myserver.com/polaris"), "");
+    Assertions.assertEquals(
+        "http://myserver.com/polaris/api/catalog", endpoints.catalogApiEndpoint().toString());
+    Assertions.assertEquals(
+        "http://myserver.com/polaris/api/management", endpoints.managementApiEndpoint().toString());
   }
 }