問題タブ [apache-felix]
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.
osgi - プレーン Maven JAR を含む OSGi バンドル リポジトリ
私は、Web アプリケーションをバンドルとして Virgo 3.0.1.RELEASE にデプロイするソリューションに到達するために取り組んでいます。私のシナリオは次のとおりです。
- Maven Bundle Pluginを使用してマニフェストを生成します。
- Maven WAR pluginを使用して、すべての JAR 依存関係を除外します。
- ローカル リポジトリでプレーンなMaven JAR アーティファクトをホストするように Virgo に命令する必要があります。インスタンスとして、Apache Karaf と PAXはプレーンな JAR ファイルを OSGi バンドルとして提供できます。
そう、
- Maven リポジトリのプレーンJAR をホストするために Virgo を構成する方法についてのアイデアはありますか?
- 一般的に、あなたの経験では、準備が整った Maven リポジトリを使用して OBR としてホストするための最適なソリューションは何ですか?
前もって感謝します。
java - OSGi を使用して JMenuItem を GUI にアタッチする
アプリケーションを作成しましたが、プラグインを準備したいと考えています。私は Apache Felix を使用することに決めましたが、チュートリアルを読んだ後、それが私が望んでいた選択であったかどうかはわかりません。
アプリケーションを変更して、最初にバンドルを /plugins フォルダからロードし、すべてのバンドルを JMenuItem として JMenu に追加したいと考えています。ClassLoader を使用してそれを行うこともできましたが、OSGi はまさに私が望んでいたものだと思っていましたが、いくつかの問題に遭遇しました。
OSGi 用のコマンド ラインがありますが、ユーザーの操作なしでアプリケーションに実装する必要があり、コードでデフォルトの動作をハード コードします。
バンドルが最初に呼び出すバンドル(
start()
およびstop()
から継承されたメソッドorg.osgi.framework.BundleActivator
)の動作がありますが、実際にはアプリケーションでアプリケーションで何かを行うためのバンドルではなく、バンドルで何かを行う必要があります。
それで、OSGi (Apache Felix など) を使用してそれを作成することが可能かどうか、または ClassLoader を使用して実装し、.jar プラグインのメイン クラスを JMenuItem に明示的に変換して JMenu に追加する必要があるかどうかを教えていただけますか (もっと悪いです)アプリケーションの動的な変更をサポートしておらず、OSGi を学ぶ機会を与えてくれません)。
編集: http://karussell.wordpress.com/2009/09/16/plugable-swing-a-hello-world-osgi-example/のような sth について考えていますが、チュートリアルが見つかりません。
java - OSGI 不足要件エラー
私は OSGI を初めて使用し、以下のようなエラーを解決する方法を見つけようとしています。
org.osgi.framework.BundleException: バンドル org.foo.serviceBundle [253] の未解決の制約: 253.0 を解決できません: 要件 [253.0] パッケージがありません。(&(パッケージ=org.slf4j)(バージョン>=1.6.0)(!(バージョン>=2.0.0)))
Maven アーキタイプを使用してバンドルを生成し、単純な slf4j ロギングを Activator クラスに追加しました。また、次のように Maven バンドル プラグインを使用しています。
他の組み合わせを試してみましたが、いずれかのパッケージが解決できません。バンドルを GlassFish appserver にデプロイしようとしています。どんな助けでも大歓迎です
ありがとうございました
osgi - これらの OSGi コマンドは実際に何をするのでしょうか?
Felix / Equinox を使用して、以下は内部で何をしますか?
ステートマシン図またはより簡潔なドキュメントがどこかにありますか?
osgi - バッチ ファイルからの osgi バンドルの更新
(Felix osgi で Glassfish 3.1 を使用しています) OSGI バンドルの 1 つを更新するバッチ スクリプトを作成する必要があります。
最も基本的な考え方は、バンドル jar を autodeploy フォルダーから移動し、数秒後に元に戻すことです。それを行う「よりクリーンな」方法はありますか?バッチ ファイルから felix telnet でコマンドを簡単に実行できますか?
ありがとうございました
android - Android アプリ (felix を使用) が LinearAlloc の容量を超えてクラッシュする
Android(3.2)でapache felixとosgiアプリを実行しています。これはこれまでのところうまく機能していますが、アプリケーションにロードするデータのかなり大きなチャンク (osgi バンドル) があります。それに関する問題は、取得するデータの最大のチャンクをロードするときに
LinearAlloc が容量を超えました
エラーが発生したようです
LinearAlloc.c
afaik 3.2/4.x では 8*1024*1024 でもありますが、それでもその制限に達しています。この問題の原因と、それを修正する方法について、より良い洞察を得たいと考えています。どんな助けでも大歓迎です。
java - IPojo - @Reference はサービスを注入しません
1 つのバンドルには、クラス ServiceImpl によって実装されるインターフェイス IService があります。
2 番目のバンドルには、別のクラス ServiceConsumer (GoGo シェル コマンド。特定の注釈は含まれていません) があり、最初のバンドルで提供されるサービスを使用します。
Felix で 2 つのバンドルをインポートして開始すると、すべてのサービスが ipojo:instances を使用して正しくインスタンス化され、ServiceImpl が IService を提供することがわかります。ただし、doIt() が実行されると、サービスは null になります。
IService が利用可能であるように見えるので、@Requires が適切なインスタンスを注入することを期待しますが、そうではないようです。
私がしていないことが非常に明白な何かがあると感じていますが、何をしているのかわかりません。
java - OSGi環境でのバンドルDIの使用を開始する
私はしばらくの間、OSGiランタイムとしてApache Felixを使用してアプリケーションを開発してきましたが、これまでのところ、進歩は素晴らしいものでした。ただし、依存関係の注入を採用したいので、ApacheFelixの「デフォルト」メカニズムはiPOJOのようです。
ただし、Apache felixに関するドキュメントとチュートリアルは弱すぎて、どこにも到達できませんでした。ですから、私は変化する準備ができていますが、まず最初に、私がやろうとしている(非常に単純な)考えを説明したほうがよいでしょう。
2つのバンドルが与えられます。
消費者バンドル
プロデューサーバンドル
OSGiランタイムでコンシューマーバンドルを起動し、プロデューサーが機能する必要があることを認識してから、フレームワークがプロデューサーバンドルを起動し、コンシューマーにインスタンスを挿入します。シンプル。iPOJOは、これはアノテーションのみ(@ Singleton、@ Inject)または同様のものを使用して可能であると示唆していますが、私はそれを機能させることができません。OSGiには明らかに宣言型サービスがありますが、それは私が本当に避けたい多くのXMLを書くことを意味します。
Anywoo、私は、JBoss、Equinox、または代替のOSGiランタイムと、代替の依存関係インジェクションメカニズムを適応させる準備ができています。それは、Peaberry、Spring DM、または完全に異なるものです。私はすでにMavenを使用しています。
私が求めているのは、誰かがプロデューサーとコンシューマーのアイデアを使用してHello Worldを作成し、私が始めるのを手伝ってくれるかどうかです。私は本当にたくさんの時間を読んで、学習曲線が乗り越えられないことに気づきました!
編集、SCRを使用した私の試み:http://tydus.net/codeExamples/mvnScr.tar
unit-testing - FelixOSGIバンドルJUnitコードを参照するAdobeCQ5CRXDEで単体テストをコンパイルします
AdobeCQ5.4内で実行されるいくつかの単体テストを作成したいと思います。私はCQ内でテストするために、この記事で説明されていることを行っています。
ただし、Javaコードで単体テストクラスを作成した後、org.junit名前空間を解決できないため、CRXDE内でコンパイルされません。説明したように(Apache Sling JUnit Core)FelixにJUnitバンドルをインストールしてアクティブ化しましたが、このアクティブなFelixバンドルをCRXDEで見つけるには、他に何かする必要があると思います。接続しているCQ5インスタンスのFelixバンドルは、これらのエクスポートされたパッケージを示しています。
以下のこのサンプルユニットテストコードでは、最後の3つのインポートステートメントは「解決できません」。
FelixにインストールされたOSGIバンドルは、CRXDEを使用してJavaクラスで参照できるようにアクセスできるはずですが、インストールしたJUnitバンドルでは発生しません。なぜだめですか?CRXDEにOSGIバンドル参照を見つけてCRXDE内でコンパイルさせるには、何をする必要がありますか?
java - felix.xml の目的は何ですか?
Maven によってビルドされ、OSGi および OSGi コンテナー Felix に関連する一部のプロジェクトには、felix.xml というファイルがあります。このファイルは何に適していますか?
その内容は主に次のようになります。