2025年11月13日木曜日

Eclipse RDF4JにOracle Graph Adapterを組み込んだコンテナを作成する

米国オラクル社から、Eclipse RDF4JのリポジトリとしてOracle Databaseを使用するためのアダプタがリリースされています。2025年11月時点でリリースされているバージョン22.4.1では、スキーマ・プライベート・ネットワークがサポートされ、Oracle AI Database 26aiをEclipse RDF4Jのリポジトリとして利用できるようになりました。

手作業による構成は記事「Oracle RDF Graph Adaptor for Eclipse RDF4Jを構成してみる」で紹介しています。より簡単にOracle Graph Adapterを組み込んだEclipse RDF4Jを構築するために、Dockerfileを作成しました。

以下に利用手順を説明します。

APEX向けの構成スクリプトのリポジトリに、Eclipse RDF4Jのコンテナを作るためのファイルを追加しました。
git clone https://github.com/ujnak/apex-podman-setup
cd apex-podman-setup/rdf4j
Eclipse RDF4JおよびOracle Graph Adapterの構築に使用する7つのファイルを、ディレクトリfiles以下に配置します。

mkdir -p files

rdf4j % mkdir -p files

rdf4j % 



ディレクトリfiles以下に配置するファイルの取得方法です。


(1) Oracle JDK-11
ダウンロード・サイト: https://www.oracle.com/java/technologies/downloads/#java11

プラットフォームのアーキテクチャ(x86-64またはarm64)に対応した、Compressed Archive(tar.gzで終わるファイル)をダウンロードします。



(2) Apache Tomcat 9.0.x
ダウンロード・サイト: https://tomcat.apache.org/download-90.cgi

9.0.x系の最終バージョンのZIP形式のファイルをダウンロードします。



(3) Oracle JDBC Driver

Oracle Database 23ai (23.26.0.0.0) JDBC Driver & UCP Downloadsにあるojdbc8-full.tar.gzをダウンロードします。



(4) Eclipse RDF4J 4.3.x
ダウンロード・サイト:  https://rdf4j.org/download/

RDF4J 4.3系の最終バージョンのSDKZIP形式)のファイルをダウンロードします。



(5) HttpClient 4.5.14
ダウンロード・サイト: https://hc.apache.org/downloads.cgi

HttpClient 4.5.14 (GA)のバイナリのZIP形式のファイルをダウンロードします。

このファイルはJSON-LDをサポートするために必要とされています。実際はEclipse RDF4Jに、ほとんどのHttpClientライブラリが含まれているため、CLASSPATHに含めるライブラリはEclipse RDF4JのZIPファイルから取り出しています。

HttpClient 4.5.14からはhttpclient-osgi-4.5.14.jarのみを取り出しています。



(6) HttpCore 4.4.16

ファイル一覧よりhttpcomponents-core-4.4.16-bin.zipを見つけてダウンロードします。

HttpCore 4.4.16からは、JSON-LDのサポート要件であるhttpcore-osgi-4.4.16.jarのみを取り出しています。



(7) Oracle RDF Graph Adapter for Eclipse RDF4J 22.4.1

ダウンロード・サイトからOracle RDF Graph Adapter for Eclipse RDF4Jのリンクを開きます。RDF Graphのリンクはページの下の方にあります。


Oracle RDF Graph Adapter for Eclipse RDF4Jのリンクをクリックすると、Oracle Software Delivery Cloudへ移動します。Oracle Software Delivery Cloudにアクセスするには、Oracleプロファイルを作成する必要があります。

Standard Oracle License Agreementを確認し、I reviewed and accept the Oracle License Agreementをチェックします。

Oracle Adapter for Eclipse RDf4J 22.4.1のV1048830-01.zipをダウンロードします。


ダウンロードした7つのファイルをディレクトリfiles以下に配置します。

以下の結果になります。

rdf4j % ls -l files

total 707720

-rw-r--r--@ 1 *  staff   13585064 11月 13 17:34 apache-tomcat-9.0.112.zip

-rw-r--r--@ 1 *  staff  144260720 11月 13 17:34 eclipse-rdf4j-4.3.16-sdk.zip

-rw-r--r--@ 1 *  staff    7790297 11月 13 17:34 httpcomponents-client-4.5.14-bin.zip

-rw-r--r--@ 1 *  staff    4199610 11月 13 17:34 httpcomponents-core-4.4.16-bin.zip

-rw-r--r--@ 1 *  staff  166816127 11月 13 17:34 jdk-11.0.29_linux-aarch64_bin.tar.gz

-rw-r--r--@ 1 *  staff   22971347 11月 13 17:34 ojdbc8-full.tar.gz

-rw-r--r--@ 1 *  staff    2717466 11月 13 17:34 V1048830-01.zip

rdf4j % 


ファイルDockerfileがあるディレクトリrdf4jに、作業ディレクトリを移動します。

ファイルcontext.xmlに記載されているOracle Databaseへの接続情報をアップデートします。Oracle JDBC driverを使用する設定がコメントアウトされています。UCP(Universal Connection Pool)を使用する場合は、コメントアウトの設定を変更する必要があります。

<<username>>の部分をデータベースへの接続ユーザー、<<pwd>>をパスワード、<<host:port/servicename>>の部分を接続先に置き換えます。

