UML から WSDL への変換で WSDL 成果物の生成に使用されるバインディングを新規作成したり、既存のバインディングをカスタマイズしたりすることができます。
始める前に
以下の手順では、プラグインの作成、テスト、配布方法を知っていて、Eclipse プラグイン開発環境 (PDE) に精通していることを前提とします。
モデリング・パースペクティブが表示されている必要があります。
このタスクについて
カスタム・バインディングを作成するには、次のようにします。
- Eclipse ワークスペースでプラグイン・プロジェクトを作成します。このプラグイン・プロジェクトはカスタム・バインディングの実装を含むことになります。
- プラグインの plugin.xml ファイルで、以下の拡張ポイントを作成します。
<extension point="com.ibm.xtools.transform.core.transformationExtensions"></extension>
- 拡張ポイントで、以下の情報を含む TransformationExtension 要素を作成します。
<TransformationExtension version="7.0.0"
name="MY-NEW-BINDING binding extension"
enabled="true"
targetTransformation="com.ibm.xtools.transform.uml2.wsdl.internal.Uml2WsdlTransform.RS"
id="com.ibm.xtools.transform.uml2.wsdl.extension.MY-NEW-BINDING">
- TransformationExtension 要素内に、以下の情報を含むプロパティーを作成します。
<Property
id="com.ibm.xtools.transform.uml2.wsdl.bindings.MY-NEW-BINDING"
metatype="string"
name="com.ibm.xtools.transform.uml2.wsdl.bindings"
readonly="true"
value="MY-NEW-BINDING"/>
- 前のステップで作成したプロパティーに、以下の規則を定義します。
<RuleDefinition
class="org.someuri.MyAddressExtensionRule"
id="MyAddressExtensionRule"
name="MyAddressExtensionRule"/>
<RuleDefinition
class="org.someuri.MyBindingExtensionRule"
id="MyBindingExtensionRule"
name="MyBindingExtensionRule"/>
<RuleDefinition
class="org.someuri.MyBindingOperationExtensionRule"
id="MyBindingOperationExtensionRule"
name="MyBindingOperationExtensionRule"/>
- TransformationExtension 要素内に、以下の ExtendTransform 要素を作成します。
<ExtendTransform
targetTransform="AddressExtensionTransform">
<AddRule id="MyAddressExtensionRule"/>
</ExtendTransform>
<ExtendTransform
targetTransform="BindingExtensionTransform">
<AddRule id="MyBindingExtensionRule"/>
</ExtendTransform>
<ExtendTransform
targetTransform="BindingOperationExtensionTransform">
<AddRule id="MyBindingOperationExtensionRule"/>
</ExtendTransform>
- をクリックします。次回に変換構成ファイルを開くとき、変換構成エディターの「プロパティー」ページに、ステップ 4 および 5 で作成したプロパティーが表示されます。
- ステップ 5 で定義したそれぞれのクラスに対して、ステップ 1 で作成したプラグインに、対応する Java™ クラスを作成します。 作成した Java クラスは、対応する抽象クラスを拡張し、com.ibm.xtools.transforms.uml2.wsdl.utility プラグインに、対応する抽象メソッドを実装する必要があります。次の例を考えてみましょう。
- ステップ 5 で定義した org.someuri.MyAddressExtensionRule クラスは、com.ibm.xtools.transforms.uml2.wsdl.utility プラグインで AbstractExtensionRule クラスを拡張する必要があります。
- ステップ 5 で定義した org.someuri.MyBindingExtensionRule は、AbstractBindingExtensionRule メソッドを拡張する必要があります。
- ステップ 5 で定義した org.someuri.MyBindingOperationExtensionRule クラスは、AbstractOperationExtensionRule メソッドを拡張する必要があります。
タスクの結果
次回に変換構成ファイルを開くとき、
「WSDL オプション」ページに新しいバインディングが表示されます。これで、UML から WSDL への変換でこのカスタム・バインディングが使用されるよう指定することができます。