問題タブ [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.
eclipse - 歴史: なぜ Eclipse Foundation は OSGi を選んだのか?
当時、並行技術はありましたか? 他の技術やネイティブ (3.0 より前) の技術と比較した OSGi の利点は何ですか?
eclipse - OSGi SAT、アクティベーションの失敗にどう対処すればよいですか?
Eclipse OSGi Service Activator Toolkit は、バンドル間の依存関係の処理を簡素化するフレームワークを提供します。
org.eclipse.soda.sat.core.framework.BaseBundleActivator から派生させ、(たとえば) activate() メソッドをオーバーライドして、特定の初期化作業を行うことができます。
署名は保護されています void activate(){}
これは、「activate() が失敗した場合はどうすればよいのか?」という疑問につながります。何らかの理由で正しく初期化できないとします。例外をスローできません。メソッド シグネチャがそれを許可しません。
java - How can I filter OSGi service visibility?
OSGi employs a service-oriented architecture: Bundles register service objects, that other bundles consume. Service publishing and binding is managed by the framework. This decouples service providers from service users completely (except for the need to agree on a service interface).
Is there a way to limit (by configuration) what services are visible to what bundles ?
For example, if I have an HttpService, all bundles that feel like doing so can install servlets into it. I would like to make the HttpService not visible to selective bundles.
For extra credits: In addition to just filtering service registrations, the ability to modify registration properties. So that even if a bundle registers a Servlet with alias=/admin
, I can change that to alias=/somethingelse
for consumption by Pax Web Extender Whiteboard.
java - サーブレット フィルターと OSGi HttpService
私はorg.osgi.service.http.HttpService
、サーブレット フィルターの使用をサポートしていない OSGi ベースのアプリケーションに取り組んでいます。
サーブレット フィルターを使用できないことに気付く前に、いくつかの既存のフィルターを適用することを計画していました。これらのフィルターは、適切な HTTP ヘッダーを次のように設定します。
- 応答のキャッシュを防止する
X-UA-Compatible
ヘッダーを使用して IE8 でのレンダリングを制御する
ここでのオプションは何ですか? その技術は信頼できないmeta
ので、要素を使用してキャッシングを制御したくありません。要素を使用してヘッダーを設定することはおそらく受け入れられますが、別のアプローチにも興味があります。meta
X-UA-Compatible
java - Struts 2 は OSGi バンドルとして入手できますか?
複数の OSGi バンドル (一部は私のもの、一部はサードパーティ) で構成されるサーバー アプリケーションがあります。バンドルの 1 つは、Struts を使用した Web フロントエンドを提供します。必要な Struts ライブラリは、Web フロントエンド バンドル内にあります。
ここで、別の Web フロントエンドを提供する 2 つ目のバンドルを追加したいと考えています。これは、異なる依存関係と非常に異なるユース ケースを備えています。そのバンドルにも Struts を使用したいのですが、同じライブラリを 2 つのバンドルに入れたくありません。
OSGi では、Struts ライブラリを独自のバンドルに分離し、両方のバンドルからそれを使用することは問題ありません。しかし、そのようにパッケージ化された Struts は見つかりませんでした。
ちょっとググって、Struts のホームページを見ても、何も得られませんでした。Struts 内で OSGi コンテナーを実行するための Struts 用のプラグインを見つけることができましたが、それは私が望んでいるものではありません。
java - 通常のJavaコード内でOSGiフレームワークを実行する方法は?
誰かがosgiフレームワーククラスの使用方法の例を教えてもらえますか?私はそれらのクラスを使用する方法の手がかりを持っていません...
BR、
マーカス
java - OSGi構成管理サービスの既存の実装?
OSGiベースのアプリケーションでコンポーネントを構成するためのプライマリAPIとして構成管理サービスを使用することを検討しています。既存の実装を再利用できればいいので、最も人気のある実装を調査して評価しようとしています。私はあることを知っています:
- Apache Felix構成管理者(org.apache.felix.cm)
- Equinox Config Admin(org.eclipse.equinox.cm)
考慮すべき他の実装はありますか?
また、これらの実装に関する適切なドキュメントを見つけることができませんでした。私は主に実装固有の詳細に興味があります。たとえば、さまざまな実装が構成データをどのように永続化するのか疑問に思っていました(たとえば、複数のプロパティファイル?XMLファイル?複数のXMLファイル?データベース?、...)。
java - OSGiデプロイメント管理サービスの状況
OSGiアプリケーションは、バンドルと呼ばれるモジュールで構成されています。問題は、適度なサイズのアプリケーションには多数のバンドルが含まれるため(Eclipse IDEのプラグインディレクトリを見るだけで数百になる可能性があります)、アプリケーションを管理またはデプロイするときに個々のバンドルよりも粗い粒度が必要になることです。
OSGi Service Compendium Specには、デプロイメント管理サービスが含まれています。これは、デプロイメント・パッケージを、単一のユニットとしてデプロイ、アップグレード、アンインストールなどできるバンドルおよびその他のアーティファクト(構成など)のコレクションとして定義しました。
残念ながら、Deployment Adminの実装、ツール、またはユーザーに関する多くの情報を見つけることができませんでした。
このサービスの状況はどうなっていますか?Deployment Adminに関する経験、意見、または推奨事項はありますか?
また、Spring dm-serverにはバンドル(PARファイル)のアプリケーションスコープコレクションの概念があり、EclipseEquinoxはこの問題に対処するためにネストされたフレームワークに取り組んでいると思います。これらのアプローチは、Deployment Adminとどのように関連していますか?
java - Spring DM で ServiceListener を追加する
同等のことができるかどうか疑問に思っています
春のDMで。ライフサイクル管理のリスナーを追加するための参照資料を見つけました。ただし、これは登録されているサービスのライフサイクルに関連しています。私が必要としているのは、特定のサービス インターフェイスに登録/登録解除されているサービスのライフサイクルを認識することです。
これを知る必要があるバンドルは、実際にサービスを作成するのではなく、サービスを使用します。実行時に変更されるこのサービスの複数のインスタンスがあるため、Spring 構成で単純にサービス参照を作成することはできません。