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

adutra 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 ddb8025d Cleanup test profile and make it converge with prod profile 
(#786)
ddb8025d is described below

commit ddb8025d969cc9c7f53a2171f88e516d4735a205
Author: Alexandre Dutra <[email protected]>
AuthorDate: Fri Jan 24 10:30:20 2025 +0100

    Cleanup test profile and make it converge with prod profile (#786)
    
    This PR cleans up the test profile and makes it converge with the prod 
profile, which is better as by default, tests are testing the real-life 
application.
    
    If tests need to customize the configuration, this is now done on a 
per-test basis with `QuarkusTestProfile`.
---
 integration-tests/README.md                        |  6 ++++
 .../it/test/PolarisApplicationIntegrationTest.java | 12 +++++++
 .../PolarisManagementServiceIntegrationTest.java   | 11 ++++++
 .../it/test/PolarisRestCatalogIntegrationTest.java |  6 ++++
 .../PolarisRestCatalogViewIntegrationBase.java     |  4 +++
 .../it/test/PolarisSparkIntegrationTest.java       | 10 ++++++
 .../src/main/resources/application-it.properties   | 42 ++++++++++++++++++++++
 .../src/main/resources/application-test.properties | 24 +++++++++++++
 .../src/main/resources/application.properties      | 35 ++----------------
 quarkus/service/build.gradle.kts                   |  3 ++
 .../polaris/service/quarkus/it/QuarkusSparkIT.java |  3 ++
 .../quarkus/TimedApplicationEventListenerTest.java |  3 +-
 .../quarkus/admin/PolarisAuthzTestBase.java        |  4 +--
 .../quarkus/catalog/BasePolarisCatalogTest.java    | 18 ++++++++++
 .../catalog/BasePolarisCatalogViewTest.java        | 23 ++++++++++++
 .../PolarisCatalogHandlerWrapperAuthzTest.java     |  6 +++-
 .../it/QuarkusApplicationIntegrationTest.java      | 14 ++++++++
 .../QuarkusManagementServiceIntegrationTest.java   | 23 +++++++++++-
 .../it/QuarkusRestCatalogIntegrationTest.java      | 16 ++++++++-
 .../QuarkusRestCatalogViewAwsIntegrationTest.java  | 12 +++++++
 ...QuarkusRestCatalogViewAzureIntegrationTest.java | 11 ++++++
 .../QuarkusRestCatalogViewFileIntegrationTest.java | 10 ++++++
 .../QuarkusRestCatalogViewGcpIntegrationTest.java  | 10 ++++++
 .../quarkus/ratelimiter/RateLimiterFilterTest.java |  4 ++-
 24 files changed, 270 insertions(+), 40 deletions(-)

diff --git a/integration-tests/README.md b/integration-tests/README.md
new file mode 100644
index 00000000..9f803ebd
--- /dev/null
+++ b/integration-tests/README.md
@@ -0,0 +1,6 @@
+# Polaris Integration Tests
+
+## Overview
+
+This module contains integration tests for Polaris. These tests are designed 
as black box tests
+that can be run against a local or remote Polaris instance.
diff --git 
a/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisApplicationIntegrationTest.java
 
b/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisApplicationIntegrationTest.java
index 99c2744f..894926fa 100644
--- 
a/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisApplicationIntegrationTest.java
+++ 
b/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisApplicationIntegrationTest.java
@@ -86,6 +86,18 @@ import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.TestInfo;
 import org.junit.jupiter.api.extension.ExtendWith;
 
+/**
+ * @implSpec This test expects the server to be configured with the following 
features configured:
+ *     <ul>
+ *       <li>{@link 
org.apache.polaris.core.PolarisConfiguration#ALLOW_OVERLAPPING_CATALOG_URLS}:
+ *           {@code true}
+ *       <li>{@link
+ *           
org.apache.polaris.core.PolarisConfiguration#SKIP_CREDENTIAL_SUBSCOPING_INDIRECTION}:
+ *           {@code true}
+ *     </ul>
+ *     The server must also be configured to reject request body sizes larger 
than 1MB (1000000
+ *     bytes).
+ */
 @ExtendWith(PolarisIntegrationTestExtension.class)
 public class PolarisApplicationIntegrationTest {
 
diff --git 
a/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisManagementServiceIntegrationTest.java
 
b/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisManagementServiceIntegrationTest.java
index 523fc940..e830a18a 100644
--- 
a/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisManagementServiceIntegrationTest.java
+++ 
b/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisManagementServiceIntegrationTest.java
@@ -86,6 +86,17 @@ import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.testcontainers.shaded.org.awaitility.Awaitility;
 
+/**
+ * @implSpec @implSpec This test expects the server to be configured with the 
following features
+ *     configured:
+ *     <ul>
+ *       <li>{@link 
org.apache.polaris.core.PolarisConfiguration#ALLOW_OVERLAPPING_CATALOG_URLS}:
+ *           {@code true}
+ *       <li>{@link
+ *           
org.apache.polaris.core.PolarisConfiguration#ENFORCE_PRINCIPAL_CREDENTIAL_ROTATION_REQUIRED_CHECKING}:
+ *           {@code true}
+ *     </ul>
+ */
 @ExtendWith(PolarisIntegrationTestExtension.class)
 public class PolarisManagementServiceIntegrationTest {
   private static final int MAX_IDENTIFIER_LENGTH = 256;
diff --git 
a/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogIntegrationTest.java
 
b/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogIntegrationTest.java
index 87b63acc..bc774c1c 100644
--- 
a/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogIntegrationTest.java
+++ 
b/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogIntegrationTest.java
@@ -96,6 +96,12 @@ import org.junit.jupiter.api.extension.ExtendWith;
 /**
  * Import the full core Iceberg catalog tests by hitting the REST service via 
the RESTCatalog
  * client.
+ *
+ * @implSpec @implSpec This test expects the server to be configured with the 
following features
+ *     configured:
+ *     <ul>
+ *       <li>{@link 
PolarisConfiguration#ALLOW_EXTERNAL_CATALOG_CREDENTIAL_VENDING}: {@code false}
+ *     </ul>
  */
 @ExtendWith(PolarisIntegrationTestExtension.class)
 public class PolarisRestCatalogIntegrationTest extends 
CatalogTests<RESTCatalog> {
diff --git 
a/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogViewIntegrationBase.java
 
b/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogViewIntegrationBase.java
index 34074bba..1fb24f5f 100644
--- 
a/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogViewIntegrationBase.java
+++ 
b/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogViewIntegrationBase.java
@@ -48,6 +48,10 @@ import org.junit.jupiter.api.extension.ExtendWith;
 /**
  * Import the full core Iceberg catalog tests by hitting the REST service via 
the RESTCatalog
  * client.
+ *
+ * @implSpec This test expects the server to be configured with {@link
+ *     
org.apache.polaris.core.PolarisConfiguration#SUPPORTED_CATALOG_STORAGE_TYPES} 
set to the
+ *     appropriate storage type.
  */
 @ExtendWith(PolarisIntegrationTestExtension.class)
 public abstract class PolarisRestCatalogViewIntegrationBase extends 
ViewCatalogTests<RESTCatalog> {
diff --git 
a/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisSparkIntegrationTest.java
 
b/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisSparkIntegrationTest.java
index 2a76f118..325982cf 100644
--- 
a/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisSparkIntegrationTest.java
+++ 
b/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisSparkIntegrationTest.java
@@ -58,6 +58,16 @@ import org.junit.jupiter.api.extension.ExtendWith;
 import org.junit.jupiter.api.io.TempDir;
 import org.slf4j.LoggerFactory;
 
+/**
+ * @implSpec This test expects the server to be configured with the following 
features enabled:
+ *     <ul>
+ *       <li>{@link
+ *           
org.apache.polaris.core.PolarisConfiguration#SKIP_CREDENTIAL_SUBSCOPING_INDIRECTION}:
+ *           {@code true}
+ *       <li>{@link 
org.apache.polaris.core.PolarisConfiguration#ALLOW_OVERLAPPING_CATALOG_URLS}:
+ *           {@code true}
+ *     </ul>
+ */
 @ExtendWith(PolarisIntegrationTestExtension.class)
 public class PolarisSparkIntegrationTest {
 
diff --git a/quarkus/defaults/src/main/resources/application-it.properties 
b/quarkus/defaults/src/main/resources/application-it.properties
new file mode 100644
index 00000000..2a19f7d1
--- /dev/null
+++ b/quarkus/defaults/src/main/resources/application-it.properties
@@ -0,0 +1,42 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+# Configuration common to ALL integration tests (executed with "it" profile).
+# Note: Quarkus integration tests cannot use QuarkusTestProfile
+
+quarkus.http.limits.max-body-size=1000000
+quarkus.http.port=0
+
+quarkus.management.port=0
+
+polaris.persistence.type=in-memory
+
+polaris.features.defaults."ALLOW_EXTERNAL_CATALOG_CREDENTIAL_VENDING"=false
+polaris.features.defaults."ALLOW_EXTERNAL_METADATA_FILE_LOCATION"=false
+polaris.features.defaults."ALLOW_OVERLAPPING_CATALOG_URLS"=true
+polaris.features.defaults."ALLOW_SPECIFYING_FILE_IO_IMPL"=true
+polaris.features.defaults."ALLOW_WILDCARD_LOCATION"=true
+polaris.features.defaults."ENFORCE_PRINCIPAL_CREDENTIAL_ROTATION_REQUIRED_CHECKING"=true
+polaris.features.defaults."INITIALIZE_DEFAULT_CATALOG_FILEIO_FOR_it"=true
+polaris.features.defaults."SKIP_CREDENTIAL_SUBSCOPING_INDIRECTION"=true
+polaris.features.defaults."SUPPORTED_CATALOG_STORAGE_TYPES"=["FILE","S3","GCS","AZURE"]
+
+polaris.storage.gcp.token=token
+polaris.storage.gcp.lifespan=PT1H
+
diff --git a/quarkus/defaults/src/main/resources/application-test.properties 
b/quarkus/defaults/src/main/resources/application-test.properties
new file mode 100644
index 00000000..f8b7c722
--- /dev/null
+++ b/quarkus/defaults/src/main/resources/application-test.properties
@@ -0,0 +1,24 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+# Configuration common to ALL unit tests (executed with "test" profile).
+# Per-test specific configuration should use QuarkusTestProfile
+
+quarkus.log.file.enable=false
+quarkus.otel.sdk.disabled=true
diff --git a/quarkus/defaults/src/main/resources/application.properties 
b/quarkus/defaults/src/main/resources/application.properties
index cdb20190..5c7afdf9 100644
--- a/quarkus/defaults/src/main/resources/application.properties
+++ b/quarkus/defaults/src/main/resources/application.properties
@@ -72,10 +72,10 @@ quarkus.otel.sdk.disabled=false
 # quarkus.otel.traces.sampler=parentbased_always_on
 # quarkus.otel.traces.sampler.arg=1.0d
 
-quarkus.test.integration-test-profile=test
+quarkus.test.integration-test-profile=it
 
 polaris.realm-context.type=default
-polaris.realm-context.realms=realm1,realm2,realm3
+polaris.realm-context.realms=POLARIS
 polaris.realm-context.header-name=Polaris-Realm
 
 
polaris.features.defaults."ENFORCE_PRINCIPAL_CREDENTIAL_ROTATION_REQUIRED_CHECKING"=false
@@ -119,34 +119,3 @@ 
polaris.authentication.token-broker.max-token-generation=PT1H
 # polaris.storage.aws.secret-key=secretKey
 # polaris.storage.gcp.token=token
 # polaris.storage.gcp.lifespan=PT1H
-
-%test.quarkus.log.file.enable=false
-%test.quarkus.log.category."org.apache.polaris".level=INFO
-%test.quarkus.log.category."org.apache.iceberg.rest".level=INFO
-%test.quarkus.log.category."org.apache.iceberg.rest.RESTSessionCatalog".level=ERROR
-%test.quarkus.log.category."org.apache.polaris.core.persistence.PolarisMetaStoreManagerImpl".level=ERROR
-%test.quarkus.log.category."org.apache.polaris.service.context.DefaultRealmContextResolver".level=ERROR
-%test.quarkus.log.category."org.apache.polaris.service.catalog.PolarisCatalogHandlerWrapper".level=ERROR
-%test.quarkus.log.category."org.apache.polaris.service.storage.PolarisStorageIntegrationProviderImpl".level=ERROR
-%test.quarkus.http.limits.max-body-size=1000000
-%test.quarkus.otel.sdk.disabled=true
-%test.polaris.authentication.token-broker.type=symmetric-key
-%test.polaris.authentication.token-broker.symmetric-key.secret=polaris
-%test.polaris.features.defaults."ALLOW_EXTERNAL_CATALOG_CREDENTIAL_VENDING"=false
-%test.polaris.features.defaults."ALLOW_EXTERNAL_METADATA_FILE_LOCATION"=false
-%test.polaris.features.defaults."ALLOW_OVERLAPPING_CATALOG_URLS"=true
-%test.polaris.features.defaults."ALLOW_SPECIFYING_FILE_IO_IMPL"=true
-%test.polaris.features.defaults."ALLOW_WILDCARD_LOCATION"=true
-%test.polaris.features.defaults."ENFORCE_PRINCIPAL_CREDENTIAL_ROTATION_REQUIRED_CHECKING"=true
-%test.polaris.features.defaults."INITIALIZE_DEFAULT_CATALOG_FILEIO_FOR_TEST"=true
-%test.polaris.features.defaults."SKIP_CREDENTIAL_SUBSCOPING_INDIRECTION"=true
-%test.polaris.features.defaults."SUPPORTED_CATALOG_STORAGE_TYPES"=["FILE","S3","GCS","AZURE"]
-%test.polaris.realm-context.realms=POLARIS
-%test.polaris.realm-context.type=test
-%test.polaris.storage.aws.access-key=accessKey
-%test.polaris.storage.aws.secret-key=secretKey
-%test.polaris.storage.gcp.token=token
-%test.polaris.storage.gcp.lifespan=PT1H
-# Need to allow a java security manager after Java 21, for Subject.getSubject 
to work
-# "getSubject is supported only if a security manager is allowed".
-%test.quarkus.test.argLine=-Djava.security.manager=allow
diff --git a/quarkus/service/build.gradle.kts b/quarkus/service/build.gradle.kts
index 0571b653..3378d3c2 100644
--- a/quarkus/service/build.gradle.kts
+++ b/quarkus/service/build.gradle.kts
@@ -162,6 +162,9 @@ tasks.named<Test>("test").configure { maxParallelForks = 4 }
 
 tasks.named<Test>("intTest").configure {
   maxParallelForks = 1
+  // Same issue as above: allow a java security manager after Java 21
+  // (this setting is for the application under test, while the setting above 
is for test code).
+  systemProperty("quarkus.test.arg-line", "-Djava.security.manager=allow")
   val logsDir = project.layout.buildDirectory.get().asFile.resolve("logs")
   // delete files from previous runs
   doFirst {
diff --git 
a/quarkus/service/src/intTest/java/org/apache/polaris/service/quarkus/it/QuarkusSparkIT.java
 
b/quarkus/service/src/intTest/java/org/apache/polaris/service/quarkus/it/QuarkusSparkIT.java
index 0c5ce7c8..052eebf5 100644
--- 
a/quarkus/service/src/intTest/java/org/apache/polaris/service/quarkus/it/QuarkusSparkIT.java
+++ 
b/quarkus/service/src/intTest/java/org/apache/polaris/service/quarkus/it/QuarkusSparkIT.java
@@ -19,6 +19,9 @@
 package org.apache.polaris.service.quarkus.it;
 
 import io.quarkus.test.junit.QuarkusIntegrationTest;
+import io.quarkus.test.junit.QuarkusTestProfile;
+import io.quarkus.test.junit.TestProfile;
+import java.util.Map;
 import org.apache.polaris.service.it.test.PolarisSparkIntegrationTest;
 
 @QuarkusIntegrationTest
diff --git 
a/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/TimedApplicationEventListenerTest.java
 
b/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/TimedApplicationEventListenerTest.java
index ac6b833d..36e84ac1 100644
--- 
a/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/TimedApplicationEventListenerTest.java
+++ 
b/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/TimedApplicationEventListenerTest.java
@@ -56,7 +56,8 @@ public class TimedApplicationEventListenerTest {
 
     @Override
     public Map<String, String> getConfigOverrides() {
-      return Map.of("polaris.metrics.tags.environment", "prod");
+      return Map.of(
+          "polaris.metrics.tags.environment", "prod", 
"polaris.realm-context.type", "test");
     }
   }
 
diff --git 
a/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/admin/PolarisAuthzTestBase.java
 
b/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/admin/PolarisAuthzTestBase.java
index 30f93dce..485f4634 100644
--- 
a/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/admin/PolarisAuthzTestBase.java
+++ 
b/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/admin/PolarisAuthzTestBase.java
@@ -87,9 +87,9 @@ public abstract class PolarisAuthzTestBase {
     @Override
     public Map<String, String> getConfigOverrides() {
       return Map.of(
-          "polaris.config.defaults.ALLOW_SPECIFYING_FILE_IO_IMPL",
+          "polaris.features.defaults.\"ALLOW_SPECIFYING_FILE_IO_IMPL\"",
           "true",
-          "polaris.config.defaults.ALLOW_EXTERNAL_METADATA_FILE_LOCATION",
+          
"polaris.features.defaults.\"ALLOW_EXTERNAL_METADATA_FILE_LOCATION\"",
           "true");
     }
   }
diff --git 
a/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/catalog/BasePolarisCatalogTest.java
 
b/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/catalog/BasePolarisCatalogTest.java
index 972dfdbf..38580b9a 100644
--- 
a/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/catalog/BasePolarisCatalogTest.java
+++ 
b/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/catalog/BasePolarisCatalogTest.java
@@ -31,6 +31,8 @@ import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Iterators;
 import io.quarkus.test.junit.QuarkusMock;
 import io.quarkus.test.junit.QuarkusTest;
+import io.quarkus.test.junit.QuarkusTestProfile;
+import io.quarkus.test.junit.TestProfile;
 import jakarta.inject.Inject;
 import jakarta.ws.rs.core.SecurityContext;
 import java.io.IOException;
@@ -120,7 +122,23 @@ import 
software.amazon.awssdk.services.sts.model.AssumeRoleResponse;
 import software.amazon.awssdk.services.sts.model.Credentials;
 
 @QuarkusTest
+@TestProfile(BasePolarisCatalogTest.Profile.class)
 public class BasePolarisCatalogTest extends CatalogTests<BasePolarisCatalog> {
+
+  public static class Profile implements QuarkusTestProfile {
+
+    @Override
+    public Map<String, String> getConfigOverrides() {
+      return Map.of(
+          "polaris.features.defaults.\"ALLOW_SPECIFYING_FILE_IO_IMPL\"",
+          "true",
+          
"polaris.features.defaults.\"INITIALIZE_DEFAULT_CATALOG_FILEIO_FOR_TEST\"",
+          "true",
+          "polaris.features.defaults.\"SUPPORTED_CATALOG_STORAGE_TYPES\"",
+          "[\"FILE\"]");
+    }
+  }
+
   protected static final Namespace NS = Namespace.of("newdb");
   protected static final TableIdentifier TABLE = TableIdentifier.of(NS, 
"table");
   protected static final Schema SCHEMA =
diff --git 
a/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/catalog/BasePolarisCatalogViewTest.java
 
b/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/catalog/BasePolarisCatalogViewTest.java
index f634bfd1..b6bbefef 100644
--- 
a/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/catalog/BasePolarisCatalogViewTest.java
+++ 
b/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/catalog/BasePolarisCatalogViewTest.java
@@ -23,6 +23,8 @@ import static org.mockito.Mockito.when;
 import com.google.common.collect.ImmutableMap;
 import io.quarkus.test.junit.QuarkusMock;
 import io.quarkus.test.junit.QuarkusTest;
+import io.quarkus.test.junit.QuarkusTestProfile;
+import io.quarkus.test.junit.TestProfile;
 import jakarta.inject.Inject;
 import jakarta.ws.rs.core.SecurityContext;
 import java.io.IOException;
@@ -30,6 +32,7 @@ import java.lang.reflect.Field;
 import java.lang.reflect.Method;
 import java.nio.file.Path;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 import org.apache.iceberg.CatalogProperties;
 import org.apache.iceberg.catalog.Catalog;
@@ -64,7 +67,27 @@ import org.junit.jupiter.api.io.TempDir;
 import org.mockito.Mockito;
 
 @QuarkusTest
+@TestProfile(BasePolarisCatalogViewTest.Profile.class)
 public class BasePolarisCatalogViewTest extends 
ViewCatalogTests<BasePolarisCatalog> {
+
+  public static class Profile implements QuarkusTestProfile {
+
+    @Override
+    public Map<String, String> getConfigOverrides() {
+      return Map.of(
+          "polaris.features.defaults.\"ALLOW_WILDCARD_LOCATION\"",
+          "true",
+          
"polaris.features.defaults.\"SKIP_CREDENTIAL_SUBSCOPING_INDIRECTION\"",
+          "true",
+          "polaris.features.defaults.\"ALLOW_SPECIFYING_FILE_IO_IMPL\"",
+          "true",
+          
"polaris.features.defaults.\"INITIALIZE_DEFAULT_CATALOG_FILEIO_FOR_TEST\"",
+          "true",
+          "polaris.features.defaults.\"SUPPORTED_CATALOG_STORAGE_TYPES\"",
+          "[\"FILE\"]");
+    }
+  }
+
   public static final String CATALOG_NAME = "polaris-catalog";
 
   @Inject MetaStoreManagerFactory managerFactory;
diff --git 
a/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/catalog/PolarisCatalogHandlerWrapperAuthzTest.java
 
b/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/catalog/PolarisCatalogHandlerWrapperAuthzTest.java
index 0696e931..5f6b0dec 100644
--- 
a/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/catalog/PolarisCatalogHandlerWrapperAuthzTest.java
+++ 
b/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/catalog/PolarisCatalogHandlerWrapperAuthzTest.java
@@ -75,7 +75,11 @@ public class PolarisCatalogHandlerWrapperAuthzTest extends 
PolarisAuthzTestBase
 
     @Override
     public Map<String, String> getConfigOverrides() {
-      return 
Map.of("polaris.features.defaults.\"ALLOW_EXTERNAL_METADATA_FILE_LOCATION\"", 
"true");
+      return Map.of(
+          "polaris.features.defaults.\"ALLOW_SPECIFYING_FILE_IO_IMPL\"",
+          "true",
+          
"polaris.features.defaults.\"ALLOW_EXTERNAL_METADATA_FILE_LOCATION\"",
+          "true");
     }
   }
 
diff --git 
a/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/it/QuarkusApplicationIntegrationTest.java
 
b/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/it/QuarkusApplicationIntegrationTest.java
index 4c07adb4..56f67fd9 100644
--- 
a/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/it/QuarkusApplicationIntegrationTest.java
+++ 
b/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/it/QuarkusApplicationIntegrationTest.java
@@ -24,6 +24,8 @@ import static org.assertj.core.api.Assertions.assertThat;
 import com.auth0.jwt.JWT;
 import com.auth0.jwt.algorithms.Algorithm;
 import io.quarkus.test.junit.QuarkusTest;
+import io.quarkus.test.junit.QuarkusTestProfile;
+import io.quarkus.test.junit.TestProfile;
 import java.io.IOException;
 import java.time.Instant;
 import java.util.Map;
@@ -37,8 +39,20 @@ import 
org.apache.polaris.service.it.test.PolarisApplicationIntegrationTest;
 import org.junit.jupiter.api.Test;
 
 @QuarkusTest
+@TestProfile(QuarkusApplicationIntegrationTest.Profile.class)
 public class QuarkusApplicationIntegrationTest extends 
PolarisApplicationIntegrationTest {
 
+  public static class Profile implements QuarkusTestProfile {
+
+    @Override
+    public Map<String, String> getConfigOverrides() {
+      return Map.of(
+          "quarkus.http.limits.max-body-size", "1000000",
+          "polaris.features.defaults.\"ALLOW_OVERLAPPING_CATALOG_URLS\"", 
"true",
+          
"polaris.features.defaults.\"SKIP_CREDENTIAL_SUBSCOPING_INDIRECTION\"", "true");
+    }
+  }
+
   @Test
   public void testIcebergRestApiRefreshToken(
       PolarisApiEndpoints endpoints, ClientCredentials clientCredentials) 
throws IOException {
diff --git 
a/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/it/QuarkusManagementServiceIntegrationTest.java
 
b/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/it/QuarkusManagementServiceIntegrationTest.java
index 3a2bd737..33735636 100644
--- 
a/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/it/QuarkusManagementServiceIntegrationTest.java
+++ 
b/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/it/QuarkusManagementServiceIntegrationTest.java
@@ -19,8 +19,29 @@
 package org.apache.polaris.service.quarkus.it;
 
 import io.quarkus.test.junit.QuarkusTest;
+import io.quarkus.test.junit.QuarkusTestProfile;
+import io.quarkus.test.junit.TestProfile;
+import java.util.Map;
 import 
org.apache.polaris.service.it.test.PolarisManagementServiceIntegrationTest;
 
 @QuarkusTest
+@TestProfile(QuarkusManagementServiceIntegrationTest.Profile.class)
 public class QuarkusManagementServiceIntegrationTest
-    extends PolarisManagementServiceIntegrationTest {}
+    extends PolarisManagementServiceIntegrationTest {
+
+  public static class Profile implements QuarkusTestProfile {
+
+    @Override
+    public Map<String, String> getConfigOverrides() {
+      return Map.of(
+          "polaris.features.defaults.\"ALLOW_OVERLAPPING_CATALOG_URLS\"",
+          "true",
+          
"polaris.features.defaults.\"ENFORCE_PRINCIPAL_CREDENTIAL_ROTATION_REQUIRED_CHECKING\"",
+          "true",
+          "polaris.storage.gcp.token",
+          "token",
+          "polaris.storage.gcp.lifespan",
+          "PT1H");
+    }
+  }
+}
diff --git 
a/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/it/QuarkusRestCatalogIntegrationTest.java
 
b/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/it/QuarkusRestCatalogIntegrationTest.java
index 15518c7b..11dd821e 100644
--- 
a/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/it/QuarkusRestCatalogIntegrationTest.java
+++ 
b/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/it/QuarkusRestCatalogIntegrationTest.java
@@ -19,7 +19,21 @@
 package org.apache.polaris.service.quarkus.it;
 
 import io.quarkus.test.junit.QuarkusTest;
+import io.quarkus.test.junit.QuarkusTestProfile;
+import io.quarkus.test.junit.TestProfile;
+import java.util.Map;
 import org.apache.polaris.service.it.test.PolarisRestCatalogIntegrationTest;
 
 @QuarkusTest
-public class QuarkusRestCatalogIntegrationTest extends 
PolarisRestCatalogIntegrationTest {}
+@TestProfile(QuarkusRestCatalogIntegrationTest.Profile.class)
+public class QuarkusRestCatalogIntegrationTest extends 
PolarisRestCatalogIntegrationTest {
+
+  public static class Profile implements QuarkusTestProfile {
+
+    @Override
+    public Map<String, String> getConfigOverrides() {
+      return Map.of(
+          
"polaris.features.defaults.\"ALLOW_EXTERNAL_CATALOG_CREDENTIAL_VENDING\"", 
"false");
+    }
+  }
+}
diff --git 
a/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/it/QuarkusRestCatalogViewAwsIntegrationTest.java
 
b/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/it/QuarkusRestCatalogViewAwsIntegrationTest.java
index d2bcd6c9..b86c313a 100644
--- 
a/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/it/QuarkusRestCatalogViewAwsIntegrationTest.java
+++ 
b/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/it/QuarkusRestCatalogViewAwsIntegrationTest.java
@@ -19,17 +19,29 @@
 package org.apache.polaris.service.quarkus.it;
 
 import io.quarkus.test.junit.QuarkusTest;
+import io.quarkus.test.junit.QuarkusTestProfile;
+import io.quarkus.test.junit.TestProfile;
 import java.lang.reflect.Field;
 import java.nio.file.Path;
+import java.util.Map;
 import org.apache.iceberg.view.ViewCatalogTests;
 import 
org.apache.polaris.service.it.test.PolarisRestCatalogViewAwsIntegrationTest;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.io.TempDir;
 
 @QuarkusTest
+@TestProfile(QuarkusRestCatalogViewAwsIntegrationTest.Profile.class)
 public class QuarkusRestCatalogViewAwsIntegrationTest
     extends PolarisRestCatalogViewAwsIntegrationTest {
 
+  public static class Profile implements QuarkusTestProfile {
+
+    @Override
+    public Map<String, String> getConfigOverrides() {
+      return 
Map.of("polaris.features.defaults.\"SUPPORTED_CATALOG_STORAGE_TYPES\"", 
"[\"S3\"]");
+    }
+  }
+
   @BeforeEach
   public void setUpTempDir(@TempDir Path tempDir) throws Exception {
     // see https://github.com/quarkusio/quarkus/issues/13261
diff --git 
a/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/it/QuarkusRestCatalogViewAzureIntegrationTest.java
 
b/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/it/QuarkusRestCatalogViewAzureIntegrationTest.java
index add4dbe8..8cc89b9c 100644
--- 
a/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/it/QuarkusRestCatalogViewAzureIntegrationTest.java
+++ 
b/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/it/QuarkusRestCatalogViewAzureIntegrationTest.java
@@ -19,16 +19,27 @@
 package org.apache.polaris.service.quarkus.it;
 
 import io.quarkus.test.junit.QuarkusTest;
+import io.quarkus.test.junit.QuarkusTestProfile;
+import io.quarkus.test.junit.TestProfile;
 import java.lang.reflect.Field;
 import java.nio.file.Path;
+import java.util.Map;
 import org.apache.iceberg.view.ViewCatalogTests;
 import 
org.apache.polaris.service.it.test.PolarisRestCatalogViewAzureIntegrationTest;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.io.TempDir;
 
 @QuarkusTest
+@TestProfile(QuarkusRestCatalogViewAzureIntegrationTest.Profile.class)
 public class QuarkusRestCatalogViewAzureIntegrationTest
     extends PolarisRestCatalogViewAzureIntegrationTest {
+  public static class Profile implements QuarkusTestProfile {
+
+    @Override
+    public Map<String, String> getConfigOverrides() {
+      return 
Map.of("polaris.features.defaults.\"SUPPORTED_CATALOG_STORAGE_TYPES\"", 
"[\"AZURE\"]");
+    }
+  }
 
   @BeforeEach
   public void setUpTempDir(@TempDir Path tempDir) throws Exception {
diff --git 
a/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/it/QuarkusRestCatalogViewFileIntegrationTest.java
 
b/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/it/QuarkusRestCatalogViewFileIntegrationTest.java
index d487e75b..4444bcbe 100644
--- 
a/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/it/QuarkusRestCatalogViewFileIntegrationTest.java
+++ 
b/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/it/QuarkusRestCatalogViewFileIntegrationTest.java
@@ -19,8 +19,10 @@
 package org.apache.polaris.service.quarkus.it;
 
 import io.quarkus.test.junit.QuarkusTest;
+import io.quarkus.test.junit.QuarkusTestProfile;
 import java.lang.reflect.Field;
 import java.nio.file.Path;
+import java.util.Map;
 import org.apache.iceberg.view.ViewCatalogTests;
 import 
org.apache.polaris.service.it.test.PolarisRestCatalogViewFileIntegrationTest;
 import org.junit.jupiter.api.BeforeEach;
@@ -30,6 +32,14 @@ import org.junit.jupiter.api.io.TempDir;
 public class QuarkusRestCatalogViewFileIntegrationTest
     extends PolarisRestCatalogViewFileIntegrationTest {
 
+  public static class Profile implements QuarkusTestProfile {
+
+    @Override
+    public Map<String, String> getConfigOverrides() {
+      return 
Map.of("polaris.features.defaults.\"SUPPORTED_CATALOG_STORAGE_TYPES\"", 
"[\"FILE\"]");
+    }
+  }
+
   @BeforeEach
   public void setUpTempDir(@TempDir Path tempDir) throws Exception {
     // see https://github.com/quarkusio/quarkus/issues/13261
diff --git 
a/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/it/QuarkusRestCatalogViewGcpIntegrationTest.java
 
b/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/it/QuarkusRestCatalogViewGcpIntegrationTest.java
index f778e068..75168043 100644
--- 
a/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/it/QuarkusRestCatalogViewGcpIntegrationTest.java
+++ 
b/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/it/QuarkusRestCatalogViewGcpIntegrationTest.java
@@ -19,8 +19,10 @@
 package org.apache.polaris.service.quarkus.it;
 
 import io.quarkus.test.junit.QuarkusTest;
+import io.quarkus.test.junit.QuarkusTestProfile;
 import java.lang.reflect.Field;
 import java.nio.file.Path;
+import java.util.Map;
 import org.apache.iceberg.view.ViewCatalogTests;
 import 
org.apache.polaris.service.it.test.PolarisRestCatalogViewGcpIntegrationTest;
 import org.junit.jupiter.api.BeforeEach;
@@ -30,6 +32,14 @@ import org.junit.jupiter.api.io.TempDir;
 public class QuarkusRestCatalogViewGcpIntegrationTest
     extends PolarisRestCatalogViewGcpIntegrationTest {
 
+  public static class Profile implements QuarkusTestProfile {
+
+    @Override
+    public Map<String, String> getConfigOverrides() {
+      return 
Map.of("polaris.features.defaults.\"SUPPORTED_CATALOG_STORAGE_TYPES\"", 
"[\"GCS\"]");
+    }
+  }
+
   @BeforeEach
   public void setUpTempDir(@TempDir Path tempDir) throws Exception {
     // see https://github.com/quarkusio/quarkus/issues/13261
diff --git 
a/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/ratelimiter/RateLimiterFilterTest.java
 
b/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/ratelimiter/RateLimiterFilterTest.java
index 43edccba..3cd95bf1 100644
--- 
a/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/ratelimiter/RateLimiterFilterTest.java
+++ 
b/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/ratelimiter/RateLimiterFilterTest.java
@@ -75,7 +75,9 @@ public class RateLimiterFilterTest {
           "polaris.rate-limiter.token-bucket.window",
           WINDOW.toString(),
           "polaris.metrics.tags.environment",
-          "prod");
+          "prod",
+          "polaris.realm-context.type",
+          "test");
     }
   }
 

Reply via email to