問題タブ [osgi-fragment]
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 - OSGi - Eclipse の外で実行
OSGi アプリケーションを Eclipse の外で実行できるように取り組んでいます。確かに、 java -jar org.eclipse.osgi_3.7.1.jar を実行してプラグインをインストールするだけの場合ではないだろうと思ったほど簡単ではありませんでした。
これが最後の問題であることを願っています
java.sql.SQLException: jdbc に適したドライバーが見つかりません:mysql://localhost:3306/
これはEclipseでうまく機能します。永続化バンドルと、必要なデータベースの種類に応じてロードするいくつかの断片化バンドルがあります。次に、データベース JDBC ドライバーを含む別のバンドルもあります。Eclipseでは実行できますが、Eclipseの外では、クラスローダーを使用してドライバーをロードするなど、すべてを試してきました
何を見ればいいですか?私のセットアップは同一であり、両方で同じバンドルが実行されていることがわかります。
spring-mvc - バンドルを使用して OSGI Web アプリケーションにページを追加する
Spring DM 2 を使用して OSGi コンテナーで実行される Spring MVC webapp があります。当面、使用するビュー テクノロジは JSP です。
@Controller
ページとをバンドルにパッケージ化することで、必要に応じてアプリに機能を追加したいと考えています。フラグメントを使用してそれを実現できます。つまり、すべてのフラグメント ファイルは、実行時に実質的に webapp バンドルになります。このやり方はちょっと面倒だと思います...
フラグメントの代わりに通常のバンドルで webapp の拡張機能をパッケージ化する方法はありますか? JSP 以外のビュー エンジンは役に立ちますか?
java - OSGi フラグメントがホストにアタッチされるのはいつですか?
永続化サービス (を使用) と構成 (xml ファイル) を含むフラグメントを含むバンドルOSGi
があります。hibernate
バンドルのアクティベーターで、次を使用して構成をロードしています。
ただし、場合によってURL
は null です。URL
利用可能なすべての s を (メソッドを使用して)リストしようとしたときfindEntries
、バンドル自体のものは常に利用可能ですが、フラグメントのものは時々しか利用できないように見えました。私はFelix
4.0.2 を使用しています。バンドルとフラグメントは同時に開始されFelix
ます。自動開始レベル。
osgi - OSGi APIを使用して、特定のバンドルがフラグメントであるかどうかを確認するにはどうすればよいですか?
OSGi APIでは、BundleContext.getBundles()を呼び出すと、フラグメントであるかどうかに関係なく、すべてのバンドルが返されます。特定のBundleオブジェクトについて、これがフラグメントであるかどうかを判断するための最良の方法は何ですか?
java - Spring-DM エクステンダーを使用する
OSGI コンテキストをシャットダウンする前に、しばらく待つ必要があります (現在実行中のタスクを終了するまで、しばらくお待ちください)。Beanshutdown.wait.time
のプロパティに出くわしました。extenderProperties
このOSGiフラグメントを使用して目標を達成する方法を教えてください。フラグメント バンドルを既存の OSGI バンドルにアタッチできると思います。
前もって感謝します。あなたの助けに感謝。
java - OSGiフラグメントを使用して、同じファイル名でプラットフォームに依存するネイティブコードを提供するにはどうすればよいですか?
JNotifyプロジェクトを使用してファイルシステムイベントをリッスンしています。これは、OS:プロセッサアーキテクチャごとに1つのネイティブライブラリに依存します。たとえば、Windows x86用に1つのライブラリ、x86-64用に1つのライブラリなどがあります。
モノリシックバンドル
元々、JNotifyJavaクラスとネイティブコードの両方を含むバンドルが1つありました。ネイティブコードは、Bundle-NativeCodeで次のように宣言されています。
(読みやすくするために、これらをbndスタイルでフォーマットしました...明らかに実際のMANIFEST.MFファイルは適切に形成されています)。
これはうまくいきました。
フラグメントに移動
ライブラリを別々のフラグメントバンドルに移動して、関心のあるアーキテクチャのフラグメントを提供できるようにすると、「いい」と思いました。Linuxを例にとると、2つのバンドルに分割します。
Linux32ビット
Linux64ビット
これらのバンドルは異なるソースから構築されていることに注意してください。libjnotify.soファイル名は同じですが、異なるEclipseプロジェクトの異なるファイルです。JNotifyを使用するには、これらが同じである必要があります。
同じファイル名がホストバンドルに提供されることに注意してください。この場合、ファイル名はlibjnotify.soです。
これらを64ビットマシンで実行し、64ビットバンドルを32ビットバンドルの前にロードすると、機能します。
ただし、32ビットバンドルが最初にロードされると、次のようになります。
明らかに、32ビットライブラリがロードされています。しかし、なぜ?My Bundle-NativeCodeは、32ビットバンドルのバージョンを使用するには、ホストが32ビットLinuxマシンである必要があることを定義しています。その句が一致しない場合、ライブラリは無視されると思いましたか?
私が試したもの
- オプションのワイルドカードを削除しています...これは、バンドルが解決されないことを意味します
osgi - OSGiフラグメントの更新とバンドルの更新?
OSGi フラグメントの更新とバンドルの更新に大きな違いはあるのでしょうか?
フラグメント バンドルが更新された場合、更新されたフラグメントまたはその親バンドルで FrameworkWiring.refreshBundles メソッドを呼び出す必要がありますか?
フラグメントを使用して osgi アプリケーションを開発するチュートリアル/例を教えてもらえますか?
osgi - Felix servletbridge war に OSGi フラグメント バンドルを追加する
war ホスティング OSGi バンドルを作成しようとしています。完全な構成で WAB バンドルをホストできるはずなのでpax-web-extender-war
、そのために統合を試みます。slf4j-api
andのようないくつかの依存関係が必要slf4j-log4j12
です。ここに問題があります:私は常にこの例外を受け取ります:
slf4j-log4j12
は実際にはフラグメント バンドルであるためです。私はフェリックスがこれに対処するべきだと思っていましたが、そうではありません。そのため、このjarをに移動しようとしましWEB-INF/lib
たが、osgiがバンドルとして解決できないため、配線が失敗します。
そう、
- フラグメントバンドルはどこに置くべきですか?
- 何らかの形で設定する必要があります
framework.properties
か? - Apache Felix はフラグメント バンドルを扱うことさえできますか?
以下は、戦争の現在のレイアウトです(これは、felix http bridge サンプルに基づいていることに注意してください)。
osgi - Fragment-BundleをTychoテストランタイムに取り込む方法は?
実装バンドルとそれに依存するフラグメントバンドルがあります(MANIFESTのFragment-Host)。さらに、いくつかのテストがバンドルされています。
次に、実装をテストして、tycho-surefire-pluginを使用します。テスト付きバンドルは、MANIFESTのRequire-Bundleを使用して実装バンドルを参照します。ここまでは順調ですね。問題は、フラグメントバンドルをテストランタイムに取り込む方法です。eclipse-test-pluginのtycho-surefire-pluginの構成で依存関係を試しました。しかし、それは機能しません。正しい方法は何ですか?
編集:私のテストプラグインのpom.xml
フラグメントバンドルのマニフェスト:
リアクターpom.xmlから抽出:
ありがとうございました!
eclipse - 複数のプラットフォーム用のバイナリ コンポーネントを使用して OSGI/Eclipse プラグインを定義する方法
Eclipse プラグインを作成しましたが、その機能をサポートするために必要なネイティブ バイナリがあります。Win および Mac 用のネイティブ コードを用意しました。ネイティブ コードの呼び出しはプラットフォームごとに異なるため、ネイティブ コードに関連する一部のプラグイン コードもあります。(実際、ネイティブ コードは JNA コードなので、非常に異なっています。) 現在、私は拡張ポイントを持っており、各ネイティブ サポート プラグインはそこに貢献しています。したがって、ネイティブ サポートが提供されるとすぐに、メインのプラグインが機能します。また、機能を単体テストするための各ネイティブ サポート プラグインのテスト フラグメントもあります。
- 更新サイトまたは p2 リポジトリからダウンロードするときに誰もが適切なプラグインを取得できるように、プラグインをどのように設定すればよいですか? (たとえば、SWT はネイティブ コードにフラグメントを使用していることに気付きましたが、これでよいのでしょうか?)
編集:答えで示されているようにプラグインをフラグメントに変換した後、これらのプラグインの単体テストフラグメントをどうすればよいですか? フラグメントのフラグメントは使用できません。
- Tycho ビルドが現在のプラットフォームに適したテストを実行し、他のプラットフォームを無視するように、Tycho でこれを設定するにはどうすればよいですか。
編集:私はMacとWindowsのネイティブコード、2つのフラグメント、したがってpomに2つの環境を持っています。しかしその後、Tycho は「フィルターが適用されないため、プラグイン x をこの環境にインストールすることはできません」と文句を言います。Tycho はこれ自体を理解できますか、それとも OS 依存の Maven プロファイルが必要ですか?