0

Raspberry PI 上の Eclipse Kura 内で実行される 3 つの異なる OSGI プラグイン (Eclipse プラグイン プロジェクトとして開発) を作成しました。2 つのプラグインは、共通して使用されるクラスを提供するライブラリとして動作しています。3 つ目のプラグインは、Kura が提供するメカニズムを使用してシリアル ポートと通信するサービスです。後者は、Kura の入門ページで説明されているように開発されています。2 つのライブラリ プラグインは、基本的なプラグイン プロジェクトです。

すべてが解決され、正しく開始され、期待どおりに動作しているように見えるので、それについて特別なことは何もありません。PI を再起動すると問題が発生し、もちろん OSGI エンジンも再起動します。2 つのライブラリ プラグインは、再起動によって削除されたようです。シリアル通信サービスは引き続き存在しますが、依存関係がないために開始できません。

私の質問は、再起動時にプラグインが削除される原因と、これを防ぐ方法を教えてください。この記事を読んでくれてありがとう!

4

2 に答える 2

0

明確化で述べているように、installコマンドは依存関係バンドルを追加するために使用されます。OSGi は通常永続的であるため、バンドルを何らかの方法 (installコマンドを使用する場合を含む) でインストールしても、それらは引き続き存在し、次に OSGi を起動したときに同じ状態になります。

これが機能するために、OSGi には「ストレージ」フォルダーがあります。これはプロパティを設定することで構成されorg.osgi.framework.storage、Equinox ではデフォルトで に設定され./configurationます。ランチャーがこのディレクトリをクリアして、OSGi が永続的な状態を失う可能性があります。

考えられる解決策は 2 つあります。

  1. OSGi ストレージ フォルダーをクリアしないでください。
  2. 必要なすべてのバンドルが常に含まれるように、ランチャー アプリケーションを構成します。

私は実際に両方を行うことをお勧めします。OSGi は永続的であることを意図しています。installしかし、アプリケーションを機能させるためにユーザーがコマンドを入力する必要があるのは、ユーザーフレンドリーではありません。

于 2015-12-30T18:14:45.257 に答える