8

誰かがosgiフレームワーククラスの使用方法の例を教えてもらえますか?私はそれらのクラスを使用する方法の手がかりを持っていません...

BR、

マーカス

4

6 に答える 6

8

これは、使用しているOSGi実装によって異なります。私はEclipseEquinoxを使用し、通常のJavaクラス内からフレームワークを開始します。Eclipse jar(org.eclipse.osgi_longversion.jarと呼ばれる)には、org.eclipse.core.runtime.adaptor.EclipseStarterと呼ばれるクラスがあります。これにより、OSGiフレームワークが起動します。

Properties props = new Properties();
// add some properties to config the framework
EclipseStarter.setInitialProperties(props);
BundleContext context = EclipseStarter.startup(new String[]{},null);

フレームワークを構成するには、いくつかのプロパティが必要です。ここで、文書化されたすべてのプロパティを確認できます。スタートアップを呼び出すと、受け取るBundleContextはシステムバンドルコンテキストであるため、ここからバンドルをインストール/開始/停止できます。

すべてのプロパティを設定した場合、startup()に引数を渡す必要はありません。

すべてのEquinoxおよびその他のバンドルは、EquinoxWebサイトからダウンロードできます。

于 2009-05-26T14:59:05.273 に答える
5

OSGi 4.1では、これは標準化されています。OSGiコンテナーを埋め込む方法を説明しているhttp://njbartlett.name/2011/03/07/embedding-osgi.htmlをご覧ください。

于 2011-03-10T22:13:30.407 に答える
2

この仕様では、OSGiフレームワークをインスタンス化、構成、および開始する方法は定義されていません。したがって、通常のJavaコードからOSGiフレームワークを実行することは、常に特定のフレームワーク実装(Equinox、Felix、Knopplerfishな​​ど)に固有です。

Apache Felix(オープンソースのOSGiフレームワーク)をアプリケーションに組み込むのはかなり簡単です。

詳細については、 http://felix.apache.org/site/launching-and-embedding-apache-felix.htmlを参照してください。

于 2009-05-24T22:16:34.077 に答える
2

プロジェクトequinox-headless-serviceを参照してください。equinoxを起動するコードがあります。

于 2009-05-25T16:17:49.863 に答える
1

http://www.theserverside.com/tt/articles/article.tss?l=OSGiforBeginnersを参照してください

于 2009-05-24T16:05:55.363 に答える
0

最近、EquinoxOSGiランタイムをJavaに埋め込む方法の簡単な概念実証を作成しました。詳細については、Githubhttps://github.com/sarxos/equinox-launcherで私のプロジェクトをフォローしてください。

于 2012-11-11T15:57:32.930 に答える