以下はユーザー名がwksp_apexdev、パスワードがChangeMe、接続先がhost.containers.internal:1521/freepdb1とした変更例です。

    <Resource name="jdbc/OracleSemDS" auth="Container"

       driverClassName="oracle.jdbc.OracleDriver"

       factory="oracle.jdbc.pool.OracleDataSourceFactory"

       scope="Shareable"

       type="oracle.jdbc.pool.OracleDataSource"

       user="wksp_apexdev" 

       password="ChangeMe" 

       url="jdbc:oracle:thin:@host.containers.internal:1521/freepdb1"

       maxActive="100"

       minIdle="15"

       maxIdel="15"

       initialSize="15"

       removeAbandonedTimeout="30"

       validationQuery="select 1 from dual"

    />


Tomcatのデフォルトの管理者ユーザーadminのパスワードを設定します。

tomcat-users.xmlを開き、adminおよびrobotのパスワードの<must-be-changed>の部分に、パスワードを記入します。

<!--

  By default, no user is included in the "manager-gui" role required

  to operate the "/manager/html" web application.  If you wish to use this app,

  you must define such a user - the username and password are arbitrary.


  Built-in Tomcat manager roles:

    - manager-gui    - allows access to the HTML GUI and the status pages

    - manager-script - allows access to the HTTP API and the status pages

    - manager-jmx    - allows access to the JMX proxy and the status pages

    - manager-status - allows access to the status pages only


  The users below are wrapped in a comment and are therefore ignored. If you

  wish to configure one or more of these users for use with the manager web

  application, do not forget to remove the <!.. ..> that surrounds them. You

  will also need to set the passwords to something appropriate.

-->

  <user username="admin" password="<must-be-changed>" roles="manager-gui"/>

  <user username="robot" password="<must-be-changed>" roles="manager-script"/>

<!--

  The sample user and role entries below are intended for use with the

  examples web application. They are wrapped in a comment and thus are ignored

  when reading this file. If you wish to configure these users for use with the

  examples web application, do not forget to remove the <!.. ..> that surrounds

  them. You will also need to set the passwords to something appropriate.

-->


以上で設定は完了です。

コンテナ・イメージoracle-rdf4jを作成します。

podman build -t oracle-rdf4j .

rdf4j % podman build -t oracle-rdf4j .

[1/2] STEP 1/19: FROM oraclelinux:8 AS builder

[1/2] STEP 2/19: RUN dnf install -y tar unzip

Oracle Linux 8 BaseOS Latest (aarch64)          7.0 MB/s | 148 MB     00:21    

Oracle Linux 8 Application Stream (aarch64)     6.6 MB/s |  66 MB     00:09    

Last metadata expiration check: 0:00:09 ago on Fri Nov 14 02:23:43 2025.

Package tar-2:1.30-11.el8_10.aarch64 is already installed.

Dependencies resolved.

================================================================================

 Package    Architecture Version                   Repository              Size

================================================================================

Installing:

 unzip      aarch64      6.0-48.0.1.el8_10         ol8_baseos_latest      189 k


Transaction Summary

================================================================================

Install  1 Package


Total download size: 189 k

Installed size: 474 k

Downloading Packages:

unzip-6.0-48.0.1.el8_10.aarch64.rpm             2.3 MB/s | 189 kB     00:00    

--------------------------------------------------------------------------------

Total                                           2.3 MB/s | 189 kB     00:00     

Running transaction check

Transaction check succeeded.

Running transaction test

Transaction test succeeded.

Running transaction

  Preparing        :                                                        1/1 

  Installing       : unzip-6.0-48.0.1.el8_10.aarch64                        1/1 

  Running scriptlet: unzip-6.0-48.0.1.el8_10.aarch64                        1/1 

  Verifying        : unzip-6.0-48.0.1.el8_10.aarch64                        1/1 


Installed:

  unzip-6.0-48.0.1.el8_10.aarch64                                               


Complete!

--> 86c5dc4c451e

[1/2] STEP 3/19: ENV LANG en_US.UTF-8

--> 05c1b99293d2

[1/2] STEP 4/19: ENV JAVA_HOME=/usr/java/jdk-11

--> 299961c363d2

[1/2] STEP 5/19: COPY files/jdk-11.*.tar.gz /tmp/

--> 0d77092eeb18

[1/2] STEP 6/19: RUN set -eux;     ARCH="$(uname -m)" &&     if [ "$ARCH" = "x86_64" ];     then     mv "$(ls /tmp/jdk-11*_linux-x64_bin.tar.gz)" /tmp/jdk.tar.gz ;     else     mv "$(ls /tmp/jdk-11*_linux-aarch64_bin.tar.gz)" /tmp/jdk.tar.gz ;     fi &&     mkdir -p "$JAVA_HOME";     tar --extract --file /tmp/jdk.tar.gz --directory "$JAVA_HOME" --strip-components 1

++ uname -m

+ ARCH=aarch64

+ '[' aarch64 = x86_64 ']'

++ ls /tmp/jdk-11.0.29_linux-aarch64_bin.tar.gz

+ mv /tmp/jdk-11.0.29_linux-aarch64_bin.tar.gz /tmp/jdk.tar.gz

+ mkdir -p /usr/java/jdk-11

+ tar --extract --file /tmp/jdk.tar.gz --directory /usr/java/jdk-11 --strip-components 1

--> d1998efd642e

[1/2] STEP 7/19: ENV CATALINA_HOME=/opt/tomcat

--> d109efd8ae06

