AnrdoMDAテンプレートカスタマイズ

テンプレートのカスタマイズ

「AndroMDAカスタマイズガイド 1.5.2」に従ってテンプレートのカスタマイズを行ってみる。

課題となるのは「2.7 テンプレートカスタマイズサンプル」

プロジェクト作成コマンドの選択子は以下のような感じ。

mvn org.andromda.maven.plugins:andromdapp-maven-plugin:generate

j2ee
C:\eclipseWrk\androMDA
Shohu
uml2
Secure JSP
secure_jsp
1.0
secure.jsp.sample
war
postgres
no(jBPM)
3
yes( web interface )
struts
no (Web service)

UMLのモデルを作成して、mvn install した後、

mvn -f web/pom.xml -Ddeploy

でデプロイ。
ここではまった。。

http://localhost:8080/secure_jsp/

を指定してもページが表示されない。

C:\apache-tomcat-5.5.17\conf\Catalina\localhost

にsecure_jsp.xmlのコンテキストファイルも作成されている・・・なぜだ?

いろいろ調べてみると以下のようなアクセスで表示できることがわかった。

http://localhost:8080/secure_jsp/secure_jsp-web-1.0

Tomcat5.5から?

server.xmlのappBase以下に配置したWARや仕様に基づいた形式のフォルダを
配置すれば、自動的にコンテキストと認識し、URLからは
http://ホスト名:ポート番号/配置したフォルダ名
でアクセスできると認識しています。

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=40342&forum=12&5

らしい。

フォルダ名をさすがにURLにそのまま表示したくなかったため、
context.xml を以下のように作成し

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/secure_jsp"  docBase="PROJECT_ROOT\web\target\secure_jsp-web-1.0"
         debug="99" reloadable="false" workDir="PROJECT_ROOT\work" >
</Context>

デプロイはせず(CATALINA_HOME/webappsにwarファイルをおかない)

http://localhost:8080/secure_jsp/

で表示できることを確認した。

テンプレートをカスタマイズする まとめ

JSPテンプレート差し替え

PROJECT_ROOT/mda/src/main/config/andromda.xml の BPM4Struts設定プロパティに
「mergeLocation」を追加し値を「custom」と記述する

        <namespace name="bpm4struts">
            <properties>
                <property name="forms">${web.generated.dir}</property>
                <property name="pages">${web.generated.dir}</property>
                    :
                    :
                <property name="mergeMappingsUri">file:${conf.dir}/mappings/WebMergeMappings.xml</property>
                <!-- ↓↓↓ ここ ↓↓↓ -->
                <property name="mergeLocation">custom</property>
                <!-- ↑↑↑ ここ ↑↑↑ -->
                    :
                    :

PROJECT_ROOT/custom/templates/bpm4struts/pages/main-layout.jsp.vsl

を作成する。
main-layout.jsp.vsl は、andromda-src-3.2.zipを解凍してできたbpm4strutsのカートリッジから持ってくる。

main-layout.jsp.vsl を修正。

スタイルシートファイルをアプリケーション(war)に追加

PROJECT_ROOT/web/src/main/jsp/layout/print_secure.css を作成
本CSSファイルはmain-layout.jsp.vslのlinkタグから参照させる。

インストール
mvn install