外部ライブラリ

コネクタおよびモジュールは、ライセンス、バージョン設定、カスタムライブラリなどの関係でコネクタ内にパッケージ化できない外部ライブラリに依存する場合があります。

同じベースコードでいくつかの異なるドライバーや同じドライバーのいくつかの異なるバージョンに対応する例としては、Database Connector があります。この問題の解決策は、接続先となるデータベースで使用する JDBC ドライバーを特定するように Database Connector のユーザーに依頼することです。

使用方法

コネクタやモジュールが Mule アプリケーションで動作するために外部ライブラリを必要とするということを宣言するには、​@Extension​、​設定​、または ​ConnectionProvider​ クラスに ​@ExternalLib​ アノテーションを付加して、Mule アプリケーション開発者がこれらのライブラリの設定方法を理解しやすいようにプロパティを提供する必要があります。

ユーザーがライブラリをより簡単に設定できるように、アノテーションが提供するすべてのプロパティに値を設定しておくことを強くお勧めします。次に例を示します。

+

@ExternalLib(name = "MySQL JDBC Driver",
description = "A JDBC driver that supports connection to the MySQL Database",
nameRegexpMatcher = "(.*)\\.jar",
requiredClassName = "com.mysql.jdbc.Driver",
coordinates = "mysql:mysql-connector-java:5.1.44")
public class MySqlConnectionProvider implements ConnectionProvider<Connection> {
  //
}

+ コネクタは複数の外部ライブラリを必要とする場合もあります。​@ExternalLib​ アノテーションは、必要なだけ何度でも使用できます。

プロパティ

プロパティ 必須 説明

name

true

String (文字列)

UI に表示するわかりやすい名前。

description

false

String (文字列)

外部ライブラリの簡単な説明。

nameRegexpMatcher

false

String (文字列)

ライブラリのファイル名と一致し、ユーザーが指定したライブラリが正しいことを検証するために使用する正規表現。

requiredClassName

false

String (文字列)

(Java ライブラリのみ)​ 外部ライブラリに存在する ​Class​ の名前。ユーザーが指定したライブラリが正しいことを検証するために使用します。

type

true

Enum (列挙)

  • NATIVE​: Native ライブラリの連動関係

  • JAR​: JAR ファイルの連動関係

  • DEPENDENCY​: 外部連動関係 (Maven を使用している場合の ​pom.xml​ に指定されている取得済みの連動関係など)

カスタムコネクタについては、すべての Maven 連動関係に Anypoint Exchange からアクセスできる必要があります。非公開または公開リポジトリにパブリッシュされた Maven 連動関係には Anypoint Exchange からアクセスできません。

カスタムコネクタをパブリッシュする前に Maven 連動関係をパブリッシュする場合は、次のいずれかのオプションを使用します。

  • Maven 連動関係を Anypoint Exchange にパブリッシュして、Anypoint Platform 組織で使用できるようにする。

  • Maven 連動関係を Maven Central リポジトリ​にパブリッシュして、一般公開する。

MuleSoft リポジトリをパブリッシュに使用することはできません。

coordinates

false

String (文字列)

必須ライブラリがある場所を示す Maven 座標の提案。Maven の表記規則 (​groupId:artifactId:packaging:classifier:version​) に準拠している必要があります。

optional

false

Boolean (ブール)

コネクタやモジュールが動作するためにライブラリが必要でないかどうか。