[1/2] STEP 8/19: COPY files/apache-tomcat-9.0.*.zip /tmp/

--> d2fccab225a8

[1/2] STEP 9/19: RUN set -eux;     set -- /tmp/apache-tomcat-9.0.*.zip;     [ "$#" -eq 1 ] || (echo "Expected 1 match, got $#" && exit 1);     TOMCAT_DIR="${1#/tmp/}"; TOMCAT_DIR="${TOMCAT_DIR%.zip}";     echo "TOMCAT_DIR=${TOMCAT_DIR}" ;     unzip -q -d /opt /tmp/${TOMCAT_DIR}.zip ;     mv /opt/${TOMCAT_DIR} ${CATALINA_HOME} ;     chmod a+x ${CATALINA_HOME}/bin/catalina.sh

TOMCAT_DIR=apache-tomcat-9.0.112

+ set -- /tmp/apache-tomcat-9.0.112.zip

+ '[' 1 -eq 1 ']'

+ TOMCAT_DIR=apache-tomcat-9.0.112.zip

+ TOMCAT_DIR=apache-tomcat-9.0.112

+ echo TOMCAT_DIR=apache-tomcat-9.0.112

+ unzip -q -d /opt /tmp/apache-tomcat-9.0.112.zip

+ mv /opt/apache-tomcat-9.0.112 /opt/tomcat

+ chmod a+x /opt/tomcat/bin/catalina.sh

--> b9c18afadfc8

[1/2] STEP 10/19: COPY files/ojdbc8-full.tar.gz /tmp/

--> b1cd863d2a55

[1/2] STEP 11/19: RUN set -eux;     tar -xvzf /tmp/ojdbc8-full.tar.gz -C ${CATALINA_HOME}/lib/ ojdbc8.jar ;     tar -xvzf /tmp/ojdbc8-full.tar.gz -C ${CATALINA_HOME}/lib/ ucp.jar ;

+ tar -xvzf /tmp/ojdbc8-full.tar.gz -C /opt/tomcat/lib/ ojdbc8.jar

ojdbc8.jar

+ tar -xvzf /tmp/ojdbc8-full.tar.gz -C /opt/tomcat/lib/ ucp.jar

ucp.jar

--> fd98c6a40546

[1/2] STEP 12/19: COPY files/eclipse-rdf4j-4.3.*-sdk.zip /tmp/

--> 5a87bea8fee3

[1/2] STEP 13/19: RUN set -eux;     set -- /tmp/eclipse-rdf4j-4.3.*-sdk.zip;     [ "$#" -eq 1 ] || (echo "Expected 1 match, got $#" && exit 1);     RDF4J_VER="${1#/tmp/eclipse-rdf4j-}"; RDF4J_VER="${RDF4J_VER%-sdk.zip}";     echo "RDF4J_VER=${RDF4J_VER}" ;     unzip -j -d ${CATALINA_HOME}/webapps/ /tmp/eclipse-rdf4j-${RDF4J_VER}-sdk.zip         eclipse-rdf4j-${RDF4J_VER}/war/rdf4j-server.war         eclipse-rdf4j-${RDF4J_VER}/war/rdf4j-workbench.war ;     unzip -j -d ${CATALINA_HOME}/lib/ /tmp/eclipse-rdf4j-${RDF4J_VER}-sdk.zip         eclipse-rdf4j-${RDF4J_VER}/lib/httpclient-4.5.14.jar         eclipse-rdf4j-${RDF4J_VER}/lib/httpclient-cache-4.5.14.jar         eclipse-rdf4j-${RDF4J_VER}/lib/httpcore-4.4.16.jar         eclipse-rdf4j-${RDF4J_VER}/lib/jackson-annotations-2.13.5.jar         eclipse-rdf4j-${RDF4J_VER}/lib/jackson-core-2.13.5.jar         eclipse-rdf4j-${RDF4J_VER}/lib/jackson-databind-2.13.5.jar         eclipse-rdf4j-${RDF4J_VER}/lib/jsonld-java-0.13.4.jar         eclipse-rdf4j-${RDF4J_VER}/lib/rdf4j-rio-jsonld-4.3.16.jar         eclipse-rdf4j-${RDF4J_VER}/lib/rdf4j-rio-rdfjson-4.3.16.jar ;

RDF4J_VER=4.3.16

+ set -- /tmp/eclipse-rdf4j-4.3.16-sdk.zip

+ '[' 1 -eq 1 ']'

+ RDF4J_VER=4.3.16-sdk.zip

+ RDF4J_VER=4.3.16

+ echo RDF4J_VER=4.3.16

+ unzip -j -d /opt/tomcat/webapps/ /tmp/eclipse-rdf4j-4.3.16-sdk.zip eclipse-rdf4j-4.3.16/war/rdf4j-server.war eclipse-rdf4j-4.3.16/war/rdf4j-workbench.war

Archive:  /tmp/eclipse-rdf4j-4.3.16-sdk.zip

  inflating: /opt/tomcat/webapps/rdf4j-server.war  

  inflating: /opt/tomcat/webapps/rdf4j-workbench.war  

