You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by "Woonsan Ko (Jira)" <ji...@apache.org> on 2023/04/20 08:07:00 UTC

[jira] [Comment Edited] (JCR-4926) Support CUBRID database in Jackrabbit 2

    [ https://issues.apache.org/jira/browse/JCR-4926?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17714475#comment-17714475 ] 

Woonsan Ko edited comment on JCR-4926 at 4/20/23 8:06 AM:
----------------------------------------------------------

PR is ready for review: https://github.com/apache/jackrabbit/pull/131
I've tested it working fine in a simple CMS application configured like the following:

```
<!DOCTYPE Repository
          PUBLIC "-//The Apache Software Foundation//DTD Jackrabbit 2.0//EN"
          "http://jackrabbit.apache.org/dtd/repository-2.0.dtd">

<Repository>

  <DataSources>
    <DataSource name="repositoryDS">
      <param name="driver" value="javax.naming.InitialContext"/>
      <param name="url" value="java:comp/env/jdbc/repositoryDS"/>
      <param name="databaseType" value="cubrid"/>
    </DataSource>
  </DataSources>

  <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
    <param name="dataSourceName" value="repositoryDS"/>
    <param name="schemaObjectPrefix" value="repository_"/>
  </FileSystem>

  <Security appName="Jackrabbit">

    <!-- SNIP -->

  </Security>

  <Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="default"/>

  <Workspace name="${wsp.name}">

    <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
      <param name="dataSourceName" value="repositoryDS"/>
      <param name="schemaObjectPrefix" value="${wsp.name}_"/>
    </FileSystem>

    <PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.BundleDbPersistenceManager">
      <param name="dataSourceName" value="repositoryDS"/>
      <param name="databaseType" value="cubrid"/>
      <param name="schemaObjectPrefix" value="${wsp.name}_"/>
      <param name="externalBLOBs" value="true"/>
      <!-- SNIP -->
    </PersistenceManager>

    <!-- SNIP -->

  </Workspace>

  <Versioning rootPath="${rep.home}/version">

    <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
      <param name="dataSourceName" value="repositoryDS"/>
      <param name="schemaObjectPrefix" value="version_"/>
    </FileSystem>

    <PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.BundleDbPersistenceManager">
      <param name="dataSourceName" value="repositoryDS"/>
      <param name="databaseType" value="cubrid"/>
      <param name="schemaObjectPrefix" value="version_"/>
      <param name="externalBLOBs" value="true"/>
      <!-- SNIP -->
    </PersistenceManager>

    <!-- SNIP -->

  </Versioning>

  <DataStore class="org.apache.jackrabbit.core.data.db.DbDataStore">
    <param name="dataSourceName" value="repositoryDS"/>
    <param name="databaseType" value="cubrid"/>
    <param name="minRecordLength" value="1024"/>
    <param name="maxConnections" value="5"/>
    <param name="copyWhenReading" value="true"/>
  </DataStore>

  <Cluster>
    <Journal class="org.apache.jackrabbit.core.journal.DatabaseJournal">
      <param name="dataSourceName" value="repositoryDS"/>
      <param name="databaseType" value="cubrid"/>
      <param name="schemaObjectPrefix" value="repository_"/>
      <param name="revision" value="${rep.home}/revision.log"/>
      <!-- SNIP -->
    </Journal>
  </Cluster>

</Repository>
```

And JDBC setting example:
- driver: cubrid.jdbc.driver.CUBRIDDriver
- url: 'jdbc:CUBRID:localhost:33000:repodb:public::?charSet=utf-8'
- username: ''
- password: ''



was (Author: woonsan):
PR is ready for review: https://github.com/apache/jackrabbit/pull/131
I've tested it working fine in a simple CMS application configured like the following:

```
<!DOCTYPE Repository
          PUBLIC "-//The Apache Software Foundation//DTD Jackrabbit 2.0//EN"
          "http://jackrabbit.apache.org/dtd/repository-2.0.dtd">

<Repository>

  <DataSources>
    <DataSource name="repositoryDS">
      <param name="driver" value="javax.naming.InitialContext"/>
      <param name="url" value="java:comp/env/jdbc/repositoryDS"/>
      <param name="databaseType" value="cubrid"/>
    </DataSource>
  </DataSources>

  <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
    <param name="dataSourceName" value="repositoryDS"/>
    <param name="schemaObjectPrefix" value="repository_"/>
  </FileSystem>

  <Security appName="Jackrabbit">

    <!-- SNIP -->

  </Security>

  <Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="default"/>

  <Workspace name="${wsp.name}">

    <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
      <param name="dataSourceName" value="repositoryDS"/>
      <param name="schemaObjectPrefix" value="${wsp.name}_"/>
    </FileSystem>

    <PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.BundleDbPersistenceManager">
      <param name="dataSourceName" value="repositoryDS"/>
      <param name="databaseType" value="cubrid"/>
      <param name="schemaObjectPrefix" value="${wsp.name}_"/>
      <param name="externalBLOBs" value="true"/>
      <!-- SNIP -->
    </PersistenceManager>

    <!-- SNIP -->

  </Workspace>

  <Versioning rootPath="${rep.home}/version">

    <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
      <param name="dataSourceName" value="repositoryDS"/>
      <param name="schemaObjectPrefix" value="version_"/>
    </FileSystem>

    <PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.BundleDbPersistenceManager">
      <param name="dataSourceName" value="repositoryDS"/>
      <param name="databaseType" value="cubrid"/>
      <param name="schemaObjectPrefix" value="version_"/>
      <param name="externalBLOBs" value="true"/>
      <!-- SNIP -->
    </PersistenceManager>

    <!-- SNIP -->

  </Versioning>

  <DataStore class="org.apache.jackrabbit.core.data.db.DbDataStore">
    <param name="dataSourceName" value="repositoryDS"/>
    <param name="databaseType" value="cubrid"/>
    <param name="minRecordLength" value="1024"/>
    <param name="maxConnections" value="5"/>
    <param name="copyWhenReading" value="true"/>
  </DataStore>

  <Cluster>
    <Journal class="org.apache.jackrabbit.core.journal.DatabaseJournal">
      <param name="dataSourceName" value="repositoryDS"/>
      <param name="databaseType" value="cubrid"/>
      <param name="schemaObjectPrefix" value="repository_"/>
      <param name="revision" value="${rep.home}/revision.log"/>
      <!-- SNIP -->
    </Journal>
  </Cluster>

</Repository>
```

> Support CUBRID database in Jackrabbit 2
> ---------------------------------------
>
>                 Key: JCR-4926
>                 URL: https://issues.apache.org/jira/browse/JCR-4926
>             Project: Jackrabbit Content Repository
>          Issue Type: Improvement
>          Components: clustering, jackrabbit-core, jackrabbit-data
>            Reporter: Woonsan Ko
>            Assignee: Julian Reschke
>            Priority: Major
>             Fix For: 2.22, 2.21.17
>
>
> In the region where I work, I see CUBRID database [1][2] being adopted, especially in the public sector. It seems like CUBRID is regarded as one of the OSS DBMS alternatives (with PostgreSQL and MariaDB) here.
> So I'd like to support the database in Jackrabbit 2 first and then maintain and port it to OAK later. (OSGi is not quite popular yet here.)
> Even if Cubrid is not as popular as other OSS projects, it might be helpful to support here.
> [1] https://en.wikipedia.org/wiki/CUBRID
> [2] https://www.cubrid.org/downloads



--
This message was sent by Atlassian Jira
(v8.20.10#820010)