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());
}
}