+ unzip -j -d /opt/tomcat/lib/ /tmp/eclipse-rdf4j-4.3.16-sdk.zip eclipse-rdf4j-4.3.16/lib/httpclient-4.5.14.jar eclipse-rdf4j-4.3.16/lib/httpclient-cache-4.5.14.jar eclipse-rdf4j-4.3.16/lib/httpcore-4.4.16.jar eclipse-rdf4j-4.3.16/lib/jackson-annotations-2.13.5.jar eclipse-rdf4j-4.3.16/lib/jackson-core-2.13.5.jar eclipse-rdf4j-4.3.16/lib/jackson-databind-2.13.5.jar eclipse-rdf4j-4.3.16/lib/jsonld-java-0.13.4.jar eclipse-rdf4j-4.3.16/lib/rdf4j-rio-jsonld-4.3.16.jar eclipse-rdf4j-4.3.16/lib/rdf4j-rio-rdfjson-4.3.16.jar

Archive:  /tmp/eclipse-rdf4j-4.3.16-sdk.zip

  inflating: /opt/tomcat/lib/jackson-core-2.13.5.jar  

  inflating: /opt/tomcat/lib/httpclient-4.5.14.jar  

  inflating: /opt/tomcat/lib/httpcore-4.4.16.jar  

  inflating: /opt/tomcat/lib/jackson-annotations-2.13.5.jar  

  inflating: /opt/tomcat/lib/jackson-databind-2.13.5.jar  

  inflating: /opt/tomcat/lib/jsonld-java-0.13.4.jar  

  inflating: /opt/tomcat/lib/rdf4j-rio-jsonld-4.3.16.jar  

  inflating: /opt/tomcat/lib/httpclient-cache-4.5.14.jar  

  inflating: /opt/tomcat/lib/rdf4j-rio-rdfjson-4.3.16.jar  

--> a3f8009a6292

[1/2] STEP 14/19: COPY files/httpcomponents-client-4.5.*-bin.zip /tmp/

--> b32549b9d8c6

[1/2] STEP 15/19: RUN set -eux;     set -- /tmp/httpcomponents-client-4.5.*-bin.zip;     [ "$#" -eq 1 ] || (echo "Expected 1 match, got $#" && exit 1);     HC_VER="${1#/tmp/httpcomponents-client-}"; HC_VER="${HC_VER%-bin.zip}";     echo "HC_VER=${HC_VER}" ;     unzip -j -d ${CATALINA_HOME}/lib/ /tmp/httpcomponents-client-${HC_VER}-bin.zip         lib/httpclient-osgi-${HC_VER}.jar ;

HC_VER=4.5.14

+ set -- /tmp/httpcomponents-client-4.5.14-bin.zip

+ '[' 1 -eq 1 ']'

+ HC_VER=4.5.14-bin.zip

+ HC_VER=4.5.14

+ echo HC_VER=4.5.14

+ unzip -j -d /opt/tomcat/lib/ /tmp/httpcomponents-client-4.5.14-bin.zip lib/httpclient-osgi-4.5.14.jar

Archive:  /tmp/httpcomponents-client-4.5.14-bin.zip

  inflating: /opt/tomcat/lib/httpclient-osgi-4.5.14.jar  

--> 15e3560551c8

[1/2] STEP 16/19: COPY files/httpcomponents-core-4.4.*-bin.zip /tmp/

--> 5854f7193616

[1/2] STEP 17/19: RUN set -eux;     set -- /tmp/httpcomponents-core-4.4.*-bin.zip;     [ "$#" -eq 1 ] || (echo "Expected 1 match, got $#" && exit 1);     HC_VER="${1#/tmp/httpcomponents-core-}"; HC_VER="${HC_VER%-bin.zip}";     echo "HC_VER=${HC_VER}" ;     unzip -j -d ${CATALINA_HOME}/lib/ /tmp/httpcomponents-core-${HC_VER}-bin.zip         lib/httpcore-osgi-${HC_VER}.jar ;

+ set -- /tmp/httpcomponents-core-4.4.16-bin.zip

+ '[' 1 -eq 1 ']'

+ HC_VER=4.4.16-bin.zip

+ HC_VER=4.4.16

+ echo HC_VER=4.4.16

HC_VER=4.4.16

+ unzip -j -d /opt/tomcat/lib/ /tmp/httpcomponents-core-4.4.16-bin.zip lib/httpcore-osgi-4.4.16.jar

Archive:  /tmp/httpcomponents-core-4.4.16-bin.zip

  inflating: /opt/tomcat/lib/httpcore-osgi-4.4.16.jar  

--> fcb8e5498701

[1/2] STEP 18/19: COPY files/V1048830-01.zip /tmp/

--> a73f8a6a886d

[1/2] STEP 19/19: RUN unzip -q -d /opt/oracle /tmp/V1048830-01.zip

--> cbef64e48e11

[2/2] STEP 1/18: FROM oraclelinux:8

[2/2] STEP 2/18: ENV LANG en_US.UTF-8

--> Using cache 3c9aed82232a0d4fea8b8643a42bf61575a15f8eb9dab83a53a3558801de4e32

--> 3c9aed82232a

[2/2] STEP 3/18: ENV JAVA_HOME=/usr/java/jdk-11

--> Using cache 8bcf0430ed2ca6f4506b22e3798a0e2b9049910e935c8bc2651c2eda9ace98c7

--> 8bcf0430ed2c

[2/2] STEP 4/18: ENV CATALINA_HOME=/opt/tomcat

--> ecf1f73d4129

[2/2] STEP 5/18: ENV ORACLE_HOME=/opt/oracle

--> 38710d6d25b8

