0

私は OSGI に基づく AEM 開発者として何人か働いてきましたが、これが私の初歩的な (そして少し時代遅れの) アイデアの由来です。新しい仕事で、AEM とはまったく関係のないプロジェクトで、私がしなければならないことは次のとおりです。

  • JDK8 に準拠したサードパーティ ライブラリに基づいてサービス ライブラリを構築する
  • それらを、JDK9 以降で実行されている Tomcat に Spring Web アプリとしてデプロイします。

サードパーティ ライブラリはライセンス ソフトウェアであり、特定の法的な行き詰まりのためアップグレードできません。Java API の問題が原因で、JDK9 での単純なデプロイメントは失敗します。

理論的には、バンドルされた依存関係として JDK8 ランタイム全体を含め、それを JDK9+ 準拠の OSGI ランタイム フレームワークに OSGI バンドルとしてデプロイします。

主なアイデアを捉えるために作成した小さな図を次に示します。 ここに画像の説明を入力

これは潜在的に機能しますか?理論的には、各 OSGI バンドルが独自のクラスローダーを使用するため、これが成り立つため、Java API の問題が原因でサードパーティ ライブラリが破損することはありません。また、fat (uber) jar を作成するために maven を使用する予定です。

私を悩ませているもう 1 つの質問: JDK を含む uber-jar を作成することは問題ですか? 以前に uber-jar を作成したことがありますが、JDK もどのように含めるかわかりません。その一部は正しくないようです。なにか提案を?

みんな、ありがとう!

4

1 に答える 1