Flex Gateway新着情報
Governance新着情報
Monitoring API Managerコンポーネントパラメーターのいくつかの側面をカスタマイズしたり制限したりすることで、ユーザーエクスペリエンスを最大限に高めることができます。たとえば、関係のないパラメーターを隠すことで UI が見やすくなります。
次のような操作があるとします。
public void send(@Connection MyConnection connection, Object value) {
connection.doSend(value);
}
これは次のように呼び出します。
<demo:send value="requestPayload"/>
デフォルトでは、Mule は requestPayload
がグローバルリストや POJO などのレジストリ内のオブジェクトへの参照であると見なします。Extension クラスで実際に requestPayload
文字列を受け取りたい場合は、@ParameterDsl
アノテーションを使用して操作の宣言を変更します。
public void send(@Connection MyConnection connection, @ParameterDsl(allowReferences = false) Object value) {
connection.doSend(value);
}
この変更によって参照の使用が明示的に無効化されるため、操作は文字列値を受け取ります。
すべてのモジュールは、モジュール API に準拠した POJO を公開できます。
// This is the POJO declaration
public class Door {
@Parameter
private boolean isLocked;
@Parameter
private String color;
}
// This is the configuration
public class HouseConfig {
@Parameter
private Door mainDoor;
}
このようなパラメーターがある場合は、Door
が DSL でどのように使用されるかをモジュール開発者が設定する必要があります。その目的のために @TypeDsl
アノテーションが用意されており、これによって 2 つの重要な設定が可能になります。
allowInlineDefinition
: POJO (この例では Door
) をパラメーターとして使用する要素において、その POJO をインラインで宣言できるかどうかを定義します。
true
であれば、次のように宣言できます。
<demo:config name="myConfig"> (1)
<demo:door isLocked="true" color="red"/> (2)
</demo:config>
1 | config はパラメーターのコンテナとして宣言されています。 |
2 | Door は (config 内で) インラインで定義されています。 |
allowTopLevelDefinition
: POJO (この例では Door
) をアプリケーションの最上位要素として宣言できるかどうかを定義します。
true
であれば、次のように宣言できます。
<demo:door name="MyGlobalDoor" isLocked="true" color="red"/> (1)
<demo:config name="myConfig" door-ref="MyGlobalDoor"/> (2)
1 | Door はアプリケーションのグローバル要素として宣言されています。 |
2 | config は別に宣言され、door-ref 属性と共にグローバル要素 Door を名前で参照しています。 |