問題タブ [blueprint-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.
dependency-injection - バンドル内のブループリント依存性注入
ブループリント(Aries)を使用して実行時に依存関係を解決したい場合があり、実装はそれを必要とする同じバンドルで定義されており、他のバンドルでは使用されません。単体テスト時に依存関係を簡単にモックできるように、このバンドル内の実装を抽象化しています。このサービスを独自のバンドルに入れると、まとまりが悪くなります。
実行時に、ブループリントは依存関係を待機していると言います。ブループリントを使用して、バンドル内の依存性注入を実現するにはどうすればよいですか?
編集
@ christian-scheiderからの提案を試しましたが、BlueprintはまだModelEntityMapperを満たすサービスを待っています
XML
ログ
Bundle rest-cxf-server is waiting for dependencies [(objectClass=org.example.blog.rest.cxf.server.model.ModelEntityMapper)]
eclipse-virgo - Maven-Pax-Plugin と Gemini Blueprint /Spring DM
次の状況: OSGi アプリケーションを開発しており、最終製品は Eclipse Virgo を使用する必要があります。
OSGi と Spring と連絡を取るために、私は現在 OSGi Blueprint の概念を調査しています。maven-pax-plugin と Gemini Blueprint/Spring-DM を使用しようとしていますが、mvn pax:provision を実行すると、次のエラーが発生します。
では、pax で Gemini Blueprint または Spring DM を有効にするにはどうすればよいでしょうか?
java - Blueprint List of Services: Wait for all services
私は Eclipse Virgo/Gemini ブループリントを使用しており、複数の実装を持つインターフェイスを持っています。
実装 1:
実装 2:
実装 3:
そしてクライアント:
startUp メソッドは、リスト全体を反復処理して単純な文字列を出力する単純なメソッドです (テスト目的)。
問題は、クライアント バンドルをインストールすると、ツリー サービスのうち 2 つだけがリストに表示されることです。バンドルを停止して再度開始すると、3 つのサービスすべてがリストに表示されます。
アイデア/提案はありますか?
リストに MyInterface に一致するすべてのサービスを含める必要があることを乙女座に伝えることは可能ですか?
追加情報が必要な場合は、お気軽にお問い合わせください
osgi - CamelコードをServiceMix(FuseESB)にデプロイするときにOSGiに要件org.wiring.package=org.hsqldbがありません
Camelコードをいくつか作成しましたが、WindowsでFuseESB v7.10にデプロイすると、ログに次の例外が発生します。
プロジェクトは、Blueprint OSGi xmlファイルを使用してBeanを定義し、Mavenを使用して(OSGiバンドルではなく)jarとしてビルドし、デプロイディレクトリにホットデプロイするため、FuseESBFABデプロイヤーによってデプロイされます。Maven POMのHSQLDBに明示的に依存していないため、これは推移的な依存関係であると思います。ただし、関連するバンドルと思われるものを次のようにインストールしようとしました。
osgi:install mvn:org.apache.servicemix.bundles / org.apache.servicemix.bundles.hsqldb / 1.8.0.10_2
このバンドルは、Karafコンソールでアクティブとして表示されます。
コマンドpackages:exportsを実行すると、正しい依存関係がこのバンドルによってエクスポートされることが示されているようです。
ただし、バンドルを開始できず、同じエラーが発生します。何か案は?
apache-camel - ServiceMix(FuseESB)は、jarの起動時にCameljavascriptサポートを見つけることができません
CamelルートをFuseESBにデプロイする場合、FuseESBがjarファイルを起動しようとすると、ログに次の例外が発生します。
これにより、バンドルは数分間猶予期間に入り、その後タイムアウトになり、ステータスは失敗に移行します。アプリケーションでjavascriptを使用していないことに注意してください。ただし、Camelコアのロードの一部としてロードされていると想定しています。
私のセットアップの詳細:
- 問題のコードは、OSGiブループリントxmlファイルを使用してBeanを定義して記述されています。
- コードは、OSGiバンドルではなく、jarとしてパッケージ化されています。
- コードはデプロイディレクトリにドロップされることでデプロイされるため、FABデプロイヤーによってデプロイされます。
関連するCamel機能がインストールされていると思います。
features:listからの出力:
osgi - Blueprint CXF serviceFactory: リクエストごとにインスタンスが必要
Apache Karaf、CXF、および Aries Blueprint を使用しています。
多数の JAX-RS サービスを定義するバンドルがあります。デフォルトでは、CXF はこれらのサービスをシングルトンにしますが、これはうまくいきません。各リクエストを処理するには、新しいインスタンスが必要です。
CXF ドキュメントを参照して、サービスの新しいインスタンスを返す JAX-RS ServiceFactories を作成しようとしました。ドキュメントには Spring の例があり、私は同等のブループリントを試みました。
ブループリントでエラーが発生しません
java - OSGiでは、サービス参照を渡すことは良い習慣ですか、それともバンドルはそれを独自に検索する必要がありますか?
私はこれらのバンドルを持っています:
- 通信サービスは通信サービスを提供します。
- 通信
Comm Service
は、を使用してメッセージを送受信する通信バンドルです。 - ポーリングは、マルチキャストモードでポーリングメッセージを送信します。
Communication
バンドルは飽和状態であり、私のアプローチは特定のアクションのために他のバンドルを実装することです-ポーリングバンドルはポーリングの送信を担当し、ポストカードバンドルはポストカードの送信などを担当します(ほんの一部の例)。
バンドルがポーリング/ポストカード/メッセージの送信作業を委任する必要がある場合に、サービスをバンドルComm Service
の入力パラメーターとして渡すアプローチはありますか?Poll
Communication
以下のスニペットは正しいですか?
通信バンドルコード:
Poll
または、 /Postcard
バンドルComm Service
が独自にサービスを取得できるようにするためのより良いアプローチですか?
spring - ブループリントを使用してSpringコンテキストをロードし、SpringBeanリファレンスをエクスポートする
OSGIの初心者です。当社は、Fuse ESBを展開コンテナーとして使用し、ブループリントをIOCとして使用することを決定しました。私が直面している問題は、さまざまなスプリングテクノロジーに多数のスプリングアプリケーションがあることです。簡潔にするために、スプリングバッチについて考えてみましょう。私たちはSpringBatchDSLとその動作方法に慣れています。同じSpringアプリケーションを使用して、ブループリントを介してロードする方法はありますか(GeminiではなくAriesブループリント)。また、Spring Beanを参照して、ブループリントを介してエクスポートすることもできますか?それは露骨な「いいえ」ですか、それとも可能であるとしても、あるIoCコンテナが別のコンテナ内にあることを非常に悪い習慣と見なして、私たちが試みるべきではないことですか?または、誰かが試みて成功した場合、そしてそれが実行可能である場合は、それを実行するためのいくつかの指針。
apache-camel - KarafのAriesブループリント-ブループリントは外部プロパティファイルを参照できますか
ActiveMQブループリントを使用してJMS接続プールをセットアップしています。また、Camelを使用していくつかの機能を提供しています。
を使用しorg.apache.camel.spring.spi.BridgePropertyPlaceholderConfigurer
て、ファイルの設定で外部プロパティファイルを使用できるようにしcamel-context
ます。
ブループリントを使用した同様のタイプの機能はありますか?
したがって、基本的に、$ {server.address}を、以下の構成のプロパティファイルから取得したプロパティに置き換えます。