Hello, I have looked at the Oak documentation / code and googled quite a lot but I couldn't find instructions on how to configure Oak to use an RDBDocumentStore in an OSGi environment.
I have written a Spring Boot application based on the example available at https://github.com/apache/jackrabbit-oak/tree/trunk/oak-examples/standalone, and it works fine with MongoDB. Well, actually, I see quite a lof of disk I/O from MongoDB when adding lots of JCR nodes. That's why I wanted to have a try with an relational database (PostgreSQL) and see how it compares. I'm an OSGi newbie so it's probably obvious for someone with more experience, but here's what I tried in my repository JSON configuration file: > ... > "org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService": { > "customBlobStore": true, > "documentStoreType": "rdb" > }, > ... > I see the following in the logs at startup: > ... > o.a.j.o.p.d.DocumentNodeStoreService : Initializing DocumentNodeStore > with BlobStore [DataStore backed BlobStore > [org.apache.jackrabbit.oak.blob.cloud.gcs.GcsDataStore]] > o.a.j.o.p.d.DocumentNodeStoreService : DataSource use enabled. > DocumentNodeStoreService would be initialized when DataSource would be > available (currently available: nodes: null, blobs: null) > ... > I suppose Oak is waiting for a *javax.sql.DataSource* to be "available", but how am I supposed to define one? Do I need to use a library like OPS4J Pax JDBC?? I've tried adding the following to the repository JSON config: > "org.ops4j.datasource": { > "osgi.jdbc.driver.class": "org.postgresql.Driver", > "dataSourceName": "PostgreSQL,", > "user": "sa", > "password": "sa" > }, > And I also had to modify the *REPOSITORY_BUNDLE_FILTER* property to add "(Bundle-SymbolicName=org.ops4j.pax*)". I now see activity related to Pax in the logs, but Oak still refuses to startup properly. What am I missing? Thanks for your help! Best regards, -- Damiano Albani
