diff --git a/bom/build.gradle.kts b/bom/build.gradle.kts index 213f31ed76..3963bcece3 100644 --- a/bom/build.gradle.kts +++ b/bom/build.gradle.kts @@ -90,7 +90,6 @@ dependencies { api(project(":polaris-extensions-auth-opa")) api(project(":polaris-admin")) - api(project(":polaris-runtime-common")) api(project(":polaris-runtime-test-common")) api(project(":polaris-runtime-defaults")) api(project(":polaris-server")) diff --git a/gradle/projects.main.properties b/gradle/projects.main.properties index 85ff05b26d..be161a7f20 100644 --- a/gradle/projects.main.properties +++ b/gradle/projects.main.properties @@ -30,7 +30,6 @@ polaris-server=runtime/server polaris-distribution=runtime/distribution polaris-runtime-spark-tests=runtime/spark-tests polaris-admin=runtime/admin -polaris-runtime-common=runtime/common polaris-runtime-test-common=runtime/test-common polaris-relational-jdbc=persistence/relational-jdbc polaris-tests=integration-tests diff --git a/persistence/relational-jdbc/build.gradle.kts b/persistence/relational-jdbc/build.gradle.kts index 39fe5614f4..c5d8be573f 100644 --- a/persistence/relational-jdbc/build.gradle.kts +++ b/persistence/relational-jdbc/build.gradle.kts @@ -33,6 +33,7 @@ dependencies { compileOnly(libs.jakarta.enterprise.cdi.api) compileOnly(libs.jakarta.inject.api) + compileOnly(libs.smallrye.config.core) // @ConfigMapping for Quarkus integration implementation(libs.smallrye.common.annotation) // @Identifier implementation(libs.postgresql) diff --git a/persistence/relational-jdbc/src/main/java/org/apache/polaris/persistence/relational/jdbc/JdbcMetaStoreManagerFactory.java b/persistence/relational-jdbc/src/main/java/org/apache/polaris/persistence/relational/jdbc/JdbcMetaStoreManagerFactory.java index e46cc7277e..066bd7ed6d 100644 --- a/persistence/relational-jdbc/src/main/java/org/apache/polaris/persistence/relational/jdbc/JdbcMetaStoreManagerFactory.java +++ b/persistence/relational-jdbc/src/main/java/org/apache/polaris/persistence/relational/jdbc/JdbcMetaStoreManagerFactory.java @@ -196,15 +196,21 @@ public Map purgeRealms(Iterable realms) { for (String realm : realms) { RealmContext realmContext = () -> realm; - PolarisMetaStoreManager metaStoreManager = getOrCreateMetaStoreManager(realmContext); - BasePersistence session = getOrCreateSession(realmContext); - - PolarisCallContext callContext = new PolarisCallContext(realmContext, session); - BaseResult result = metaStoreManager.purge(callContext); - results.put(realm, result); - - sessionSupplierMap.remove(realm); - metaStoreManagerMap.remove(realm); + try { + PolarisMetaStoreManager metaStoreManager = getOrCreateMetaStoreManager(realmContext); + BasePersistence session = getOrCreateSession(realmContext); + + PolarisCallContext callContext = new PolarisCallContext(realmContext, session); + BaseResult result = metaStoreManager.purge(callContext); + results.put(realm, result); + + sessionSupplierMap.remove(realm); + metaStoreManagerMap.remove(realm); + } catch (IllegalStateException e) { + // Realm is not bootstrapped, return a failed result + results.put( + realm, new BaseResult(BaseResult.ReturnStatus.ENTITY_NOT_FOUND, e.getMessage())); + } } return Map.copyOf(results); diff --git a/persistence/relational-jdbc/src/main/java/org/apache/polaris/persistence/relational/jdbc/RelationalJdbcConfiguration.java b/persistence/relational-jdbc/src/main/java/org/apache/polaris/persistence/relational/jdbc/RelationalJdbcConfiguration.java index 22e389a086..d0c818b1b1 100644 --- a/persistence/relational-jdbc/src/main/java/org/apache/polaris/persistence/relational/jdbc/RelationalJdbcConfiguration.java +++ b/persistence/relational-jdbc/src/main/java/org/apache/polaris/persistence/relational/jdbc/RelationalJdbcConfiguration.java @@ -18,8 +18,10 @@ */ package org.apache.polaris.persistence.relational.jdbc; +import io.smallrye.config.ConfigMapping; import java.util.Optional; +@ConfigMapping(prefix = "polaris.persistence.relational.jdbc") public interface RelationalJdbcConfiguration { // max retries before giving up Optional maxRetries(); diff --git a/runtime/admin/build.gradle.kts b/runtime/admin/build.gradle.kts index eb77319eaa..bf0b167795 100644 --- a/runtime/admin/build.gradle.kts +++ b/runtime/admin/build.gradle.kts @@ -29,6 +29,7 @@ dependencies { implementation(project(":polaris-version")) implementation(project(":polaris-api-management-service")) implementation(project(":polaris-api-iceberg-service")) + implementation(project(":polaris-runtime-defaults")) compileOnly("com.fasterxml.jackson.core:jackson-annotations") @@ -40,8 +41,6 @@ dependencies { implementation("io.quarkus:quarkus-picocli") implementation("io.quarkus:quarkus-container-image-docker") - implementation(project(":polaris-runtime-common")) - testImplementation(project(":polaris-runtime-test-common")) testFixturesApi(project(":polaris-core")) diff --git a/runtime/common/build.gradle.kts b/runtime/common/build.gradle.kts deleted file mode 100644 index e930a3e13c..0000000000 --- a/runtime/common/build.gradle.kts +++ /dev/null @@ -1,30 +0,0 @@ -/* - * 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. - */ - -plugins { - id("org.kordamp.gradle.jandex") - id("polaris-server") -} - -dependencies { - compileOnly(libs.smallrye.config.core) - implementation(project(":polaris-relational-jdbc")) - implementation(platform(libs.quarkus.amazon.services.bom)) - implementation("io.quarkiverse.amazonservices:quarkus-amazon-rds") -} diff --git a/runtime/common/src/main/java/org/apache/polaris/quarkus/common/config/jdbc/QuarkusRelationalJdbcConfiguration.java b/runtime/common/src/main/java/org/apache/polaris/quarkus/common/config/jdbc/QuarkusRelationalJdbcConfiguration.java deleted file mode 100644 index 7eba6eaad7..0000000000 --- a/runtime/common/src/main/java/org/apache/polaris/quarkus/common/config/jdbc/QuarkusRelationalJdbcConfiguration.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * 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. - */ -package org.apache.polaris.quarkus.common.config.jdbc; - -import io.smallrye.config.ConfigMapping; -import org.apache.polaris.persistence.relational.jdbc.RelationalJdbcConfiguration; - -@ConfigMapping(prefix = "polaris.persistence.relational.jdbc") -public interface QuarkusRelationalJdbcConfiguration extends RelationalJdbcConfiguration {} diff --git a/runtime/defaults/build.gradle.kts b/runtime/defaults/build.gradle.kts index fa862eedc0..84a77a590e 100644 --- a/runtime/defaults/build.gradle.kts +++ b/runtime/defaults/build.gradle.kts @@ -37,4 +37,7 @@ dependencies { compileOnly("io.quarkus:quarkus-oidc") compileOnly("io.quarkus:quarkus-opentelemetry") compileOnly("io.quarkus:quarkus-smallrye-context-propagation") + + implementation(platform(libs.quarkus.amazon.services.bom)) + implementation("io.quarkiverse.amazonservices:quarkus-amazon-rds") } diff --git a/runtime/service/build.gradle.kts b/runtime/service/build.gradle.kts index 9dcd8c5885..f8ab259dbc 100644 --- a/runtime/service/build.gradle.kts +++ b/runtime/service/build.gradle.kts @@ -34,7 +34,6 @@ dependencies { runtimeOnly(project(":polaris-relational-jdbc")) implementation(project(":polaris-runtime-defaults")) - implementation(project(":polaris-runtime-common")) compileOnly(project(":polaris-immutables")) annotationProcessor(project(":polaris-immutables", configuration = "processor"))