問題タブ [osgi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Eclipse OSGIアクティベーターを相互に継承させるのは良い考えですか?
さまざまな製品を構築するための共通のeclipse/osgiコードプラットフォームがある場合、共通のコードからアクティベーターを継承できますか/継承する必要があります
例えば
org.test.common.PluginActivator
org.test.common.ui.UIPluginActivator
org.test.product1.Product1PluginActivator
org.test.product1.ui.Product1UIPluginActivator
org.test.product2.Product2PluginActivator
org.test.product2.ui.Product2PluginActivator
すべてのUIアクティベーターを共通のものから継承させたいのですが、非UIアクティベーターについても同じです。startメソッドはすべてsuperを呼び出します...しかし、これが悪いosgi /バンドルの練習であるのか、それとも問題を引き起こす可能性があるのか疑問に思います。
誰かがこれについて何かアイデア/意見を持っていますか?
java - バンドルのアクティベーターが無効です
Eclipseで簡単なプラグインを作成しようとしています。アプリケーションを実行すると、ログファイルに次のエラーが表示されます。
org.osgi.framework.BundleException:バンドルorg.xyのアクティベーターorg.xyのアクティベーターが無効です。
このエラーについて何か考えがありますか?
java - OSGI 環境でのシングルトンの移行ソリューション
私は、各アプリケーションが独自の war ファイルにある Java EE 環境で作業しています。各アプリケーション war ファイルの WEB-INF/lib には、すべてのアプリケーションで共有される共通の jar があります。この共通の jar には、コード内の多くのポイントからアクセスされるいくつかのシングルトンが含まれています。war ファイルの境界により、各アプリケーションには独自のシングルトン インスタンスがあります。各アプリケーションでいくつかのシングルトンを異なる方法で構成したいので、これが現在の運用方法です。
現在、OSGi 環境に移行しています。各バンドルには独自のクラス ローダーがあるため、このソリューションは機能しなくなります。そのため、バンドル「common.jar」にある MySingleton にバンドル「appA.jar」またはからアクセスしようとすると、 bundle "appB.jar" 同じインスタンスを取得します。
バンドルごとにシングルトンの異なるインスタンスが「必要」であることを思い出してください。(皮肉に聞こえるかもしれませんが)
理想的な解決策は、これらのシングルトンに依存しないようにコードを修正することだと思いますが、スケジュールが厳しいため、バンドル全体のシングルトンを使用できるようにする何らかの移行ソリューションを提案できるかどうか疑問に思っていました。それらのそれぞれは、バンドルごとに構成できます。
eclipse - 外部化された plugin.xml 文字列は、下流のプラグインで使用できますか?
プラグイン共通がある場合、プラグイン A と B は別々のプラグイン/製品であり、どちらもプラグイン共通に依存します。
plugin common では、plugin.xml の文字列を外部化します。これにより、%bundle-vendor = "My Company Name" が得られます。
ダウンストリーム プラグイン A と B で、ベンダーに共通の bundle-vendor プロパティを使用できますか。共通のプラグイン ID を先頭に追加しようとしましたが、うまくいきませんでした。これは可能でしょうか?
java - OSGI - バンドルに必要なサードパーティ JAR の処理
私は OSGI 開発を始めたばかりで、依存する JAR を処理する最善の方法を理解するのに苦労しています。
つまり、バンドルを作成する場合、サードパーティの JAR をいくつか使用する必要がある可能性があります。OSGI にデプロイするバンドル JAR を作成すると、明らかにこれらのサードパーティ JAR が含まれていないため、バンドルは実行されません。
これらの JAR をバンドルに変換し、OSGI コンテナーにもデプロイするという 1 つのオプションがあることを理解しています。ただし、1 つのバンドルでのみ使用する必要がある場合、これは理想的ではないようです。
これに対する最善の解決策は何ですか?JAR をバンドル JAR 内に埋め込むことはできますか? もしそうなら、これは妥当なアプローチですか?
java - OSGi と依存性注入の関係は何ですか
彼らはお互いに何ですか?
- 仕様と実装?
- 競合他社?
- 無関係?
osgi - リモート OSGI サービスの作業例
私はOSGIでプログラミングするのが初めてです。クライアント/サーバーのosgiサービス呼び出しの実例を教えてください。
過去2週間、これを達成しようとしましたが、成功しませんでした。
私のサービスは、同じマシンの Eclipse インスタンスによって検出および実行されていますが、別のマシンから同じことを試みると失敗します。
どんな助けでも大歓迎です。
ありがとう。
java - OSGI - バンドル全体の静的メソッド呼び出し
bnd を使用して OSGI バンドルに変換したサードパーティの JAR があります。自分のバンドルから使用するために呼び出す必要があるコードは、次のようになります。
問題を引き起こしているように見えるのは、最初の行、つまり静的メソッド呼び出しです。標準の JAR を使用する OSGI コンテナーの外部では、これは正常に機能します。しかし、OSGI の内部では、3 行目に登録キーが設定されていないというエラーが表示されます。
このようなバンドル間での静的メソッド呼び出しに問題はありますか? 静的コンテキストがバンドル間で共有されていないかのようです。
java - JavaOSGi集中型ネットワーク構成
OSGiモデルに基づいたアプリを作成したいと思っています。この要素の1つは、ネットワークアクセスです(最初はhttpとobr)
ネットワーク構成(プロキシ、暗号化など)を、アプリの残りの部分が呼び出すことができる単一のバンドルに一元化する方法を探しています。
誰かがこれをした/アイデアを得ましたか?
ありがとう
java - OSGiバンドル内にDLLを(JNAを使用して)ロードする
OSGiは私のDLLファイルを見つけることができず、その理由を理解できないようです。
foo.dll
現在、バンドルのルートにDLLファイル( )がありますが、libs
ディレクトリにも入れてみました。
問題のバンドルのマニフェストは次のようになります。
次に、JNAインターフェイスでloadLibraryを実行します(ドキュメントに従って)。
次に、別のクラスでJNAインターフェイスを使用しようとします
JNAを別のバンドル(com.sun.jnaと上記でインポートした他のパッケージをエクスポートする)で提供していますが、ここで定義したバンドルでパッケージ化してみました(その場合はクラスパスに追加しました)。
も指定してみましBundle-NativeCode: /foo.dll
た。
また興味深いことに、これらは関連するOSGiプロパティです(私はこれを使用してプルアップしましたgetprop
)
このすべての後でも(そして私が行ったすべての試行で)、私は常に次のエラー(およびスタックトレースは表示されていません)で終わります:
...それで私は何が欠けていますか?
編集:私は、JNAインターフェイスコードと、JUnitテストプログラムの一部として通信するDLLをテストし、成功したことにも注意する必要があります。
編集2:ライブラリを呼び出しているクラスにこのコードを追加すると、JNAはライブラリを見つけることができるようです(Native.loadLibrary
後で呼び出されたとき)。マニフェストのBundle-NativeCodeディレクティブに基づいて、この呼び出しを回避できるはずです。明らかに、ライブラリがロードされると、Native.loadLibraryはその既存のインスタンスを取得しますが、この非常に順序固有の戦術に依存したくないのです。