問題タブ [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 - osgi: フラグメントは Eclipse pde の外で動作していません (エラーは表示されませんでした)
この問題のコンテキスト: OSGi および Eclipse プラットフォーム。
いくつかのフラグメントのホストであるバンドル (プラグイン) があります。フラグメントは、Eclipse の「実行構成」から開始した場合にのみ実行されます (プラグインの実行構成のプラグイン依存関係に追加します) が、Eclipse または Maven tycho プロジェクトを介してフラグメントをエクスポートしようとすると、フラグメントが機能しません。osgi のコンソールでは、競合 (osgi コマンド diag ) は見つかりませんでした。フラグメントは「解決済み」状態にあり、これは問題なく開始されたことを意味します。メソッド IStartup#earlyStartup() のフラグメント内のブレークポイント (これは、フラグメントへのエントリ ポイントです) がアクティブ化されていません。osgi のコンソールにエラーは表示されません...何もありません...
どんな手掛かり?何か不足していますか?
repository - Felix OBR リポジトリ リストを設定するには?
config.propertiesFelix のファイルで多数の OBR リポジトリを指定する方法はありますか? 実行時にリポジトリを追加できますが、再起動後に行う必要があります。
「環境設定サービス」は役に立たず、「バンドルリポジトリ」はそれを使用していないようです。
integration - 既存のアプリを同化しますか?
リッチ クライアント プラットフォームと OSGi フレームワークについていろいろと読みましたが、次の質問に行き詰まりました。既存のアプリケーション (Java ベースまたは Win32 ベース) を 1 つのアプリケーション ウィンドウに統合することは可能ですか?
さまざまな種類の (既存の) アプリケーションを 1 つのアプリケーション (Eclipse RCP を使用) に接続して、一般的なウィンドウ マネージャー機能 (ウィンドウのサイズ変更など) を提供し、さらにウィンドウ間通信などでそれを強化することを目指しています。
SWT を使用すると、(ちょっと) ネイティブに見えるアプリケーションを作成でき、OLE コンポーネントを使用していくつかの機能を統合できます。私が本当に知りたいのは、ウィンドウ全体を吸収して別の場所に統合できるかどうかです。
重要なポイントは...
- ビジュアル統合と
- リスニング方法論...
ありがとう
java - リモーティングとOSGi
OSGiコンテナー間またはOSGiコンテナー間でサービスを使用するためのエレガントな方法はありますか?
それも可能ですか?
たとえば、ローカルマシンにサービスインターフェイスがあるとします。リモートOSGiコンテナーのBundleContextを介してそのサービス・インターフェースにアクセスできるようにするために、どのような方法論/テクノロジーを使用できますか?
java - OSGI宣言型サービス(DS):サービスコンポーネントインスタンスを使用する良い方法は何ですか
EquinoxとEclipsePDEを使用してOSGIと宣言型サービス(DS)を使い始めたところです。
AとBの2つのバンドルがあります。バンドルAは、バンドルBによって消費されるコンポーネントを公開します。どちらのバンドルも、このサービスをOSGIサービスレジストリに再度公開します。
これまでのところすべてが正常に機能しており、Equinoxはコンポーネントを相互にワイヤリングしています。つまり、バンドルAとバンドルBは(デフォルトのコンストラクタを呼び出すことによって)Equinoxによってインスタンス化され、バインド/アンバインドメソッドを使用してワイヤリングが行われます。
さて、Equinoxがそれらのコンポーネント/サービスのインスタンスを作成しているので、このインスタンスを取得するための最良の方法を知りたいですか?
したがって、OSGIによってインスタンス化されないサードクラスのクラスがあると仮定します。
現在、次のオプションが表示されています。
1. ActivatorでServiceTrackerを使用してComponentBundleA.class.getName()のサービスを取得し(すでに試しましたが、機能しますが、かなりのオーバーヘッドがあるようです)、静的ファクトリメソッドを介して利用できるようにします。
2. activate()メソッドが呼び出されるとすぐに各コンポーネントが登録される、ある種のレジストリを作成します。
また
}
3.それらのインスタンスを持つosgi/equinox内の既存のレジストリを使用しますか?つまり、OSGIはすでにインスタンスを作成し、それらを相互に接続しているので、オブジェクトはすでにどこかにあります。しかしここで?どうすれば入手できますか?
結論 クラスWantsToUseComponentB(これはコンポーネントではなく、OSGIによってインスタンス化されません)はどこからComponentBのインスタンスを取得しますか?パターンやベストプラクティスはありますか?先ほど言ったように、ActivatorでServiceTrackerを使用することができましたが、それがなくても可能だと思いました。
私が探しているのは、実際にはSpringframeworkのBeanContainerのようなもので、Container.getBean(ComponentA.BEAN_NAME)のようなものを言うことができます。しかし、私はSpringDSを使いたくありません。
それが十分に明確だったことを願っています。それ以外の場合は、ソースコードを投稿して詳細を説明することもできます。
ありがとうクリストフ
更新: ニールのコメントへの回答:
元のバージョンに対してこの質問を明確にしていただきありがとうございますが、DSなどを使用して3番目のクラスを作成できない理由を説明する必要があると思います。
うーん、わかりません。方法はあるかもしれませんが、フレームワーク全体をリファクタリングしてDSに基づくようにし、「new MyThirdClass(arg1、arg2)」ステートメントがなくなるようにする必要があります。その方法はよくわかりませんが、DSのComponentFactoriesについて何か読んでいます。だから、する代わりに
私はするかもしれません
これを書いている時点では、ComponentFactoriesの使用方法は正確にはわかりませんが、これはある種の擬似コードであると思われます:)
ありがとうクリストフ
java - osgi + felix を使い始める
開始するには、 Felixのどのパッケージが必要ですか? ダウンロードページには無数のそれらがあります。
(ps は、OSGI の "Oscar" 参照フレームワークとは対照的に、Odd Couple + への参照の名前ですか? これは、チュートリアル ページの 1 つを読んだ後に思い浮かびました。
java - XML パーサー実装を OSGi サービスとして使用する
OSGi (Equinox プラットフォーム) を使用してアプリケーションを開発していますが、バンドルの 1 つで XML ファイルを解析する必要があります。これまでのところ、これを SAX (javax.xml.parsers.SAXParserFactory) で実装しており、プラットフォームから SAXParserFactory を取得したいと考えています。
私は、OSGi 標準が XMLParserActivator を提供して、JAXP 実装がそれ自体を登録できるようにしているのを見た ( http://www.osgi.org/javadoc/r4v41/org/osgi/util/xml/XMLParserActivator.html )。 SAXParserFactory をサービスとして提供するバンドルである必要があります。
しかし、SAXParserFactory を提供するサービスを見つけるために、どのバンドルを依存関係として追加すればよいかわかりませんでした。を使用してサービス参照を取得しようとしています
XML の構文解析はかなり一般的なことなので、利用可能な実装や、プラットフォームから XML パーサー サービスを取得するための他の手段があると思います。
どんな助けでも大歓迎です!
maven-2 - pom.xml で Maven プラグインを使用して pax-run
ファイルで指定できるMaven Pluginを使用してPax-Runnerタスクを実行するにはどうすればよいですか?pom.xml
つまり、Pax-Runner を使用してコマンドラインで次のことを実行できます (war ファイルを OSGi バンドルに変換するため)。
pom.xml ファイルでそれを実現するにはどうすればよいですか?
前もって感謝します!
java - OSGiの損益分岐点
最近、OSGiはホットな用語のようです。多くの利点が呼び出されます:
- 複雑さの軽減
- 再利用
- 簡単な展開
- バージョニング
(等)
私は非常に具体的なユースケースを求めています-中小規模のWebアプリケーション。OSGiはそれらにどのようなメリットをもたらしますか?それは実際に価値がありますか?