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 <[email protected]>
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());
   }
 }

Reply via email to