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

yufei 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 353269aa Docs: adapt metastores.md to Quarkus (#831)
353269aa is described below

commit 353269aa7162f4043ec3d9f66b80e648c552a197
Author: Alexandre Dutra <[email protected]>
AuthorDate: Thu Jan 23 17:52:20 2025 +0100

    Docs: adapt metastores.md to Quarkus (#831)
---
 site/content/in-dev/unreleased/metastores.md | 74 ++++++++++++++++++----------
 1 file changed, 49 insertions(+), 25 deletions(-)

diff --git a/site/content/in-dev/unreleased/metastores.md 
b/site/content/in-dev/unreleased/metastores.md
index 8b287ffb..eb61f371 100644
--- a/site/content/in-dev/unreleased/metastores.md
+++ b/site/content/in-dev/unreleased/metastores.md
@@ -23,33 +23,51 @@ type: docs
 weight: 700
 ---
 
-This page documents important configurations for connecting to production 
database through [EclipseLink](https://eclipse.dev/eclipselink/).
+This page documents important configurations for connecting to a production 
database through [EclipseLink](https://eclipse.dev/eclipselink/).
+
+## Building Polaris with EclipseLink
+
+Polaris doesn't ship with any JDBC driver. You must specify them when building 
Polaris with
+EclipseLink by using Gradle's project property:
+`-PeclipseLinkDeps=<jdbc-driver-artifact1>,<jdbc-driver-artifact2>,...`. See 
below examples for H2
+and Postgres.
 
 ## Polaris Server Configuration
-Configure the `metaStoreManager` section in the Polaris configuration 
(`polaris-server.yml` by default) as follows:
-```
-metaStoreManager:
-  type: eclipse-link
-  conf-file: META-INF/persistence.xml
-  persistence-unit: polaris
-```
 
-`conf-file` must point to an [EclipseLink configuration 
file](https://eclipse.dev/eclipselink/documentation/2.5/solutions/testingjpa002.htm)
+Configure the `polaris.persistence` section in your Polaris configuration file
+(`application.properties`) as follows:
 
-By default, `conf-file` points to the embedded resource file 
`META-INF/persistence.xml` in the `polaris-eclipselink` module.
+```
+polaris.persistence.type=eclipse-link
+polaris.persistence.eclipselink.configuration-file=/path/to/persistence.xml
+polaris.persistence.eclipselink.persistence-unit=polaris
+```
 
-In order to specify a configuration file outside the classpath, follow these 
steps.
-1) Place `persistence.xml` into a jar file: `jar cvf /tmp/conf.jar 
persistence.xml`
-2) Use `conf-file: /tmp/conf.jar!/persistence.xml`
+Alternatively, configuration can also be done with environment variables or 
system properties. Refer
+to the [Quarkus Configuration Reference] for more information.
 
-## EclipseLink Configuration - persistence.xml
-The configuration file `persistence.xml` is used to set up the database 
connection properties, which can differ depending on the type of database and 
its configuration.
+The `configuration-file` option must point to an [EclipseLink configuration 
file]. This file, named
+`persistence.xml`, is used to set up the database connection properties, which 
can differ depending
+on the type of database and its configuration.
 
-Check out the default 
[persistence.xml](https://github.com/apache/polaris/blob/main/extension/persistence/eclipselink/src/main/resources/META-INF/persistence.xml)
 for a complete sample for connecting to the file-based H2 database. 
+[Quarkus Configuration Reference]: https://quarkus.io/guides/config-reference
+[EclipseLink configuration file]: 
https://eclipse.dev/eclipselink/documentation/2.5/solutions/testingjpa002.htm
 
 Polaris creates and connects to a separate database for each realm. 
Specifically, the `{realm}` placeholder in `jakarta.persistence.jdbc.url` is 
substituted with the actual realm name, allowing the Polaris server to connect 
to different databases based on the realm.
 
 > Note: some database systems such as Postgres don't create databases 
 > automatically. Database admins need to create them manually before running 
 > Polaris server.
+
+A single `persistence.xml` can describe multiple [persistence 
units](https://eclipse.dev/eclipselink/documentation/2.6/concepts/app_dev001.htm).
 For example, with both a `polaris-dev` and `polaris` persistence unit defined, 
you could use a single `persistence.xml` to easily switch between development 
and production databases. Use the `persistence-unit` option in the Polaris 
server configuration to easily switch between persistence units.
+
+### Using H2
+
+> [!IMPORTANT] H2 is an in-memory database and is not suitable for production!
+
+The default [persistence.xml] in Polaris is already configured for H2, but you 
can easily customize
+your H2 configuration using the persistence unit template below:
+
+[persistence.xml]: 
https://github.com/apache/polaris/blob/main/extension/persistence/eclipselink/src/main/resources/META-INF/persistence.xml
+
 ```xml
 <persistence-unit name="polaris" transaction-type="RESOURCE_LOCAL">
     <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
@@ -71,15 +89,17 @@ Polaris creates and connects to a separate database for 
each realm. Specifically
 </persistence-unit>
 ```
 
-A single `persistence.xml` can describe multiple [persistence 
units](https://eclipse.dev/eclipselink/documentation/2.6/concepts/app_dev001.htm).
 For example, with both a `polaris-dev` and `polaris` persistence unit defined, 
you could use a single `persistence.xml` to easily switch between development 
and production databases. Use `persistence-unit` in the Polaris server 
configuration to easily switch between persistence units.
-
 To build Polaris with the necessary H2 dependency and start the Polaris 
service, run the following:
-```bash
-polaris> ./gradlew --no-daemon --info -PeclipseLink=true 
-PeclipseLinkDeps=com.h2database:h2:2.3.232 clean shadowJar
-polaris> java -jar quarkus/service/build/quarkus-app/quarkus-run.jar
+
+```shell
+./gradlew clean :polaris-quarkus-server:assemble 
-PeclipseLinkDeps=com.h2database:h2:2.3.232
+java -Dpolaris.persistence.type=eclipse-link \
+     
-Dpolaris.persistence.eclipselink.configuration-file=/path/to/persistence.xml \
+     -Dpolaris.persistence.eclipselink.persistence-unit=polaris \
+     -jar quarkus/server/build/quarkus-app/quarkus-run.jar
 ```
 
-### Postgres
+### Using Postgres
 
 The following shows a sample configuration for integrating Polaris with 
Postgres.
 
@@ -106,7 +126,11 @@ The following shows a sample configuration for integrating 
Polaris with Postgres
 ```
 
 To build Polaris with the necessary Postgres dependency and start the Polaris 
service, run the following:
-```bash
-polaris> ./gradlew --no-daemon --info -PeclipseLink=true 
-PeclipseLinkDeps=org.postgresql:postgresql:42.7.4 clean shadowJar
-polaris> java -jar quarkus/service/build/quarkus-app/quarkus-run.jar
+
+```shell
+./gradlew clean :polaris-quarkus-server:assemble 
-PeclipseLinkDeps=org.postgresql:postgresql:42.7.4
+java -Dpolaris.persistence.type=eclipse-link \
+     
-Dpolaris.persistence.eclipselink.configuration-file=/path/to/persistence.xml \
+     -Dpolaris.persistence.eclipselink.persistence-unit=polaris \
+     -jar quarkus/server/build/quarkus-app/quarkus-run.jar
 ```
\ No newline at end of file

Reply via email to