yuuhayashi / citygml-osm

CityGMLデータをOSMデータに変換する
Other
19 stars 3 forks source link

Java17 対応 #123

Closed yuuhayashi closed 11 months ago

yuuhayashi commented 1 year ago

「citygml-osm」のJava実行環境に関する問題点

'citygml-osm'の動作条件ポリシー

本プロダクトは、「'JOSM'が動作する環境なら'citygml-osm'も動作する」というポリシーのもと、 "citygml-osm"のJava動作環境を「JOSM」のJava実行環境に合わせております。

「JOSM]の実行条件

2023/11/3現在の「JOSM」では「Java 11+」と表記されていますが、「Java 11+」の部分は「Azul Java 21」のページにリンクされており、「Java 21」が推奨されているように見えます。 image

また、「JOSM」を起動すると、起動画面に「Java 17 」が推奨されてい ます。 JOSM-Java17

JOSM README では、「JRE 8, or later.」となっており、'''JOSM’’’と同じ実行環境とする場合には、LTS版だけでも下記の Java バージョンに対応しなければならなくなります。

「citygml-osm」と Javaのバージョンとの関係

一方で、'citygml-osm'では、統合フレームワークに'Apache Camel'を利用しています。(Camelを利用しているおかげで貧弱なマシンでも100時間を超える処理を実行できるようになっています) ところが、Javaの実行環境によって、利用できる'Camel' のバージョンが異なります。

現行(citygml-osm v1.4.13 以前)では '''Camel 2.x''' を利用していたため、

'Camel'のバージョンをかえたパッケージをJavaの実行環境ごとにリリースすることで問題は解決するのですが、個人でこれをやるほどの労力をかけられない。というのが現実です。

現行の「citygml-osm」が対応しているJava実行環境を表にまとめると、

Java version citygml-osm
対応可否
JOSM
対応
コメント
Java 8 JOSMの動作環境
Java 11
Java 17 × JOSMが推奨している
Java 21 × 最新のJava。JOSMのwikiページで推奨されている

となっていますが、今のままでは「'''JOSMが推奨しているJava17では動作しない'''」ことになります。

'citygml-osm'の動作条件ポリシーの変更

「JOSM」が推奨している「Java 17」を動作条件とするように変更します。

Java version citygml-osm
対応可否
JOSM
対応
コメント
Java 8 × JOSMの動作環境
Java 11
Java 17 JOSMが推奨している
Java 21 × 最新のJava。JOSMのwikiページで推奨されている

となります。 現在のところ、Java21はサポート対象外となりますが、Camelの開発が進めば Java 21 もサポートされると見込まれます。

懸念点

yuuhayashi commented 11 months ago

v2.1.0 で対応しました。