[2/2] STEP 6/18: ENV PATH $ORACLE_HOME/bin:$JAVA_HOME/bin:$PATH

--> 9ee6611c9c38

[2/2] STEP 7/18: COPY --from=builder $JAVA_HOME     $JAVA_HOME

--> be67e8fba359

[2/2] STEP 8/18: COPY --from=builder $CATALINA_HOME $CATALINA_HOME

--> 8a9b0ec149ed

[2/2] STEP 9/18: COPY --from=builder $ORACLE_HOME   $ORACLE_HOME

--> 76ce06b94054

[2/2] STEP 10/18: RUN set -eux;     dnf -y update;     dnf install -y         freetype fontconfig         tar unzip     ;     rm -rf /var/cache/dnf;     ln -sfT "$JAVA_HOME" /usr/java/default;     ln -sfT "$JAVA_HOME" /usr/java/latest;     for bin in "$JAVA_HOME/bin/"*; do         base="$(basename "$bin")";         [ ! -e "/usr/bin/$base" ];         alternatives --install "/usr/bin/$base" "$base" "$bin" 20000;     done;     java -Xshare:dump;

+ dnf -y update

Oracle Linux 8 BaseOS Latest (aarch64)          6.6 MB/s | 148 MB     00:22    

Oracle Linux 8 Application Stream (aarch64)     6.0 MB/s |  66 MB     00:10    

Last metadata expiration check: 0:00:10 ago on Fri 14 Nov 2025 02:24:43 AM UTC.

Dependencies resolved.

================================================================================

 Package          Arch    Version                       Repository         Size

================================================================================

Upgrading:

 bash             aarch64 4.4.20-6.el8_10               ol8_baseos_latest 1.5 M

 bind-export-libs aarch64 32:9.11.36-16.el8_10.6        ol8_baseos_latest 1.1 M

 ca-certificates  noarch  2025.2.80_v9.0.304-80.2.el8_10


[中略]


Installed:

  libxkbcommon-0.9.1-1.el8.aarch64       shared-mime-info-1.9-4.el8.aarch64    

  trousers-0.3.15-2.el8.aarch64          trousers-lib-0.3.15-2.el8.aarch64     

  xkeyboard-config-2.28-1.el8.noarch    


Complete!

+ dnf install -y freetype fontconfig tar unzip

Last metadata expiration check: 0:00:21 ago on Fri 14 Nov 2025 02:24:43 AM UTC.

Package tar-2:1.30-11.el8_10.aarch64 is already installed.

Dependencies resolved.

================================================================================

 Package                  Arch     Version             Repository          Size

================================================================================

Installing:

 fontconfig               aarch64  2.13.1-4.el8        ol8_baseos_latest  272 k

 freetype                 aarch64  2.9.1-10.el8_10     ol8_baseos_latest  369 k

 unzip                    aarch64  6.0-48.0.1.el8_10   ol8_baseos_latest  189 k

Installing dependencies:

 dejavu-fonts-common      noarch   2.35-7.el8          ol8_baseos_latest   74 k

 dejavu-sans-fonts        noarch   2.35-7.el8          ol8_baseos_latest  1.5 M

 fontpackages-filesystem  noarch   1.44-22.el8         ol8_baseos_latest   16 k

 libpng                   aarch64  2:1.6.34-5.el8      ol8_baseos_latest  119 k


Transaction Summary

================================================================================

Install  7 Packages


Total download size: 2.5 M

Installed size: 8.1 M

Downloading Packages:

(1/7): dejavu-fonts-common-2.35-7.el8.noarch.rp 660 kB/s |  74 kB     00:00    

(2/7): fontpackages-filesystem-1.44-22.el8.noar 927 kB/s |  16 kB     00:00    

(3/7): fontconfig-2.13.1-4.el8.aarch64.rpm      1.3 MB/s | 272 kB     00:00    

(4/7): libpng-1.6.34-5.el8.aarch64.rpm          1.5 MB/s | 119 kB     00:00    

(5/7): freetype-2.9.1-10.el8_10.aarch64.rpm     2.3 MB/s | 369 kB     00:00    

(6/7): unzip-6.0-48.0.1.el8_10.aarch64.rpm      2.0 MB/s | 189 kB     00:00    

(7/7): dejavu-sans-fonts-2.35-7.el8.noarch.rpm  3.7 MB/s | 1.5 MB     00:00    

--------------------------------------------------------------------------------

Total                                           6.1 MB/s | 2.5 MB     00:00     

Running transaction check

Transaction check succeeded.

Running transaction test

Transaction test succeeded.

Running transaction

  Preparing        :                                                        1/1 

  Installing       : fontpackages-filesystem-1.44-22.el8.noarch             1/7 

  Installing       : dejavu-fonts-common-2.35-7.el8.noarch                  2/7 

  Installing       : dejavu-sans-fonts-2.35-7.el8.noarch                    3/7 

  Installing       : libpng-2:1.6.34-5.el8.aarch64                          4/7 

  Installing       : freetype-2.9.1-10.el8_10.aarch64                       5/7 

  Installing       : fontconfig-2.13.1-4.el8.aarch64                        6/7 

  Running scriptlet: fontconfig-2.13.1-4.el8.aarch64                        6/7 

  Installing       : unzip-6.0-48.0.1.el8_10.aarch64                        7/7 

  Running scriptlet: unzip-6.0-48.0.1.el8_10.aarch64                        7/7 

  Running scriptlet: fontconfig-2.13.1-4.el8.aarch64                        7/7 

  Verifying        : dejavu-fonts-common-2.35-7.el8.noarch                  1/7 

  Verifying        : dejavu-sans-fonts-2.35-7.el8.noarch                    2/7 

  Verifying        : fontconfig-2.13.1-4.el8.aarch64                        3/7 

  Verifying        : fontpackages-filesystem-1.44-22.el8.noarch             4/7 

  Verifying        : freetype-2.9.1-10.el8_10.aarch64                       5/7 

  Verifying        : libpng-2:1.6.34-5.el8.aarch64                          6/7 

  Verifying        : unzip-6.0-48.0.1.el8_10.aarch64                        7/7 


