そのため、昨日の朝の時点では、OSGi が何であるかさえわかりませんでした。OSGiは、私が何度も何度も目にする流行語にすぎなかったので、ようやくそれをブラッシュアップするための時間を確保しました。
それは実際には非常にクールなもののように思えるので、(記録として) 私はいかなる点でも反 OSGi ではなく、これは「OSGi バッシング」の質問でもないことを述べることから始めたいと思います。
結局のところ、OSGi は - 基本的に - Java Modularity のJSR 277JAR
に対処したようです。これは、特定のまれなケースで名前空間の解決とクラスローディングの問題につながる可能性があるファイル仕様に欠点があることを認識しています。OSGi は他にも多くの非常に優れた機能を備えていますが、私が確認できる限り、それが OSGi の最大の魅力 (またはその 1 つ) です。
私にとって - かなり新しい (ここ数年) Java EE 開発者として、私たちが 2011 年にいて、現在 Java 7 の時代に生きていること、そしてこれらのクラスローディングの問題がまだ存在していることは、まったく気が遠くなるようなことです。特に、1 つのアプリ サーバーに何百もの JAR が存在し、それらの多くが互いの異なるバージョンに依存し、すべて (多かれ少なかれ) 同時に実行されるエンタープライズ環境では.
私の質問:
私は OSGi に興味を持っていますし、OSGi が自分のプロジェクトに役立つかどうかを知りたいと思っていますが、座ってそれほど大きなことを学ぶ時間はありません。少なくとも今は。
では、これらの問題が発生した場合、OSGi 以外の開発者はどうすればよいのでしょうか? 現在存在するJava (Oracle/Sun/JCP) ソリューションは? なぜジグソーはJ7からカットされたのですか? Jigsaw が来年 J8 に実装されるというコミュニティの確証はありますか? まだ Java プラットフォームの一部ではありませんが、あなたのプロジェクトにジグソーを入手することは可能ですか?
ここで私が求めているのは、パニック、陰謀、顔の手のひらの組み合わせだと思います。OSGiが何であるかをようやく理解した今、ジグソーのようなものが実現するのに20年以上かかった方法と、それがリリースからどのように缶詰にされた可能性があるかを「理解」していません。それは基本的なようです。
また、開発者として、OSGi を除いて、自分のソリューションが何であるかについても興味があります。
また、注:これが「純粋なプログラミング」タイプの質問ではないことはわかっていますが、鼻が曲がって形が崩れる前に、(記録のために)意図的にこの質問をしたことを述べたいと思いましたそれで。それは、私が仲間の SOer に最大限の敬意を払っているからです。毎日ここに潜んでいるのを目にする「IT の神々」から、アーキテクチャ レベルの答えを探しています。
ただし、SO の質問には何らかのコード セグメントを使用することを絶対に主張する人のために、次のように説明します。
int x = 9;
(この OSGi/Jigsaw/classloader/namespace/JAR 地獄のようなものについて検討できる人に感謝します!)