問題タブ [bnd]
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-plugin - 「uses」と「Import-Package」の不一致
ライブラリの生成に bnd を使用MANIFEST.MF
しています。最後に、次の競合を含むマニフェストを取得します。
パッケージA
、B
、はすべて、 、、およびC
という名前の別のプラグインに存在します。実行時に、Eclipse は plugin をロードしないため、クラッシュします。また、Eclipse ツールは のみを参照しているように見えます。これは、ツールも への依存関係を認識していないためです。A
B
C
C
Import-Package
C
ステートメントImport-Package
に常にすべてのパッケージを含める必要がありますか? uses
それは Eclipse のバグですか、それとも (より可能性が高い) C への依存関係を見逃す原因となっている bnd の何が間違っているのでしょうか?
java - OSGi 機能: 有効時間: 解決 vs アクティブ
機能が有効な時間を「解決」し、「アクティブ」にする必要があるのはいつですか?
リソースの解決中に機能を無視するのはいつですか? いつ彼らを尊重してほしいですか?
http://bnd.bndtools.org/chapters/230-manifest-annotations.html
https://osgi.org/javadoc/r6/core/org/osgi/resource/Namespace.html#EFFECTIVE_ACTIVE
eclipse - maven-bundle-plugin で bnd を使用して Eclipse 機能を生成することは可能ですか?
maven-bundle-plugin を使用して Eclipse 用のプラグインを生成しています。ここで、Eclipse 機能を生成する必要があります。どうすれば達成できますか?
PDE を使用したくありません。
osgi - osgi (bndtools) の Restlet バンドルが起動に失敗します。アクティベーター エラー com/sun/net/httpserver/HttpHandler
私が作成し、標準の Eclipse 環境で動作していたいくつかの osgi プラグインをbndtoolsに移行しています。Felix Web ConsoleとJetty HTTP Serviceを追加し、いくつかのEquinoxバンドルをFelixの同等 のものと交換しました。
org.restlet.jarを必要とする 1 つの特定のバンドルを実行すると、バンドルは解決されますが、アクティブ化されません。コンソール出力は次のとおりです。
____________________________ Apache Felix Gogo へようこそ
グ!2015-05-25 00:06:33.471:INFO:oejs.Server:jetty-7.xy-SNAPSHOT 2015-05-25 00:06:33.545:INFO:oejsh.ContextHandler:開始 oejsServletContextHandler{/,null} 2015- 05-25 00:06:33.620:INFO:oejs.AbstractConnector:Started SelectChannelConnector@0.0.0.0:8080 ! バンドル org.restlet-2.3.2.v20150501-1520 の開始に失敗しました。例外アクティベーター エラー com/sun/net/httpserver/HttpHandler から: org.restlet.engine.Engine:registerDefaultConnectors#839
私は他の質問に基づいて解決策を試しました。つまり、run プロパティ (おそらく私の bndtools .bnd ファイル) を設定することを推奨するこの質問と、フレームワーク リスナーを使用してRestletアプリケーションをアクティブ化することを提案する別の質問ですが、これらはうまくいきませんでした。私、そしてコンソール出力は同じでした。org.osgi.framework.system.packages.extra = com.sun.net.httpserver
私はまだ学んでいますが、解決策につながる助け、またはbndtoolsまたはEclipseが提供する可能性のある方法や機能に関するヒントをいただければ、その原因を突き止めることができます。
ちなみに、この同じプラグインの必須バンドルとして、 Felix Web Consoleが動作しています。
これが私のbndtools構成です:
java - bnd がバンドルにオプションのサービス (*, 0..n, ReferenceCardinality.MULTIPLE) を要求するのはなぜですか?
私のバンドルは、インターフェースと、このインターフェース実装を使用してそれらすべてをコールバックするコンポーネントを定義します (存在する場合)。
良い例えは LogService です。1 つ (または複数) 存在する場合は、メッセージでそれらを呼び出します。
これが私の DS 宣言です。
したがって、私のバンドルは、そのサービスの実装の有無にかかわらずデプロイできると期待しています。
ただし、日食が私に与えるものは次のとおりです。
なんで?これはまったく要件ではありません。それは明らかにオプションです。
この問題について話していると思われるこのチケットを見つけましたが、なぜクローズされたのかは明らかではありません。チケットに記載されているように、これを bnd.bnd に追加しました。
-resolve.effective: アクティブ;skip:="osgi.service"
java - osgi フレームワークでアスピリンを使用してメールを送信する
サードパーティのメールサーバー (smtp.gmail.com など) を使用せずに、添付ファイル付きの電子メールを送信しようとしています。
基本・準備
このスレッドでは、最初に MimeMessage を作成してから で送信するというアドバイスに従いましたmyMailQue.queMail(msg);
。
テストパッケージで問題なく動作します。端末に次の出力が表示されます。
そして数秒後にメールが到着。
問題
OSGi フレームワーク (felix) で使用しようとすると、メールが送信されません。上記の出力であっても、例外やその他の情報は出力されません。
バンドル版の aspirin-jar が見つからなかったので、自分で bnd に変換しました。このような:
私のテスト
変換された jar がバンドル フォルダーにあるので、ワイヤリング パッケージの問題はないので、動作するはずですか? 問題の例:
呼び出し元のコードは、アスピリンバンドルqueMail(msg)
の他のメソッドを呼び出すことができます。たとえば、関数を前後に 1 回呼び出しています。結果は 0 と 1 です。これは理にかなっています (imo)。myMailQue.getQueueSize()
queMail(msg)
このセットアップが機能しないことに本当に混乱しています。特に例外がなければ、何が問題なのか理解するのが難しいです
したがって、テスト パッケージとフレームワークの唯一の違いは、変換された jar だと思います。どうすれば問題を解決できるか考えている人はいますか?
事前にどうもありがとうございました
PSこれは私の最初の質問です(私はたくさん読んだことがあります;)重要な情報が欠けている場合、または質問の形式がわかりにくい場合は、ヒントを教えてください。