Installed:

  dejavu-fonts-common-2.35-7.el8.noarch                                         

  dejavu-sans-fonts-2.35-7.el8.noarch                                           

  fontconfig-2.13.1-4.el8.aarch64                                               

  fontpackages-filesystem-1.44-22.el8.noarch                                    

  freetype-2.9.1-10.el8_10.aarch64                                              

  libpng-2:1.6.34-5.el8.aarch64                                                 

  unzip-6.0-48.0.1.el8_10.aarch64                                               


Complete!

+ rm -rf /var/cache/dnf

+ ln -sfT /usr/java/jdk-11 /usr/java/default

+ ln -sfT /usr/java/jdk-11 /usr/java/latest

+ for bin in "$JAVA_HOME/bin/"*

++ basename /usr/java/jdk-11/bin/jar

+ base=jar

+ '[' '!' -e /usr/bin/jar ']'

+ alternatives --install /usr/bin/jar jar /usr/java/jdk-11/bin/jar 20000

+ for bin in "$JAVA_HOME/bin/"*

++ basename /usr/java/jdk-11/bin/jarsigner

+ base=jarsigner

+ '[' '!' -e /usr/bin/jarsigner ']'

+ alternatives --install /usr/bin/jarsigner jarsigner /usr/java/jdk-11/bin/jarsigner 20000

+ for bin in "$JAVA_HOME/bin/"*

++ basename /usr/java/jdk-11/bin/java

+ base=java

+ '[' '!' -e /usr/bin/java ']'

+ alternatives --install /usr/bin/java java /usr/java/jdk-11/bin/java 20000

+ for bin in "$JAVA_HOME/bin/"*

++ basename /usr/java/jdk-11/bin/javac

+ base=javac

+ '[' '!' -e /usr/bin/javac ']'

+ alternatives --install /usr/bin/javac javac /usr/java/jdk-11/bin/javac 20000

+ for bin in "$JAVA_HOME/bin/"*

++ basename /usr/java/jdk-11/bin/javadoc

+ base=javadoc

+ '[' '!' -e /usr/bin/javadoc ']'

+ alternatives --install /usr/bin/javadoc javadoc /usr/java/jdk-11/bin/javadoc 20000

+ for bin in "$JAVA_HOME/bin/"*

++ basename /usr/java/jdk-11/bin/javap

+ base=javap

+ '[' '!' -e /usr/bin/javap ']'

+ alternatives --install /usr/bin/javap javap /usr/java/jdk-11/bin/javap 20000

+ for bin in "$JAVA_HOME/bin/"*

++ basename /usr/java/jdk-11/bin/jcmd

+ base=jcmd

+ '[' '!' -e /usr/bin/jcmd ']'

+ alternatives --install /usr/bin/jcmd jcmd /usr/java/jdk-11/bin/jcmd 20000

+ for bin in "$JAVA_HOME/bin/"*

++ basename /usr/java/jdk-11/bin/jconsole

+ base=jconsole

+ '[' '!' -e /usr/bin/jconsole ']'

+ alternatives --install /usr/bin/jconsole jconsole /usr/java/jdk-11/bin/jconsole 20000

+ for bin in "$JAVA_HOME/bin/"*

++ basename /usr/java/jdk-11/bin/jdb

+ base=jdb

+ '[' '!' -e /usr/bin/jdb ']'

+ alternatives --install /usr/bin/jdb jdb /usr/java/jdk-11/bin/jdb 20000

+ for bin in "$JAVA_HOME/bin/"*

++ basename /usr/java/jdk-11/bin/jdeprscan

+ base=jdeprscan

+ '[' '!' -e /usr/bin/jdeprscan ']'

+ alternatives --install /usr/bin/jdeprscan jdeprscan /usr/java/jdk-11/bin/jdeprscan 20000

+ for bin in "$JAVA_HOME/bin/"*

++ basename /usr/java/jdk-11/bin/jdeps

+ base=jdeps

+ '[' '!' -e /usr/bin/jdeps ']'

+ alternatives --install /usr/bin/jdeps jdeps /usr/java/jdk-11/bin/jdeps 20000

+ for bin in "$JAVA_HOME/bin/"*

++ basename /usr/java/jdk-11/bin/jfr

+ base=jfr

+ '[' '!' -e /usr/bin/jfr ']'

+ alternatives --install /usr/bin/jfr jfr /usr/java/jdk-11/bin/jfr 20000

+ for bin in "$JAVA_HOME/bin/"*

++ basename /usr/java/jdk-11/bin/jhsdb

+ base=jhsdb

+ '[' '!' -e /usr/bin/jhsdb ']'

+ alternatives --install /usr/bin/jhsdb jhsdb /usr/java/jdk-11/bin/jhsdb 20000

