問題タブ [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.

0 投票する
2 に答える
931 参照

java - Eclipse rcp クラスローダーの地獄: 移動されたクラスはコンパイル時にまだ表示されますが、実行時には表示されなくなりました

Eclipse 3.5 rcp アプリケーションで奇妙で新しい問題が発生しました。すべてが正常に機能した後、実行中のシステムを変更し、1 つのクラスを 1 つのプラグインから依存プラグインに移動しました。大きな問題はありませんが、突然、アプリケーションがクラスが見つからないという例外で不平を言います (または NoClassDefFoundError - 正確にはわかりませんが、調べて投稿を編集します...)

私は二重、三重、... 知っていることをすべてチェックし、マニフェストに正しいバージョン番号の依存関係が含まれていること、およびパッケージが他のプラグインで正しくエクスポートされていることを確認しました。Eclipse jdk は文句を言いません (コンパイラ エラー/警告はありません) が、クラスがインスタンス化されるところまでデバッグし、'CTRL+SHIFT+I' を使用して 'new MyClass()' ステートメントを検査すると、インスペクタのツールチップが表示されます、そのクラスを解決できないこと。

ヘルプ、ヒント、励ましのコメントは大歓迎です!

0 投票する
2 に答える
84 参照

java - OSGIhost jar (自体) を DS に登録するにはどうすればよいですか?

フェリックスを起動し、「宣言型サービス」バンドルにサービスを公開できるアプリケーションを作成しようとしています。しかし、私の「felix-starter」とサービスは事実上同じ瓶の中にあります。

私はosgi-host(Felix)とその他の両方を含むjarを想定しています。services には、'DS' に提供/要求されるサービスを記述した xml ファイルが含まれている必要があります。しかし、その XML をプログラムで DS バンドルにフィードすることが可能かどうかはわかりません (jar は webstart などによって既に読み込まれているため、ClassLoader が構成されています)。

それは何らかの形で可能ですか、それとも厄介なことになるでしょうか?

ありがとう

0 投票する
1 に答える
274 参照

java - OSGiの初期プロビジョニング、ZIPディクショナリエントリについて話しますか?

「初期プロビジョニングページ231」のosgiR4仕様では、

'リクエストの結果はZIPファイル(コンテンツタイプアプリケーション/ ZIP)である必要があります' ...'zipファイルには、テキスト、バイナリ、バンドル、またはバンドルURLの4種類の辞書エントリのみを含めることができます。タイプは、ZIPエントリの追加フィールドで指定されます。

単一の名前のファイルを持っている以外にZIPファイルを知りません。誰かがそのようなzipファイルを示す例を見つけましたか?

どうもありがとう!

0 投票する
1 に答える
136 参照

osgi - Felix 'pref' バンドルには 'log version >=1.3' が必要ですが、D/L 'log' bundle version = 1.0

Felix のダウンロード ページには、Log bundle version 1.0.0 と表示されます Preferences bundle version 1.0.2

ただし、設定にはログバンドルのバージョン >= 1.3 が必要です

「設定」がどのように機能するかを理解したいだけなので、ログ互換のバンドルは大歓迎です:)

よろしく。

0 投票する
4 に答える
887 参照

java - 大規模な OSGi アプリケーションの管理

私は、多数のバンドルを持つ大規模で成長中の OSGi アプリケーションを持っています。この種のアプリケーションを管理する最善の方法を知りたいです。現在、私は Eclipse と Maven を使用していますが、これは (maven-bundle-plugin を介して) バンドルを構築するのには最適ですが、今のところ、アプリケーション全体を管理することは容易ではありませんでした。

私がやりたいのは、起動できる 1 つの実行構成または 1 つの pom.xml を持ち、アプリケーション/プロジェクト全体をビルドして起動することです。また、デバッグに適したものを用意したいと考えています。

PAX Construct について聞いたことがあり、Eclipse にインストールしましたが、これまでのところほとんど役に立ちませんでした (正しく使用していない可能性があります)。

大規模な OSGi アプリケーションを正しく管理している人がいると確信しています。共有できるアドバイスは非常に役立ちます。

ありがとう、スティーブン

0 投票する
2 に答える
7683 参照

osgi - OSGiコンテナ内のバンドル間で非OSGiライブラリを共有するにはどうすればよいですか?

OSGiコンテナ内の複数のバンドル間でStrutsパッケージを共有しようとしたときに、この質問に出くわしました。バンドル内で依存関係が重複することと、バンドル間に新しい依存関係を導入することの両方を回避したかったのです(一方のバンドルが内部依存関係をエクスポートして、もう一方が共有できるようにすることで)。

Mavenを使用している場合、答えは非常に簡単であることがわかります。そうでない場合でも、Mavenソリューションを使用して、他のメカニズムで同じ結果を作成する方法を学ぶことができます。

プロジェクト中にこのアプローチが何度も役立つことがわかったので、ここに例を投稿します。

0 投票する
1 に答える
1807 参照

java - mangenはマニフェストに「Bundle-ManifestVersion:1」を追加しますが、felixは値1を受け入れないようです

'Mangen'を使用してjarを処理しましたが、これは機能しますが、マニフェストに次の行が追加されます

その後、Felix1.8.0は次のように文句を言います

バージョンを手動で2に変更すると、Felixはエラーなしでインストールされます。ただし、マニフェストにすでにBundle-ManifestVersion:2が含まれている場合でも、mangenはそれを1に変更します。

どんなアイデアでも大歓迎です

0 投票する
1 に答える
1306 参照

eclipse - eclipse/osgi アクティベーターは、コードがアクセスされる前に常に少なくとも 1 回呼び出されますか?

Eclipse (3.3) には、プラグインProviderに応じて、プラグインUserがあります。 プロバイダーにはアクティベーターがあります。プロバイダーのプラグイン エディターには、[クラスの 1 つが読み込まれたときにこのプラグインを有効にする] チェックボックスがあります。これをチェック/チェック解除すると、マニフェスト設定が変更されます: Eclipse-LazyStart が true/false に変わります。

私の質問は、チェックボックスがチェックされていない場合はアクティベーターが実行されない可能性があることを意味しますが、設定は、Eclipseでロードするかどうかに関係なく、アクティベーターが常に実行されることを意味します。

  1. アクティベーターがある場合、このチェックボックスに関係なく、ダウンストリーム プラグインがコードを呼び出す前に少なくとも 1 回実行されますか?
  2. このチェックボックスは、即時開始または遅延開始にのみ適用されますか?
0 投票する
2 に答える
1061 参照

eclipse - Eclipse の新しいプラグイン プロジェクト ウィザードは Eclipse のバージョンをターゲットにできますが、この情報はどこに保存されますか

Eclipse (3.3) では、新しいプラグイン プロジェクト ウィザードを開始すると、最初のページにターゲット プラットフォームが表示され、Eclipse のバージョンをターゲットにすることができます。

この情報は保存/使用されますか? もしそうならどこで使用されますか?

また、拡張機能を作成すると、plugin.xml が作成され、一番上に (私にとっては) :

このバージョンはどこから来たのですか? 拡張したばかりの拡張機能に依存していますか? 更新/変更されますか?