問題タブ [bndtools]

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.

0 投票する
4 に答える
413 参照

osgi - bndtools ビルドを自動化する方法

私は OSGi の世界に比較的慣れていないので、ビルド プロセスを自動化する方法を理解するために助けが必要です。Eclipse での bndtool の使用に慣れ、依存関係の解決、実行、テスト、デバッグ、スタンドアロン jar の生成の方法を学びました。また、OSGi 公式サイトに投稿されている基本チュートリアルと Maven チュートリアルも確認しました。私の問題は、ビルドを自動化する方法です! それで、SVNにコードがあるとしましょう。コードをチェックアウトし、ビルド スクリプト/ツールを実行してバンドルを生成し、Felix または Karaf でデプロイできるようにする必要があります。公式の Maven ベースのチュートリアル (OSGi enRoute を使用) は、私が興味を持っていないスタンドアロンの jar を生成する方法のみを示しています。バンドルを生成する必要があります。Maven Bundle Plugin について読みましたが、それを使用すると、Eclipse で提供される UI ベースの bndtools が提供するすべての贅沢を失うと思います。

0 投票する
1 に答える
552 参照

bndtools - Bndtools でバンドルからパッケージをインポートする方法

この Bndtools チュートリアルhttp://bndtools.org/tutorial.htmlに従って、簡単なグリーティング サービスを実装しました。

最初に、次のインターフェイスを bundle に作成しましたorg.example.api

次に、 bundle で上記のインターフェースを実装するサービスorg.example.impl:

もちろん、型Greetingは解決できません。ここで私の質問が来ます: パッケージのインポート宣言をimplバンドルに追加する指定された方法は何ですか? を手動で編集して、必要なパッケージをディレクティブに含めることができることを認識してbnd.bndorg.example.implます-buildpath

しかし、これはかなり不便です: パッケージ名を記憶し、適切な bnd ファイルに移動し、ディレクティブを編集して、保存します。不足しているインポートを追加するより便利な方法はありませんか?

クイックフィックス ( ) のようなものを探していましたCtrl+1が、存在しないようです。

0 投票する
1 に答える
90 参照

bnd - Bndtools/Bnd の名前パターンで識別されるテストを実行する

統合テストを保持するバンドルでは、名前が で終わるすべてのクラスをTestテストと見なし、OSGi Framework JUnit Testsの起動時に実行したいと考えています。

ファイル内のTest-Classesディレクティブは、これを指定する適切な場所のようです。bnd.bndただし、http://bnd.bndtools.org/macros/classes.htmlclassesにあるマクロのドキュメントはまばらです。

したがって、私の質問は、次Testの行に沿って終わるすべてのクラスを含めるようにディレクティブを作成する方法です

0 投票する
0 に答える
200 参照

osgi - BndTools 3.3.0 (enRoute) を使用して Blueprint Gemini 2.0.0 をセットアップするには?

私は OSGi enRoute と BndTool のアプリ実装のコンセプトに興味をそそられます。しかし、Blueprint Gemini を使おうとして行き詰まりました。誰か助けてください。

質問

Blueprint Gemini 2.0.0 で BndTools ベースの OSGi アプリを実行するには?

私の問題

  • BndTools ベースの OSGi アプリケーションで Blueprint Gemini 2.0.0 を使用したいと考えています。しかし、OSGi バンドルが解決されません。
  • 自動解決しようとすると、次のエラー メッセージが表示されます。

不足している要件 &(osgi.extender=osgi.blueprint)(version=[1.0.0,2.0.0))

  • バンドルにバージョン <=1.0.0 および <2.0.0 が必要なのはなぜですか? これは私のプロジェクトの構成ファイルで指定されていません (*.bnd ファイルでも *.bndrun ファイルでもありません)?

プロジェクトのセットアップと構成方法

  • BndTools 3.3 を使用して、Eclipse Neon で新しい「Bnd OSGi Project」を作成し、「OSGi enRoute 3.3.0」をプロジェクト テンプレートとして選択しました。
  • OSGi フレームワーク: org.eclipse.osgi;version='[3.10...]

  • プロジェクト名には接尾辞「アプリケーション」が選ばれました。*その後、blueprint.xml を追加しました。

  • *.bndrun ファイルに、「実行要件」として 2 つのバンドルを追加しました。

    • 私のバンドルと
    • org.eclipse.gemini.blueprint.extender. *.bndrun ファイルで、「実行要件」として 2 つのバンドルを追加しました: my bundle と org.eclipse.gemini.blueprint.extender: blueprint.extender バンドルは、次の Maven XML 構文を使用してセントラル リポジトリに追加されました。

    <dependency> <groupId>org.eclipse.gemini.blueprint</groupId> <artifactId>gemini-blueprintextender</artifactId> <version>2.0.0.RELEASE</version> </dependency>

0 投票する
1 に答える
224 参照

osgi - Bndtools の Maven リポジトリからテストの依存関係を追加できません

Bndtools ワークスペースで、特定のプロジェクトの JUnit と Mockito に依存関係を追加したい

したがって、プロジェクトのbnd.bndファイルには次の-testpath命令が含まれています。

の「グローバル」bnd ファイルは、cnf/ext/repositories.bnd次のリポジトリを示します。

に、maven-central.xml次の依存関係を示します。

[リポジトリ] ビューには、両方のリポジトリが表示されます。Mockito ライブラリは、Maven リポジトリの v2.6 と Bndtools Hub の v 1.x の両方のリポジトリにも存在します。

JUnit の依存関係は問題なく解決できますが、何を試しても、Mockito の依存関係は解決できません。

リポジトリビューは、解決できないエントリを感嘆符[!]NullPointerExceptionで装飾します。

ここに画像の説明を入力

Bndtools をデバッグすると、それぞれの POM ファイルのローカル コピーがないという結論に達します ( bnd issue #1849を参照)。ただし、POM ファイルがない理由がわかりません。

Mockito の代わりに AssertJ などの他のライブラリも試しましたが、大きな違いはありませんでした。したがって、これは Mockito 自体の問題ではないようです。

Mockito を解決できない理由、またはこれを修正する方法についてのヒントは大歓迎です。