だから、昨日の朝の時点で、OSGiが何であるかさえ知りませんでした。OSGiは私が何度も何度も何度も作っていくのを見ていた流行語だったので、ついにそれをブラッシュアップするための時間を取っておきました。
それは実際にはかなりクールなもののように思われるので、私は(記録のために)私がOSGiに対していかなる点でも反抗的ではないこと、およびこれがいくつかの「OSGi-bashing」の質問ではないことを述べることから始めたいと思います。
結局のところ、OSGiは基本的にJava ModularityのJSR 277に対応しているようですがJAR
、特定の状況で名前空間の解決やクラスローディングの問題につながる可能性のあるファイル仕様の欠陥が認識されています。OSGiは他にも多くの本当にクールなことを行いますが、私が確認できることから、それはその最大の魅力(またはその1つ)です。
私にとって-かなり新しい(数年後の)Java EE開発者として、私たちが2011年に現在Java 7の時代に生きており、これらのクラスローディングの問題が依然として存在していることは、本当に心を揺さぶられます。特に、1つのアプリケーションサーバーに何百ものJARがあり、それらの多くが互いに異なるバージョンに依存し、すべてが(多かれ少なかれ)同時に実行されているエンタープライズ環境では。
私の質問:
私がOSGiに関心があるのと同じくらい、そしてそれが私のプロジェクトに役立つかどうか、またそれが自分のプロジェクトに役立つかどうかを知りたいと思っているのと同じくらい、ただ座ってそのような大きなことを学ぶ時間はありません。少なくとも今。
では、これらの問題が発生した場合、OSGi以外の開発者は何をすべきでしょうか?どのようなJavaのいずれかの場合には(オラクル/日/ JCP)ソリューションは、現在、存在しますか?なぜジグソーパズルはJ7から切り取られたのですか?Jigsawが来年J8で実装されるコミュニティはどれほど確実ですか?Javaプラットフォームの一部ではありませんが、プロジェクトのJigsawを入手することは可能ですか?
私がここで尋ねているのは、パニック、陰謀、そして顔の組み合わせです。OSGiが何であるかがようやく理解できたので、ジグソーのようなものが実現するまでに20年以上かかり、それがリリースから缶詰にされた可能性があることを "理解"しません。それは基本的なようです。
また、開発者として、私のソリューションがOSGiではないことにも興味があります。
また、注:これは「純粋なプログラミング」タイプの質問ではないことを知っていますが、あなたの一部の人があなたの鼻を形から崩す前に、私はこの質問を故意に付けたと述べておきたいと思いますそう。それは、仲間のSOersを最大限に尊敬しているだけであり、私が毎日ここに潜んでいるのを見ている "ITの神々"からの建築レベルの答えを探しているからです。
しかし、SOの質問はいくつかのコードセグメントで裏付けられると絶対に主張する皆さんのために:
int x = 9;
(このOSGi / Jigsaw / classloader / namespace / JAR hell stuffに参加できる人に感謝します!)