問題タブ [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.
java - バージョンが重複する Bnd Import-Package
Import-Packageで bnd 2.1.0 がマニフェストを生成できるか疑問に思って
います。同じ名前でバージョンが異なる 2 つのパッケージがあります。それは可能であり、この行動には意味がありますか?
Import-Package: 'com.sample.logger;version="1.0.0",com.sample.logger;version="[2,3)"'
osgi - 実行時にサービスのプロパティを変更するにはどうすればよいですか (宣言型サービス)
OSGi API (ServiceRegistration のインスタンス) を使用すると、実行時にサービスのプロパティを簡単に変更できます。宣言型サービスで同じことを行うにはどうすればよいですか? BndTool の注釈に基づく解決策はありますか?
どうもありがとう
java - BND には、'uses' ディレクティブに同じバンドルのエクスポートされたパッケージが含まれます
maven-bundle-plugin
BND を使用する を使用して、ライブラリを OSGi バンドルとしてパッケージ化しています。BND が非常に長いリストを生成していることに気付きました。これは主に、ライブラリ自体によって他のエクスポートされたパッケージのディレクティブでExport-Package
エクスポートされた多くのパッケージが含まれているためです。uses
私は(ちょっと)uses
指令を理解しています。この場合uses
、エクスポートされたパッケージのクラスによって、他のパッケージのクラス ( にリストされている) がメソッド シグネチャで使用されている (したがって、インポートされている) と思います。
この意味で、私は2つの質問があります:
uses
エクスポートされたパッケージのディレクティブに、同じバンドルによってエクスポートされたパッケージを含めることが本当に必要ですか? これらのパッケージは、他のバンドルによってエクスポートされることはありません。したがって、分割パッケージはありません。- この動作は、ライブラリのパッケージ構造が正しく定義されていないことを示していますか? 最上位パッケージで使用されるいくつかのクラスは、多くの場合、サブパッケージにあり、その逆もあります。これは、OSGi バンドルに適合されたライブラリーです。パッケージ構造は、OSGi フレンドリーになるようには設計されていません。
ほとんどのエクスポートされたパッケージが MANIFEST にリストされている方法は次のとおりです。
uses
上記のリストのすべてのパッケージjavax.measure.unit
から、別のバンドルからのみインポートされます。
maven-bundle-plugin
構成:
java - OSGi (Felix) 追加の system.bundle エクスポート
簡単な実験 -
バンドル A は、そのクラス ローダー ( jaxb.. ) を介して使用できるように、いくつかの com.sun.xml.internal.bind クラスを必要とします。
パッケージを「org.osgi.framework.system.packages.extra」(felixに実装されている標準フレームワークパラメーター、 http://felix.apache.org/site/apache-felix-framework-configuration-properties.htmlで文書化されています)、バンドルにインポートします。
そうすることで、バンドルは解決されなくなります..
( 5 は jaxb を使用するバンドルです) 「com.sun.xml.internal.bind」に「org.osgi.framework.bootdelegation」を設定し、依存バンドルにインポートしないことは、文書化されているとおりに機能しました。
system.packages.extra がすべきことを誤解していますか? system.bundle からのインポートを解決できませんか? Import-Package ディレクティブの下部にある bnd を介してインポートで system.bundle を明示的に設定しようとしました
その結果、
ps: これらを定義するために bnd と -runproperties を使用しています。私のbndrunファイルには次のものがあります:
jaxb を必要とするバンドルは、次のインポートを定義します
bndrun エディターで依存関係を解決しようとすると、
ant - bndwrap を使用して特定のパッケージをエクスポートから除外するにはどうすればよいですか
ant bndwrapタスクでラップしようとしている既存の jar には、別の jar のクラスが含まれています。これは、埋め込まれた jar ではなく、展開された jar を意味します。
これらのパッケージをバンドルのエクスポート パッケージ宣言から除外するにはどうすればよいですか?
基本的にjarにはパッケージがあります
と
org.stuff パッケージのみをエクスポートしたいのですが、bndwrap には両方が含まれます。
java - Maven バンドル プラグイン: エクスポートにはプライベート参照があります
実行中のmaven-bundle-plugin
バージョンからバージョン2.3.5
に更新した後、いくつかの警告メッセージが出力されますが、これは完全には理解できません。例えば2.4.0
mvn clean install
Export ch.entwine.weblounge.contentrepository.impl.index, has 1, private references [org.elasticsearch.action.bulk]
これは、組み込みライブラリ(elasticsearch)と関係があると思います。POM の一部を次に示します。
エラーメッセージの正確な意味は何ですか? このような問題を解決するための推奨される方法は何ですか?
java - OSGi ランタイムで使用可能なタイプの ClassNotFoundException ( io.netty.common )
次の一見些細な問題が、この 1 日半の間、私を怒らせていました。
また、このインターフェイスを実装し、サービスとして宣言します。
bnd は、次のコンポーネント xmlを作成します。
およびmanifest.mf :
複雑すぎませんよね?ただし、次のbndrun構成では:
すべてが正しく解決されますが、ログに次のように表示されます..
tl;dr : io.netty.util.concurrent.EventExecutorGroup が見つかりません。
私は以下を確認しました: - io.netty.transport は io.netty.common からこのタイプを正しくインポートします - io.netty.common はこのタイプを含み、エクスポートします
これをデバッグする方法がわかりません。どんなポインタでも大歓迎です!プロジェクトのソースはhttps://github.com/andlaz/netty-worker-serviceで入手できます