はじめに

astah*のプラグイン機構は、astah*に自作機能を追加し、機能拡張を実現する仕組みです。プラグインを作成することで、メニューや拡張ビューなど、 astah*のGUIに独自のコンポーネントを追加できます。本チュートリアルでは、サンプルを中心にプラグインの作り方を紹介します。尚、本チュートリアルは、下記環境バージョンを使って作成しました。


システム要件

astah*プラグイン開発環境のシステム要件は、astah*各製品のシステム要件と同じです。astah* System Safetyについては、バージョン6.0以降よりプラグイン開発が可能です。


astah* プラグイン機構の仕組み

astah* plugin architecture

astah*のプラグイン機構は、起動時にastah*インストールフォルダ配下のpluginsフォルダにあるプラグインファイルをロードします。プラグインは、OSGi Bundle形式のjarファイルである必要があります。

プラグインの開発中、プラグインフォルダ配下にコピーしなくても良いよう、また、Bundleへのパッケージングを自動的に行うなど、開発を楽にする開発環境を用意しています。
それでは早速astah*のプラグイン開発環境を構築してみましょう。


開発環境の構築

astah*のプラグイン開発環境として、astah* Plug-in SDKを配布しています。このastah* Plug-in SDKは、Maven3をベースにカスタマイズしたものです。ここではastah*のプラグインの開発環境を構築しましょう。

Plug-in SDKをダウンロードして、適当なフォルダに展開します。

Plug-in SDKダウンロード

  • astah* professional、UML、SysMLご利用の方
  • astah* System Safetyご利用の方

  • 展開後は、次に以下に挙げる環境変数を設定します。

    注意
    プラグインSDKを展開するフォルダはスペースを含まないフォルダにするようにしてください。


    ・環境変数「ASDK_HOME」を追加し、展開したフォルダを指定する

    例: set ASDK_HOME=C:\dev\astah-plugin-SDK-x.x

    ・環境変数「PATH」にastah* Plug-in SDKの実行ファイルがある「%ASDK_HOME%\bin」フォルダを追加する(Linux/Mac OSXでは「$ASDK_HOME/bin」)

    例: set PATH=%ASDK_HOME%\bin;%PATH%

    以上の作業が終了したら、次のコマンドを入力してみましょう。

     > asdk

    以下のような出力が得られれば、astah* Plug-in SDKのインストールは完了です。(x.xには、バージョン情報が表示されます)

    > astah* Plug-in SDK version: x.x

    astah* professional、astah* UML、astah* SysMLをご利用の方は、任意のテキストエディタで%ASDK_HOME%¥conf¥settings.xmlを開きます。
    (※astah* System Safetyをご利用の方は、この手順は不要です。)

    初期設定では、astah* professionalのWindows環境が有効になっています。
    使用するエディションとOSに対応するidのprofileを有効にしてください。必要があればパスも変更します。

    	 <profile>
    	 	<id>astah-professional-windows</id> 
    <!-- このIDの[professional]はastahのエディション、
    [windows]はosです --> <activation> <activeByDefault>false</activeByDefault> <file> <exists>
    C:/Program Files/astah-professional/astah-pro.jar
    </exists> <!--- ココ --> </file> </activation> <properties> <astahPath>
    C:/Program Files/astah-professional
    </astahPath><!--ココ --> <astahEdition>professional</astahEdition> </properties> <pluginRepositories> <pluginRepository> <id>local_astah_repository</id> <name>Local Astah* Plugin Repository</name> <url>file://${env.M2_HOME}/repository/</url> <layout>default</layout> <snapshots> <enabled>true</enabled> </snapshots> <releases> <updatePolicy>never</updatePolicy> </releases> </pluginRepository> </pluginRepositories> </profile>

    次にastah* Plug-in SDKからastah*が起動できることを確認するために、下記のコマンドを入力してみましょう。

    > astah-launch

    うまく行くと、お使いのastah*が起動します。

    注意
    Mavenのcentralリポジトリからライブラリファイル取得時に
    Return code is: 501, ReasonPhrase:HTTPS Required
    あるいは
    Could not transfer artifact xxx from/to central
    等のエラーが発生する場合があります。
    その場合は、こちらのエラー対応方法をご確認ください


    プラグインを作ろう!


    作成したプラグインをastah*にインストールする

    作成したプラグインは、astah*プラグインプロジェクトにあるtargetフォルダの中に[artiactId]-[version].jarという名前で生成されています。この.jarファイルを、astah*インストールフォルダ\pluginsへコピーすればインストールは完了です。 プラグインがインストールされたかどうかの確認は、astah*の[ヘルプ]-[プラグイン一覧]を開いて確認します。
    作成したプラグインをインストール


    プラグインをリリースする

    プラグインのリリース前に、開発したastah*のバージョンと、動作対象エディションを設定しておきましょう。設定を行うと、対象外のastah*環境では、プラグインを起動しなくなります。
    pom.xmlを開き、<properties>タグのastah-versionとastah-editionに指定します。

    <properties>
    	<bundle.symbolicName>
    com.change_vision.astah.sample
    </bundle.symbolicName> <bundle.namespace>
    com.change_vision.astah
    </bundle.namespace> <plugin.install>true</plugin.install> <astah.version>6.6</astah.version> <astah.edition>all</astah.edition> </properties>

    astah.versionには開発に利用したastah*のバージョンを書きましょう。空欄にした場合は、全てのバージョンが動作対象となります。astah-editionに指定するキー名は、下記の表を参照してください。

    Edition Value
    全エディション対応 空欄、またはallか、* (astah.versionは1.1にしてください)
    astah* professional pro、またはprofessional
    astah* UML uml、またはUML
    astah* System Safety safety、またはSystemSafety (互換バージョンを対象とする場合はpro/UML/SysML向けも動作します)
    astah* SysML sysml
    astah* think! think


    SDKコマンド一覧


    Command Description
    asdk バージョンを表示
    astah-generate-project プラグインプロジェクトを生成
    astah-sysml-generate-project astah* SysMLプラグインプロジェクトを生成
    astah-build ビルドを実行
    astah-launch プラグインファイルを読み込んでastah*を起動
    astah-debug デバッグ用44000ポートを開いて起動


    参考サイト

    astah* APIについて


      





    Mavenについて

    Plug-in SDKは内部でMavenを利用しています。Mavenに関する設定や利用方法は下記のサイトを参照してください。