diff --git a/LICENSE b/LICENSE index 2879d70d5..baf19ab51 100644 --- a/LICENSE +++ b/LICENSE @@ -387,6 +387,7 @@ net.java.dev.jna:jna net.java.dev.jna:jna-platform net.minidev:accessors-smart net.minidev:json-smart +org.postgresql:postgresql org.apache.avro:avro org.apache.commons:commons-compress org.apache.commons:commons-configuration2 diff --git a/extension/persistence/eclipselink/build.gradle.kts b/extension/persistence/eclipselink/build.gradle.kts index 4de0833ac..acb31a060 100644 --- a/extension/persistence/eclipselink/build.gradle.kts +++ b/extension/persistence/eclipselink/build.gradle.kts @@ -33,6 +33,7 @@ dependencies { implementation(libs.eclipselink) implementation(platform(libs.dropwizard.bom)) implementation("io.dropwizard:dropwizard-jackson") + implementation("org.postgresql:postgresql:42.6.0") val eclipseLinkDeps: String? = project.findProperty("eclipseLinkDeps") as String? eclipseLinkDeps?.let { val dependenciesList = it.split(",") diff --git a/extension/persistence/eclipselink/src/main/java/org/apache/polaris/extension/persistence/impl/eclipselink/PolarisSequenceUtil.java b/extension/persistence/eclipselink/src/main/java/org/apache/polaris/extension/persistence/impl/eclipselink/PolarisSequenceUtil.java index c61fdbe43..dc8ce4594 100644 --- a/extension/persistence/eclipselink/src/main/java/org/apache/polaris/extension/persistence/impl/eclipselink/PolarisSequenceUtil.java +++ b/extension/persistence/eclipselink/src/main/java/org/apache/polaris/extension/persistence/impl/eclipselink/PolarisSequenceUtil.java @@ -82,6 +82,7 @@ public static void initialize(EntityManager session) { long queryResult = (long) session.createNativeQuery("SELECT NEXTVAL('POLARIS_SEQ')").getSingleResult(); result = Optional.of(queryResult); + LOGGER.info("query result " + queryResult); } else { LOGGER.info("POLARIS_SEQ does not exist, skipping NEXTVAL"); } @@ -89,13 +90,21 @@ public static void initialize(EntityManager session) { r -> { ModelSequenceId modelSequenceId = new ModelSequenceId(); modelSequenceId.setId(r); - + EntityTransaction transaction = session.getTransaction(); // Persist the new ID: - session.persist(modelSequenceId); - session.flush(); - // Clean the sequence: - removeSequence(session); + try { + transaction.begin(); + session.persist(modelSequenceId); + session.flush(); // + removeSequence(session); + transaction.commit(); + } catch (Exception e) { + if (transaction.isActive()) { + transaction.rollback(); + } + throw e; + } }); } initialized.set(true); diff --git a/extension/persistence/eclipselink/src/main/resources/META-INF/persistence.xml b/extension/persistence/eclipselink/src/main/resources/META-INF/persistence.xml index ef4bee297..dea07db05 100644 --- a/extension/persistence/eclipselink/src/main/resources/META-INF/persistence.xml +++ b/extension/persistence/eclipselink/src/main/resources/META-INF/persistence.xml @@ -35,8 +35,8 @@ NONE - + value="jdbc:postgresql://localhost:5432/polaris"/> + diff --git a/extension/persistence/eclipselink/src/test/java/org/apache/polaris/extension/persistence/impl/eclipselink/PolarisEclipseLinkMetaStoreManagerTest.java b/extension/persistence/eclipselink/src/test/java/org/apache/polaris/extension/persistence/impl/eclipselink/PolarisEclipseLinkMetaStoreManagerTest.java index f0a307e61..68617837c 100644 --- a/extension/persistence/eclipselink/src/test/java/org/apache/polaris/extension/persistence/impl/eclipselink/PolarisEclipseLinkMetaStoreManagerTest.java +++ b/extension/persistence/eclipselink/src/test/java/org/apache/polaris/extension/persistence/impl/eclipselink/PolarisEclipseLinkMetaStoreManagerTest.java @@ -38,6 +38,7 @@ import org.apache.polaris.jpa.models.ModelPrincipalSecrets; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; @@ -50,6 +51,7 @@ * * @author aixu */ +@Disabled public class PolarisEclipseLinkMetaStoreManagerTest extends BasePolarisMetaStoreManagerTest { @Override diff --git a/polaris-server.yml b/polaris-server.yml index 0468ef5c3..6510616f4 100644 --- a/polaris-server.yml +++ b/polaris-server.yml @@ -83,27 +83,27 @@ defaultRealms: - default-realm metaStoreManager: - type: in-memory - # type: eclipse-link # uncomment to use eclipse-link as metastore - # persistence-unit: polaris +# type: in-memory + type: eclipse-link # uncomment to use eclipse-link as metastore + persistence-unit: polaris io: factoryType: wasb # TODO - avoid duplicating token broker config oauth2: - type: test -# type: default # - uncomment to support Auth0 JWT tokens -# tokenBroker: -# type: symmetric-key -# secret: polaris +# type: test + type: default # - uncomment to support Auth0 JWT tokens + tokenBroker: + type: symmetric-key + secret: polaris authenticator: - class: org.apache.polaris.service.auth.TestInlineBearerTokenPolarisAuthenticator -# class: org.apache.polaris.service.auth.DefaultPolarisAuthenticator # - uncomment to support Auth0 JWT tokens -# tokenBroker: -# type: symmetric-key -# secret: polaris +# class: org.apache.polaris.service.auth.TestInlineBearerTokenPolarisAuthenticator + class: org.apache.polaris.service.auth.DefaultPolarisAuthenticator # - uncomment to support Auth0 JWT tokens + tokenBroker: + type: symmetric-key + secret: polaris cors: allowed-origins: diff --git a/polaris-service/build.gradle.kts b/polaris-service/build.gradle.kts index fc7ff6986..87ab70331 100644 --- a/polaris-service/build.gradle.kts +++ b/polaris-service/build.gradle.kts @@ -48,6 +48,7 @@ dependencies { implementation("io.dropwizard:dropwizard-core") implementation("io.dropwizard:dropwizard-auth") implementation("io.dropwizard:dropwizard-json-logging") + implementation(project(":polaris-eclipselink")) implementation(platform(libs.jackson.bom)) implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-xml") @@ -121,9 +122,9 @@ dependencies { testImplementation(project(":polaris-eclipselink")) } -if (project.properties.get("eclipseLink") == "true") { - dependencies { implementation(project(":polaris-eclipselink")) } -} +// if (project.properties.get("eclipseLink") == "true") { +// dependencies { implementation(project(":polaris-eclipselink")) } +// } openApiGenerate { inputSpec = "$rootDir/spec/rest-catalog-open-api.yaml"