+ for bin in "$JAVA_HOME/bin/"*

++ basename /usr/java/jdk-11/bin/jimage

+ base=jimage

+ '[' '!' -e /usr/bin/jimage ']'

+ alternatives --install /usr/bin/jimage jimage /usr/java/jdk-11/bin/jimage 20000

+ for bin in "$JAVA_HOME/bin/"*

++ basename /usr/java/jdk-11/bin/jinfo

+ base=jinfo

+ '[' '!' -e /usr/bin/jinfo ']'

+ alternatives --install /usr/bin/jinfo jinfo /usr/java/jdk-11/bin/jinfo 20000

+ for bin in "$JAVA_HOME/bin/"*

++ basename /usr/java/jdk-11/bin/jjs

+ base=jjs

+ '[' '!' -e /usr/bin/jjs ']'

+ alternatives --install /usr/bin/jjs jjs /usr/java/jdk-11/bin/jjs 20000

+ for bin in "$JAVA_HOME/bin/"*

++ basename /usr/java/jdk-11/bin/jlink

+ base=jlink

+ '[' '!' -e /usr/bin/jlink ']'

+ alternatives --install /usr/bin/jlink jlink /usr/java/jdk-11/bin/jlink 20000

+ for bin in "$JAVA_HOME/bin/"*

++ basename /usr/java/jdk-11/bin/jmap

+ base=jmap

+ '[' '!' -e /usr/bin/jmap ']'

+ alternatives --install /usr/bin/jmap jmap /usr/java/jdk-11/bin/jmap 20000

+ for bin in "$JAVA_HOME/bin/"*

++ basename /usr/java/jdk-11/bin/jmod

+ base=jmod

+ '[' '!' -e /usr/bin/jmod ']'

+ alternatives --install /usr/bin/jmod jmod /usr/java/jdk-11/bin/jmod 20000

+ for bin in "$JAVA_HOME/bin/"*

++ basename /usr/java/jdk-11/bin/jps

+ base=jps

+ '[' '!' -e /usr/bin/jps ']'

+ alternatives --install /usr/bin/jps jps /usr/java/jdk-11/bin/jps 20000

+ for bin in "$JAVA_HOME/bin/"*

++ basename /usr/java/jdk-11/bin/jrunscript

+ base=jrunscript

+ '[' '!' -e /usr/bin/jrunscript ']'

+ alternatives --install /usr/bin/jrunscript jrunscript /usr/java/jdk-11/bin/jrunscript 20000

+ for bin in "$JAVA_HOME/bin/"*

++ basename /usr/java/jdk-11/bin/jshell

+ base=jshell

+ '[' '!' -e /usr/bin/jshell ']'

+ alternatives --install /usr/bin/jshell jshell /usr/java/jdk-11/bin/jshell 20000

+ for bin in "$JAVA_HOME/bin/"*

++ basename /usr/java/jdk-11/bin/jstack

+ base=jstack

+ '[' '!' -e /usr/bin/jstack ']'

+ alternatives --install /usr/bin/jstack jstack /usr/java/jdk-11/bin/jstack 20000

+ for bin in "$JAVA_HOME/bin/"*

++ basename /usr/java/jdk-11/bin/jstat

+ base=jstat

+ '[' '!' -e /usr/bin/jstat ']'

+ alternatives --install /usr/bin/jstat jstat /usr/java/jdk-11/bin/jstat 20000

+ for bin in "$JAVA_HOME/bin/"*

++ basename /usr/java/jdk-11/bin/jstatd

+ base=jstatd

+ '[' '!' -e /usr/bin/jstatd ']'

+ alternatives --install /usr/bin/jstatd jstatd /usr/java/jdk-11/bin/jstatd 20000

+ for bin in "$JAVA_HOME/bin/"*

++ basename /usr/java/jdk-11/bin/keytool

+ base=keytool

+ '[' '!' -e /usr/bin/keytool ']'

+ alternatives --install /usr/bin/keytool keytool /usr/java/jdk-11/bin/keytool 20000

+ for bin in "$JAVA_HOME/bin/"*

++ basename /usr/java/jdk-11/bin/pack200

+ base=pack200

+ '[' '!' -e /usr/bin/pack200 ']'

+ alternatives --install /usr/bin/pack200 pack200 /usr/java/jdk-11/bin/pack200 20000

+ for bin in "$JAVA_HOME/bin/"*

++ basename /usr/java/jdk-11/bin/rmic

+ base=rmic

+ '[' '!' -e /usr/bin/rmic ']'

+ alternatives --install /usr/bin/rmic rmic /usr/java/jdk-11/bin/rmic 20000

+ for bin in "$JAVA_HOME/bin/"*

++ basename /usr/java/jdk-11/bin/rmid

+ base=rmid

+ '[' '!' -e /usr/bin/rmid ']'

+ alternatives --install /usr/bin/rmid rmid /usr/java/jdk-11/bin/rmid 20000

+ for bin in "$JAVA_HOME/bin/"*

++ basename /usr/java/jdk-11/bin/rmiregistry

+ base=rmiregistry

+ '[' '!' -e /usr/bin/rmiregistry ']'

+ alternatives --install /usr/bin/rmiregistry rmiregistry /usr/java/jdk-11/bin/rmiregistry 20000

+ for bin in "$JAVA_HOME/bin/"*

