A.2. Red Hat Fuse OSGi プロジェクトのセットアップ


概要

OSGi バンドルを構築するための Maven プロジェクトは、単純な単一レベルのプロジェクトにすることができます。サブプロジェクトは必要ありません。ただし、次のことを行う必要があります。

  1. バンドルプラグインの POM への 追加
  2. 結果を OSGi バンドルとしてパッケージ化するように Maven に 指示 します。
注記

適切な設定でプロジェクトをセットアップするために使用できる Maven アーキタイプがいくつかあります。

ディレクトリー構造

OSGi バンドルを構築するプロジェクトは、単一レベルのプロジェクトにすることができます。トップレベル POM ファイルと src フォルダーのみが必要になります。すべての Maven プロジェクトと同様に、すべての Java ソースコードを src/java フォルダーに配置し、Java 以外のリソースを src/resources フォルダーに配置します。

Java 以外のリソースには、Spring 設定ファイル、JBI エンドポイント設定ファイル、および WSDL コントラクトが含まれます。

注記

Apache CXF、Apache Camel、または別の Spring が設定されている Bean を使用する Red Hat Fuse OSGi プロジェクトには、src/resources/META-INF/spring フォルダーに beans.xml ファイルも含まれます。

バンドルプラグインの追加

バンドルプラグインを使用する前に、Apache Felix への依存関係を追加する必要があります。依存関係を追加した後、バンドルプラグインを POM のプラグイン部分に追加できます。

例A.1「OSGi バンドルプラグインを POM に追加する」 は、バンドルプラグインをプロジェクトに追加するために必要な POM エントリーを示しています。

例A.1 OSGi バンドルプラグインを POM に追加する

...
<dependencies>
  <dependency>
    <groupId>org.apache.felix</groupId>
    <artifactId>org.osgi.core</artifactId>
    <version>1.0.0</version>
  </dependency>
...
</dependencies>
...
<build>
  <plugins>
    <plugin>
      <groupId>org.apache.felix</groupId>
      <artifactId>maven-bundle-plugin</artifactId>
      <configuration>
        <instructions>
          <Bundle-SymbolicName>${pom.artifactId}</Bundle-SymbolicName>
          <Import-Package>*,org.apache.camel.osgi</Import-Package>
          <Private-Package>org.apache.servicemix.examples.camel</Private-Package>
        </instructions>
      </configuration>
    </plugin>
  </plugins>
</build>
...

例A.1「OSGi バンドルプラグインを POM に追加する」 内のエントリーは次を行います。

Apache Felix への依存関係を追加します

バンドルプラグインをプロジェクトに追加します

プロジェクトのアーティファクト ID をバンドルのシンボリック名として使用するようにプラグインを設定します

バンドルされたクラスによってインポートされたすべての Java パッケージを含めるようにプラグインを設定する。また、org.apache.camel.osgi パッケージをインポートする

リストされたクラスをバンドルするようにプラグインを設定しますが、エクスポートされたパッケージのリストにはそれらを含めません

注記

プロジェクトの要件を満たすように設定を編集します。

バンドルプラグインの設定の詳細には、「バンドルプラグインの設定」 を参照してください。

バンドルプラグインのアクティブ化

Maven にバンドルプラグインを使用させるには、プロジェクトの結果をバンドルとしてパッケージ化するように Maven に指示します。そのためには、POM ファイルの packaging 要素を bundle に設定します。

便利な Maven アーキタイプ

バンドルプラグインを使用するように事前設定されたプロジェクトを生成するために使用できる Maven アーキタイプがいくつかあります。

Spring OSGi アーキタイプ

Spring OSGi アーキタイプは、次のように、Spring DM を使用して OSGi プロジェクトを構築するための汎用プロジェクトを作成します。

org.springframework.osgi/spring-bundle-osgi-archetype/1.1.2

次のコマンドを使用してアーキタイプを呼び出します。

mvn archetype:generate -DarchetypeGroupId=org.springframework.osgi -DarchetypeArtifactId=spring-osgi-bundle-archetype -DarchetypeVersion=1.1.2 -DgroupId=groupId -DartifactId=artifactId -Dversion=version

Apache CXF コードファーストの原型

次に示すように、Apache CXF コードファーストアーキタイプは、Java からサービスを構築するためのプロジェクトを作成します。

org.apache.servicemix.tooling/servicemix-osgi-cxf-code-first-archetype/2010.02.0-fuse-02-00

次のコマンドを使用してアーキタイプを呼び出します。

mvn archetype:generate -DarchetypeGroupId=org.apache.servicemix.tooling -DarchetypeArtifactId=servicemix-osgi-cxf-code-first-archetype -DarchetypeVersion=2010.02.0-fuse-02-00 -DgroupId=groupId -DartifactId=artifactId -Dversion=version

Apache CXF wsdl - 原型アーキタイプ

次に示すように、Apache CXF wsdl-first アーキタイプは、WSDL からサービスを作成するためのプロジェクトを作成します。

org.apache.servicemix.tooling/servicemix-osgi-cxf-wsdl-first-archetype/2010.02.0-fuse-02-00

次のコマンドを使用してアーキタイプを呼び出します。

mvn archetype:generate -DarchetypeGroupId=org.apache.servicemix.tooling -DarchetypeArtifactId=servicemix-osgi-cxf-wsdl-first-archetype -DarchetypeVersion=2010.02.0-fuse-02-00 -DgroupId=groupId -DartifactId=artifactId -Dversion=version

Apache Camel アーキタイプ

次に示すように、Apache Camel アーキタイプは、Red Hat Fuse にデプロイされるルートを構築するためのプロジェクトを作成します。

org.apache.servicemix.tooling/servicemix-osgi-camel-archetype/2010.02.0-fuse-02-00

次のコマンドを使用してアーキタイプを呼び出します。

mvn archetype:generate -DarchetypeGroupId=org.apache.servicemix.tooling -DarchetypeArtifactId=servicemix-osgi-camel-archetype -DarchetypeVersion=2010.02.0-fuse-02-00 -DgroupId=groupId -DartifactId=artifactId -Dversion=version
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.