コネクタの属性の定義

DevKit は、Studio 6 および Mule 3 とのみ互換性があります。Mule 4 Connector を作成するには、 「Mule SDK」ドキュメント​を参照してください。

すべての Mule 要素と同様に、コネクタには、コネクタのグローバル設定ダイアログで割り当てることができる属性があります。DevKit を使用すると、必須属性と省略可能な属性を定義できます。

前提条件

このドキュメントは、読者が ​Anypoint Connector DevKit​ に精通しており、コネクタの​認証​方法についてすでに学習していることを前提とします。

@Configurable アノテーション

コネクタの属性は ​@Configurable​ アノテーションを使用して定義され、少なくともユーザの観点から不可欠とされる項目を作成するコードを提供します。DevKit 3.7 以降、すべての ​@Configurable​ パラメータを、通常は個別の Java ファイルで定義される ​@Connector​ クラス​ではなく​「Config」クラス内に配置する必要があります。これらの属性は、デフォルトで設定されていない場合、コネクタのグローバル設定ダイアログでユーザにより割り当てられます。各属性の ​@Configurable​ アノテーションに加えて、属性の public getter および setter を定義する必要があります。

注意:​ コネクタは、コネクタのコードを作成するときに定義した、任意の数の単純または複雑な ​@Configurable​ 属性を使用できます。

コネクタ設定の例

<barn:config name="Barn" key="myKey" doc:name="Barn"/>
configurable screenshot

@Optional アノテーション

前述のように、​@Configurable​ 属性は必須です。属性を省略可能にするには、​@Optional​ アノテーションでマークします。

public abstract class AbstractAnalyticsConfig {

...
  /**
  * Hostname of the proxy. If this property is not set then no proxy is used, otherwise proxy is going to be used but host can not be empty.
  */
  @Configurable
  @Optional
  @Placement(group = "Proxy Settings")
  @FriendlyName(value = "Host")
  private String proxyHost;

  /**
  * Port of the proxy. If host is set then this property has to be set and can not be a negative number.
  */
  @Configurable
  @Optional
  @Default("3128")
  @Placement(group = "Proxy Settings")
  @FriendlyName(value = "Port")
  private Integer proxyPort;
}

いくつかのサンプルプロキシ設定が定義されている、部分的に完成された設定の XML 設定:

定義されたプロキシ設定
<sfdc-analytics:config name="Salesforce_Analytics_Cloud__Basic_authentication" username="" password="" securityToken="" metadataFileName="" proxyHost="127.3.4.12" proxyUsername="dearuser" proxyPassword="asdfaesfasf" doc:name="Salesforce Analytics Cloud: Basic authentication" proxyPort="3127"/>

ユーザがデフォルトのポート番号を変更しない場合、設定に情報は表示されません。たとえば、​proxyPort="3127"​ に変更した場合、その情報がコネクタの XML 設定に表示されます (上の SFDC Analytics の場合、デフォルトのポート番号は「3128」)。

@Default アノテーション

省略可能な属性の場合のみ、​@Default​ アノテーションを使用してデフォルト値を設定できます。この値は、属性に値が割り当てられていない場合に使用されます。

次に例を示します。

public abstract class AbstractAnalyticsConfig {
    ...
    @Configurable
    @Default("0")
    @Placement(group = "Connection")
    private int connectionTimeout;
    }

注意:​ 属性が ​@Default​ としてマークされている場合、その属性は暗黙的に ​@Optional​ にもなります。

属性のデザインのカスタマイズ

デフォルトでは、Anypoint DevKit は、Studio のダイアログボックスの名前と表示ラベルを、Java ファイル内のメソッド、パラメータ、JavaDoc コメント、およびインスタンス変数名から推定します。ただし、アノテーションを使用してコンポーネントのデザインのさまざまな側面をカスタマイズし、ユーザエクスペリエンスの向上を図ることもできます。

注意:​ ​org.mule.api.annotations.display​ パッケージで定義されているアノテーションを使用して、このカスタマイズを行うことができます。

Studio のコネクタのダイアログやコネクタのドキュメントに属性をどのように表示するかを制御するいくつかのアノテーションを使用することが可能であり、また、必要となります。

@FriendlyName アノテーション

変数およびメソッドパラメータでこのアノテーションを使用して、​@Configurable​ 変数または ​@Processor​/​@Source​/​@Transformer​ メソッドパラメータの推定されるデフォルトのニックネームを上書きします。このアノテーションを持つパラメータを提供する必要があります。

@Connector(name="barn", schemaVersion="1.0", friendlyName="Barn", minMuleVersion="3.6")
public class BarnConnector
{
  ...
friendlyName-screenshot-1

@Password アノテーション

このアノテーションを使用して、項目またはメソッドパラメータをパスワードとして識別します。つまり、プレーンテキストとして表示すべきではないデータを含む変数として識別します。

    /**
     * Password used to authenticate against the proxy.
     */
    @Configurable
    @Optional
    @Password
    @Placement(group = "Proxy Settings")
    @FriendlyName(value = "Password")
    private String proxyPassword;

@Summary アノテーション

変数およびメソッドパラメータでこのアノテーションを使用して、​@Configurable​ 変数または ​@Processor​/​@Source​/​@Transformer​ メソッドパラメータの推定されるデフォルトの説明を上書きします。

@Processor
@Summary("This processor puts an animal in the barn")
public String putInBarn(String animal)
{
   return animal + "has been placed in the barn";
}

@Icons カスタムパレットおよびフローエディタアイコン

コネクタクラスでこのアノテーションを使用して、1 つ以上の必須アイコンのデフォルトの場所を上書きします。パスは ​/src/main/java​ への相対パスである必要があります。

@Icons(connectorLarge="barn-icon-large.png", connectorSmall="barn-icon-small.png")
@Connector(name="barn", schemaVersion="1.0", friendlyName="Barn", minMuleVersion="3.6")
public class BarnConnector
{
   ...

@Placement 項目順序、グループ化、およびタブ

変数およびメソッドパラメータでこのアノテーションを使用します。以下のパラメータを受け入れます。

  • order​ — グループ内のアノテーション付き要素の相対的な順序。提供された値が重複している場合、それらの要素の順序は任意に定義されます。値は相対的です。順序 10 の要素は、値 25 の要素よりも優先されます。

  • group​ — 1 つ以上の変数をまとめて表示するための論理的な方法。グループを指定しない場合、Mule ではデフォルトのグループが想定されます。同じグループに複数の要素を配置するには、この属性の同じ値をそれらに割り当てます。

  • tab​ — アノテーション付き要素をグループ化するための論理的な方法。この属性は、アノテーション付き要素を表示するタブの名前を指定します。タブが指定されていない場合、Mule ではデフォルトのタブが想定されます。同じグループに複数のパラメータを配置するには、この属性の同じ値をそれらに割り当てます。

@Configurable
@Placement(group = "Basic Settings", order = 1)
@FriendlyName("Consumer Key")
private String consumerKey;

@Configurable
@Placement(tab="Advanced Settings", group = "General Information", order = 2)
@Summary("the application name")
@FriendlyName("Application Name")
private String applicationName;

@Configurable
@Placement(group = "Basic Settings", order = 3)
@FriendlyName("Consumer Secret")
@Summary("consumer secret for authentication")
private String consumerSecret;
placement 1 screenshot
placement 2 screenshot

関連情報

  • 次へ:​ 列挙型やコレクションなど、​複雑なデータ型​の属性のサポートについての詳細を学習します。

  • コネクタへの ​DataSense の追加​についての詳細を学習します。