++ basename /usr/java/jdk-11/bin/serialver

+ base=serialver

+ '[' '!' -e /usr/bin/serialver ']'

+ alternatives --install /usr/bin/serialver serialver /usr/java/jdk-11/bin/serialver 20000

+ for bin in "$JAVA_HOME/bin/"*

++ basename /usr/java/jdk-11/bin/unpack200

+ base=unpack200

+ '[' '!' -e /usr/bin/unpack200 ']'

+ alternatives --install /usr/bin/unpack200 unpack200 /usr/java/jdk-11/bin/unpack200 20000

+ java -Xshare:dump

narrow_klass_base = 0x0000000800000000, narrow_klass_shift = 3

Allocated temporary class space: 1073741824 bytes at 0x00000008c0000000

Allocated shared space: 3221225472 bytes at 0x0000000800000000

Loading classes to share ...

Loading classes to share: done.

Rewriting and linking classes ...

Rewriting and linking classes: done

Number of classes 1218

    instance classes   =  1158

    obj array classes  =    52

    type array classes =     8

Updating ConstMethods ... done. 

Removing unshareable information ... done. 

Scanning all metaspace objects ... 

Allocating RW objects ... 

Allocating RO objects ... 

Relocating embedded pointers ... 

Relocating external roots ... 

Dumping symbol table ...

Dumping objects to closed archive heap region ...

Dumping objects to open archive heap region ...

Relocating SystemDictionary::_well_known_klasses[] ... 

Removing java_mirror ... done. 

mc  space:      8192 [  0.1% of total] out of     65536 bytes [ 12.5% used] at 0x0000000800000000

rw  space:   3847072 [ 32.0% of total] out of   3866624 bytes [ 99.5% used] at 0x0000000800010000

ro  space:   7157720 [ 59.5% of total] out of   7208960 bytes [ 99.3% used] at 0x00000008003c0000

md  space:      2560 [  0.0% of total] out of     65536 bytes [  3.9% used] at 0x0000000800aa0000

st0 space:    413696 [  3.4% of total] out of    413696 bytes [100.0% used] at 0x00000007bfe00000

oa0 space:    212992 [  1.8% of total] out of    212992 bytes [100.0% used] at 0x00000007bfc00000

bm  space:    196616 [  1.6% of total] out of    196616 bytes [100.0% used] at 0x0000000000000000

total    :  11642232 [100.0% of total] out of  12029960 bytes [ 96.8% used]

--> da71e82bb89b

[2/2] STEP 11/18: COPY create.xsl             /root/

--> 7e6a21280277

[2/2] STEP 12/18: COPY create-oracle.xsl      /root/ 

--> 70ce71ca131a

[2/2] STEP 13/18: COPY context.xml            /root/

--> 5737d66b664d

[2/2] STEP 14/18: COPY tomcat-users.xml       /root/

--> 6974c75f3619

[2/2] STEP 15/18: COPY setup-oracle-driver.sh /root/ 

--> 600a9b799e04

[2/2] STEP 16/18: EXPOSE 8080

--> 124633fb3711

[2/2] STEP 17/18: WORKDIR $CATALINA_HOME

--> 702c9203642e

[2/2] STEP 18/18: CMD ["/opt/tomcat/bin/catalina.sh","run"]

[2/2] COMMIT oracle-rdf4j

--> 1ecb06258ada

Successfully tagged localhost/oracle-rdf4j:latest

1ecb06258ada9def714b94ab36bac57cb082aa203fd3e8d678266fd26ca3724a

rdf4j % 


Eclipse RDF4Jのアプリケーションとして、rdf4j-server.warおよびrdf4j-workbench.warを/opt/tomcat/webapps/以下に配置していますが、これらはTomcatを起動しないとデプロイされません。また、Oracle Graph Adapterはrdf4j-serverおよびrdf4j-workbenchがデプロイされていないとインストールできません。

作成したコンテナ・イメージoracle-rdf4jを元に、コンテナmy-ora-rdf4jの作成と実行をします。最初の実行では、Oracle Graph Adapterはインストールされていません。

podman run -d --name my-ora-rdf4j -p 8080:8080 oracle-rdf4j

rdf4j % podman run -d --name my-ora-rdf4j -p 8080:8080 oracle-rdf4j

b57cea947f34c54156c109bddea590344f75ee20afe0dcbf2c693bb49133c32f

rdf4j % 


Tomcatはホスト・ポート8080で接続の待ち受けをしています。以下のURLにアクセスし、RDF4J workbenchにアクセスします。


New repositoryを開きます。Typeの選択肢に、まだOracleはありません。


RDF4J workbenchにはアクセスできているので、RDF4Jのデプロイは完了しています。

Oracle Graph Adapterをインストールし、コンテナを再起動します。

podman exec my-ora-rdf4j sh /tmp/setup-oracle-driver.sh
podman restart my-ora-rdf4j

rdf4j % podman exec my-ora-rdf4j sh /tmp/setup-oracle-driver.sh

rdf4j % podman restart my-ora-rdf4j

my-ora-rdf4j

rdf4j % 


以上でOracle Graph Adapter for Eclipse RDF4Jの組み込みは完了です。

先ほどと同様にRDF4J workbenchのNew repositoryを開きます。

TypeからOracleを選択できるようになっています。


以上で、Oracle RDF4J Graph Adapterが組み込まれたEclipse RDF4Jのコンテナを作成することができました。