Skip to content

Commit aa8c2d7

Browse files
committed
Address review feedback
1 parent c152cb2 commit aa8c2d7

File tree

5 files changed

+67
-5
lines changed

5 files changed

+67
-5
lines changed

extension/persistence/eclipselink/src/main/java/org/apache/polaris/extension/persistence/impl/eclipselink/EclipseLinkProductionReadinessChecks.java

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,28 +20,34 @@
2020

2121
import static org.eclipse.persistence.config.PersistenceUnitProperties.JDBC_URL;
2222

23+
import io.smallrye.common.annotation.Identifier;
2324
import jakarta.enterprise.context.ApplicationScoped;
25+
import jakarta.enterprise.inject.Any;
26+
import jakarta.enterprise.inject.Instance;
2427
import jakarta.enterprise.inject.Produces;
2528
import java.io.IOException;
2629
import java.nio.file.Path;
2730
import org.apache.polaris.core.config.ProductionReadinessCheck;
2831
import org.apache.polaris.core.config.ProductionReadinessCheck.Error;
32+
import org.apache.polaris.core.persistence.MetaStoreManagerFactory;
2933
import org.eclipse.microprofile.config.inject.ConfigProperty;
3034
import org.slf4j.Logger;
3135
import org.slf4j.LoggerFactory;
3236

3337
@ApplicationScoped
3438
public class EclipseLinkProductionReadinessChecks {
35-
3639
private static final Logger LOGGER =
3740
LoggerFactory.getLogger(EclipseLinkProductionReadinessChecks.class);
3841

3942
@Produces
40-
public ProductionReadinessCheck checkJdbcUrl(
41-
EclipseLinkConfiguration eclipseLinkConfiguration,
42-
@ConfigProperty(name = "polaris.persistence.type") String persistenceType) {
43+
public ProductionReadinessCheck checkEclipseLink(
44+
@ConfigProperty(name = "polaris.persistence.type") String persistenceType,
45+
@Any Instance<MetaStoreManagerFactory> metaStoreManagerFactories,
46+
EclipseLinkConfiguration eclipseLinkConfiguration) {
4347
// This check should only be applicable when persistence uses EclipseLink.
44-
if (!("eclipse-link".equalsIgnoreCase(persistenceType))) {
48+
MetaStoreManagerFactory metaStoreManagerFactory =
49+
metaStoreManagerFactories.select(Identifier.Literal.of(persistenceType)).get();
50+
if (!(metaStoreManagerFactory instanceof EclipseLinkPolarisMetaStoreManagerFactory)) {
4551
return ProductionReadinessCheck.OK;
4652
}
4753

extension/persistence/relational-jdbc/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ dependencies {
3434
compileOnly(libs.jakarta.inject.api)
3535

3636
implementation(libs.smallrye.common.annotation) // @Identifier
37+
compileOnly(libs.microprofile.config.api) // @ConfigMapping
3738

3839
testImplementation(libs.mockito.junit.jupiter)
3940

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
/*
2+
* Licensed to the Apache Software Foundation (ASF) under one
3+
* or more contributor license agreements. See the NOTICE file
4+
* distributed with this work for additional information
5+
* regarding copyright ownership. The ASF licenses this file
6+
* to you under the Apache License, Version 2.0 (the
7+
* "License"); you may not use this file except in compliance
8+
* with the License. You may obtain a copy of the License at
9+
*
10+
* http://www.apache.org/licenses/LICENSE-2.0
11+
*
12+
* Unless required by applicable law or agreed to in writing,
13+
* software distributed under the License is distributed on an
14+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15+
* KIND, either express or implied. See the License for the
16+
* specific language governing permissions and limitations
17+
* under the License.
18+
*/
19+
20+
package org.apache.polaris.extension.persistence.relational.jdbc;
21+
22+
import io.smallrye.common.annotation.Identifier;
23+
import jakarta.enterprise.context.ApplicationScoped;
24+
import jakarta.enterprise.inject.Any;
25+
import jakarta.enterprise.inject.Instance;
26+
import jakarta.enterprise.inject.Produces;
27+
import java.util.Optional;
28+
import org.apache.polaris.core.config.ProductionReadinessCheck;
29+
import org.apache.polaris.core.persistence.MetaStoreManagerFactory;
30+
import org.eclipse.microprofile.config.inject.ConfigProperty;
31+
32+
@ApplicationScoped
33+
public class RelationalJdbcProductionReadinessChecks {
34+
@Produces
35+
public ProductionReadinessCheck checkRelationalJdbc(
36+
@ConfigProperty(name = "quarkus.datasource.jdbc.url") Optional<String> jdbcUrl,
37+
@ConfigProperty(name = "polaris.persistence.type") String persistenceType,
38+
@Any Instance<MetaStoreManagerFactory> metaStoreManagerFactories) {
39+
// This check should only be applicable when persistence uses RelationalJdbc.
40+
if (!(metaStoreManagerFactories.select(Identifier.Literal.of(persistenceType)).get()
41+
instanceof JdbcMetaStoreManagerFactory)) {
42+
return ProductionReadinessCheck.OK;
43+
}
44+
45+
if (jdbcUrl.isPresent() && jdbcUrl.get().startsWith("jdbc:h2")) {
46+
return ProductionReadinessCheck.of(
47+
ProductionReadinessCheck.Error.of(
48+
"The current persistence (jdbc:h2) is intended for tests only.",
49+
"quarkus.datasource.jdbc.url"));
50+
}
51+
return ProductionReadinessCheck.OK;
52+
}
53+
}

gradle/libs.versions.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ junit-bom = { module = "org.junit:junit-bom", version = "5.12.2" }
7373
logback-classic = { module = "ch.qos.logback:logback-classic", version = "1.5.18" }
7474
micrometer-bom = { module = "io.micrometer:micrometer-bom", version = "1.15.0" }
7575
microprofile-fault-tolerance-api = { module = "org.eclipse.microprofile.fault-tolerance:microprofile-fault-tolerance-api", version = "4.1.2" }
76+
microprofile-config-api = {module = "org.eclipse.microprofile.config:microprofile-config-api", version = "3.0.3"}
7677
mockito-core = { module = "org.mockito:mockito-core", version = "5.18.0" }
7778
mockito-junit-jupiter = { module = "org.mockito:mockito-junit-jupiter", version = "5.18.0" }
7879
opentelemetry-bom = { module = "io.opentelemetry:opentelemetry-bom", version = "1.50.0" }

quarkus/server/distribution/LICENSE

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1476,6 +1476,7 @@ License: Apache License 2.0 - https://www.apache.org/licenses/LICENSE-2.0.txt
14761476
Group: org.eclipse.microprofile.config Name: microprofile-config-api Version: 3.1
14771477
Group: org.eclipse.microprofile.context-propagation Name: microprofile-context-propagation-api Version: 1.3
14781478
Group: org.eclipse.microprofile.fault-tolerance Name: microprofile-fault-tolerance-api Version: 4.1.1
1479+
Group: org.eclipse.microprofile.config Name: microprofile-config-api Version: 3.0.3
14791480
Group: org.eclipse.microprofile.health Name: microprofile-health-api Version: 4.0.1
14801481
Group: org.eclipse.microprofile.jwt Name: microprofile-jwt-auth-api Version: 2.1
14811482
Group: org.eclipse.microprofile.reactive-streams-operators Name: microprofile-reactive-streams-operators-api Version: 3.0.1

0 commit comments

Comments
 (0)