UML から WSDL への変換のカスタム・バインディングの作成

UML から WSDL への変換で WSDL 成果物の生成に使用されるバインディングを新規作成したり、既存のバインディングをカスタマイズしたりすることができます。
始める前に
以下の手順では、プラグインの作成、テスト、配布方法を知っていて、Eclipse プラグイン開発環境 (PDE) に精通していることを前提とします。

モデリング・パースペクティブが表示されている必要があります。

このタスクについて
カスタム・バインディングを作成するには、次のようにします。
  1. Eclipse ワークスペースでプラグイン・プロジェクトを作成します。このプラグイン・プロジェクトはカスタム・バインディングの実装を含むことになります。
  2. プラグインの plugin.xml ファイルで、以下の拡張ポイントを作成します。
    <extension point="com.ibm.xtools.transform.core.transformationExtensions"></extension>
  3. 拡張ポイントで、以下の情報を含む 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">
  4. 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"/>
  5. 前のステップで作成したプロパティーに、以下の規則を定義します。
    <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"/>
  6. TransformationExtension 要素内に、以下の ExtendTransform 要素を作成します。
    <ExtendTransform 
    	targetTransform="AddressExtensionTransform"> 
    	<AddRule id="MyAddressExtensionRule"/>
    </ExtendTransform>
    <ExtendTransform 
    	targetTransform="BindingExtensionTransform">
    	<AddRule id="MyBindingExtensionRule"/>
    </ExtendTransform>
    <ExtendTransform 
    	targetTransform="BindingOperationExtensionTransform">
    	<AddRule id="MyBindingOperationExtensionRule"/>
    </ExtendTransform>
  7. 「ファイル」 > 「保存」をクリックします。次回に変換構成ファイルを開くとき、変換構成エディターの「プロパティー」ページに、ステップ 4 および 5 で作成したプロパティーが表示されます。
  8. ステップ 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 への変換でこのカスタム・バインディングが使用されるよう指定することができます。

フィードバック