OpenDolphin: java 21 / wildfly 34 への移行
これまで java 17、wildfly 27 で運用していたが、java 21、wildfly 34 へ移行した
wildfly 34 の準備
wildfly の github から branch 34.x を選択,"Download Zip" して解凍する。作業時点ではこれで 34.0.1.Final がダウンロードされた。
mac で wildfly 34 のビルド
brew をアップデートして mvn と ant を最新にしておく。
$ brew update ; brew upgrade
wildfly の build
$ mvn install [INFO] Scanning for projects... Downloading from jboss-public-repository-group: https://repository.jboss.org/nexus/content/groups/public/org/wildfly/core/wildfly-core-parent/26.0.1.Final/wildfly-core-parent-26.0.1.Final.pom Downloaded from jboss-public-repository-group: https://repository.jboss.org/nexus/content/groups/public/org/wildfly/core/wildfly-core-parent/26.0.1.Final/wildfly-core-parent-26.0.1.Final.pom (123 kB at 73 kB/s) Downloading from jboss-public-repository-group: https://repository.jboss.org/nexus/content/groups/public/org/jboss/jboss-parent/40/jboss-parent-40.pom Downloaded from jboss-public-repository-group: https://repository.jboss.org/nexus/content/groups/public/org/jboss/jboss-parent/40/jboss-parent-40.pom (76 kB at 106 kB/s) Downloading from jboss-public-repository-group: https://repository.jboss.org/nexus/content/groups/public/io/netty/netty-bom/4.1.112.Final/netty-bom-4.1.112.Final.pom Downloading from central: https://repo.maven.apache.org/maven2/io/netty/netty-bom/4.1.112.Final/netty-bom-4.1.1 : : [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 20:59 min [INFO] Finished at: 2024-10-25T14:19:47+09:00 [INFO] ------------------------------------------------------------------------
これで wildfly-34.0.1.Final-SNAPSHOT ができる。WildFly 27.0.2 と同じく,full distributable build が欲しい場合は,build/target ではなく,dist/target の方を使う必要がある。
wildfly 34.0.1 のセットアップ
- ./standalone.sh -b 0.0.0.0 で立ち上げて,./add-user.sh で管理ユーザ登録
- JDBC の登録(ドライバは postgresql-42.7.4.jar),data-source の作成,パスワード登録。
$ ./jboss-cli.sh --connect [standalone@localhost:9990 /] module add --name=org.postgres --resources=~/Downloads/postgresql-42.7.4.jar --dependencies=javax.api,javax.transaction.api [standalone@localhost:9990 /] /subsystem=datasources/jdbc-driver=postgres:add(driver-name="postgres",driver-module-name="org.postgres",driver-class-name=org.postgresql.Driver) [standalone@localhost:9990 /] data-source add --jndi-name=java:jboss/datasouces/DolphinDS --name=DolphinDS --connection-url=jdbc:postgresql://localhost/dolphin --driver-name=postgres --user-name=dolphin [standalone@localhost:9990 /] /subsystem=datasources/data-source=DolphinDS:write-attribute(name=password, value=dolphin) [standalone@localhost:9990 /] quit
ライブラリのアップデート
WildFly 34 に合わせて、ライブラリをアップデートする。
- Hibernate 6.6.1.Final
- Hibernate Search 7.2.1.Final
- Resteasy 6.2.10.Final
- Jackson 2.17.0
- Postgresql 42.7.4
移行に必要な書き換え
前回やらかしたので、今回はマイグレーションガイド読んだが、Hibernate 6 のままなので、多分、罠はないようだった。
- SearchPredicateFactory#bool(Consumer) が非推奨になり、f.bool().with(〜) か、.where ((f, root) -> ) に書き換え推奨されていたので、書き換えた。where ( (f, root) -> ) の方が、一体わかりやすい。
- websocket が 90秒でタイムアウトするようになった(wildfly 28 かららしい)。standalone.xml の該当箇所に read-timeout="0" write-timeout="0" を挿入すると、タイムアウトしなくなる。
<http-listener name="default" socket-binding="http" redirect-socket="https" enable-http2="true" read-timeout="0" write-timeout="0"/>
- クライアントで使っていた javax.mail は、provided scope の場合は jakarta.mail-api、実体が欲しい場合は angus.mail を使うように変わっていた
Opensearch は最新版の 2.17.1 に移行
- ubuntu で java 21 をインストール
$ sudo apt install openjdk-21-jdk-headless $ sudo update-alternatives --config java alternative java (/usr/bin/java を提供) には 2 個の選択肢があります。 選択肢 パス 優先度 状態 ------------------------------------------------------------ * 0 /usr/lib/jvm/java-21-openjdk-amd64/bin/java 2111 自動モード 1 /usr/lib/jvm/java-17-openjdk-amd64/bin/java 1711 手動モード 2 /usr/lib/jvm/java-21-openjdk-amd64/bin/java 2111 手動モード
- レポジトリがないので、直接ダウンロードサイトから tarball を取ってくる
$ tar xvzf opensearch-2.17.1-linux-x64.tar.gz $ ln -s opensearch-2.17.1 opensearch
- 初期インストールのプラグインは全部消す
$ cd opensearch $ rm -rf plugins/*
- プラグインインストール
$ ./bin/opensearch-plugin install analysis-kuromoji $ ./bin/opensearch-plugin install analysis-icu
- config/opensearch.yml を設定して起動してみる
$ vi ./config/opensearch.yml cluster.name: opensearch_dolphin path.data: /home/dolphin/opensearch/var/lib/opensearch path.log: /home/dolphin/opensearch/var/log/opensearch $ ./bin/opensearch WARNING: A terminally deprecated method in java.lang.System has been called WARNING: System::setSecurityManager has been called by org.opensearch.bootstrap.OpenSearch (file:/home/dolphin/opensearch-2.17.1/lib/opensearch-2.17.1.jar) :
- インデックスは、前バージョンから var/lib/opensearch/nodes をコピーしてそのまま使える
wildfly 起動
8:20:55,954 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0025: WildFly 34.0.1.Final-SNAPSHOT (WildFly Core 26.0.1.Final) started in 71423ms - Started 640 of 824 services (328 services are lazy, passive or on-demand) - Server configuration file in use: standalone.xml - Minimum feature stability level: community
その他
- java 21 になって、メモリリーク?はなくなった。
- 今回、依存性管理を pom.xml から gradle + kotlin に移行した。苦手の xml から開放されてよかった。
- パッケージは jpackage から conveyor に変更した。conveyor の方が少し速くて、しかも mac で windows 用の msix が作れる。ちなみに、windows で msix するには、オレオレ証明書のインストールが必要。
- あと、conveyor でバージョン番号が通りやすいように、OpenDolphin-1.3.0 はプロジェクト名として settings.gradle.kts に固定して、バージョン番号は、21.0 を gradle.properties に設定して、これをインクリメントしていくことにした。
WildFly アップデート記録
- 2008年 JBossAS 4.0.5
- 2009年 JBossAS 4.2.3
- 2010年 JBossAS 5.1.0
- 2013年 JBossAS 7.1.4
- 2015年 WildFly 8.2.1
- 2017年 WildFly 10.2.0
- 2019年 WildFly 18.0.1
- 2021年 WildFly 25.0.2
- 2023年 WildFly 27.0.2
- 2024年 WildFly 34.0.1
« WebORCA オンプレ版に移行 | トップページ | OrcaController オルコン »
「OpenDolphin」カテゴリの記事
- 運用17年目のまとめ(2025.02.03)
- IME on/off の切換 - その2(2024.12.02)
- OrcaController オルコン(2024.11.28)
- OpenDolphin: java 21 / wildfly 34 への移行(2024.11.08)
- IME on/off の切り替え(2024.09.03)