2018/3/20 修正

GitHubでThymeleaf版のチュートリアルについて問い合わせたところ、一部の節はJSP版でリリースしている。との回答をいただきました。
また、チュートリアル以外にもJSP版でリリースしている箇所をWikiにまとめてくださいました。次版以降で対応されるそうなので、ThymeleafでTodoアプリケ−ションを作りたい人は気長に待ちましょう:smiley:

というわけで、タイトルを修正いたしました。

前:Macchinettaを使ってTodoアプリケーションを作ってみた
後:Macchinettaがリリースされました

あわせて、本投稿のサンプルアプリケーションの節をほぼ打ち消しました。

Macchinettaとは?

Macchinetta Framework(マキネッタ。以下Macchinettaとします。)は、3/13にNTTが発表したWebシステムを開発するためのアプリケーションフレームワークで、OSSとしてGitHub上に公開されています。詳しくは下記のリリース記事を参照してください。

リリース記事:
効率的なソフトウェア開発を実現するNTTのJava開発フレームワークを公開しIT業界に貢献

ガイドラインのフレームワークスタックを見るとどうやらSpringを中心としたOSSの組み合わせのようです。

TERASOLUNAとの関係

Springを中心としたOSSの組み合わせと言えばNTTデータが提供しているTERASOLUNA Server Framework for Java (5.x)(テラソルナ。以下TERASOLUNAとします。)を思い浮かべますが、Macchinettaの依存関係を見るとTERASOLUNAが提供しているライブラリを参照しているので、MacchinettaTERASOLUNAを包含しているようです(スタックを見た感じ、Macchinetta独自の共通ライブラリのようなものは、少なくともServer Frameworkにはなさそう)。
ちなみにMacchinettaが利用しているTERASOLUNAのバージョンは5.4.1.RELEASEで、一般に公開されている5.3.1.RELEASEよりも新しくなって……と思ったら、5.4.1.RELASEが3/16にリリースされていました:scream_cat:。ちなみに3/19現在、ガイドラインは日本語のみのようです。

OSSのスタック

MacchinettaTERASOLUNAのスタックを比較すると、Macchinettaでは日付操作を提供するJadira UsertypeJPAがサポート外になっています。私がこれまでに携わった案件では、いずれもMyBatis3を使っていましたがJPAは不人気なんですかね?
またTERASOLUNAではViewにJSP&Apache Tilesを利用していますが、MacchinettaではJSP&Apache Tilesと別にThymeleafをサポートしています(ガイドラインもJSP&Apache Tiles版とThymeleaf版があります)。

ちなみに、MacchinettaTERASOLUNAも参照しているSpring IO platformのバージョンはBrussels-SR5ですが、Brussels-SR5が含むSpring FrameworkSpring Securityに脆弱性CVE-2018-1199が報告されているため、Spring FrameworkSpring SecurityだけBrussels-SR5で指定しているバージョンよりも新しくなっています。

機能

TERASOLUNAではServer Frameworkbatch機能を提供していましたが、Macchinettaではそれに加えてSpring Cloudなどを利用したクラウド拡張と、jQueryなどを利用したクライアント側の開発をするためのOSSライブラリ群を提供しています(リリース記事ではクライアントについて特に言及していませんが、どういう位置づけなんでしょうか:thinking:)。

サンプルアプリケーション

せっかくなのでThymeleaf版のチュートリアルをやってみました。
TERASOLUNAと同様にMavenのアーキタイプで作成します。

ブランクプロジェクトを作成するコマンド
mvn archetype:generate -B^
 -DarchetypeGroupId=com.github.macchinetta.blank^
 -DarchetypeArtifactId=macchinetta-web-blank-noorm-thymeleaf-archetype^
 -DarchetypeVersion=1.5.1.RELEASE^
 -DgroupId=todo^
 -DartifactId=todo^
 -Dversion=1.0.0-SNAPSHOT

注意点としては、archetypeArtifactIdに明記しているように、ブランクプロジェクトにもJSP&Apache Tiles版とThymeleaf版があります。

で、読み進めていったところ……アプリケーションのTODOの入力フォーム作成のところで詰まってしまいました:disappointed_relieved:
本来ならばtodo/src/main/webapp/WEB-INF/views/todo下にlist.jspを作成しhttp://localhost:8080/todo/todo/listにアクセスすると入力フォームが表示されるはずなのですが、なぜかエラーになってしまいます。
例外ログを見ると……

Caused by: java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/views/todo/list.html]
    at org.springframework.web.context.support.ServletContextResource.getInputStream(ServletContextResource.java:141)
    at org.thymeleaf.spring4.templateresource.SpringResourceTemplateResource.reader(SpringResourceTemplateResource.java:103)
    at org.thymeleaf.templateparser.markup.AbstractMarkupTemplateParser.parse(AbstractMarkupTemplateParser.java:223)
    ... 112 more

todo/list.htmlがない……?:thinking:
実はThymeleafを触るのは初めてで、事前知識なしでチュートリアルに挑んだわけですが、4.1. テンプレートエンジン(Thymeleaf)を読むと、テンプレートHTMLを実装するように書かれていますねぇ。
ためしにJSP&Apache Tiles版とのチュートリアルの差分を取ったですが……

213c213
<     Bash上で\ ``mvn archetype:generate``\ を実行する場合は、以下のように"\ ``^``\" を"\ ``\``\" に置き換えて実行すればよい。
---
>     Bash上で\ ``mvn archetype:generate``\ を実行する場合は、以下のように"\ ``^``\" を\ ``\``\ に置き換えて実行すればよい。
219c219
<          -DarchetypeArtifactId=macchinetta-web-blank-noorm-archetype\
---
>          -DarchetypeArtifactId=macchinetta-web-blank-noorm-thymeleaf-archetype\
239c239
<      -DarchetypeArtifactId=macchinetta-web-blank-noorm-archetype^
---
>      -DarchetypeArtifactId=macchinetta-web-blank-noorm-thymeleaf-archetype^
257c257
<      -DarchetypeArtifactId=macchinetta-web-blank-archetype^
---
>      -DarchetypeArtifactId=macchinetta-web-blank-thymeleaf-archetype^

コマンド以外の差分がない……あっ、察し。
じゃけん、イシューあげましょうね。
The document of todo tutorial with Thymeleaf seems same as the one with JSP.
何度もURLを見直したのでJSP版とThymeleaf版を混同していることはないはず……。

TERASOLUNAと違ってチュートリアルのコードが公開されていないので、これ以上は進められ無さそうです。

勝手な予想

実際にMacchinettaTERASOLUNAを利用するかはさておき、Springに関する日本語のドキュメントとしては、これらのガイドラインは非常に有用だと思います。しかし、サポートのスピードが遅く、最新のSpringは5.xがリリースされていますが、MacchinettaTERASOLUNAがサポートしているのはまだ4.3系なんですよねぇ。TERASOLUNAはこれまで半年に1回くらいのペースでバージョンアップが来ているので、今年の夏くらいにSpring 5.xをサポートしたMacchinettaTERASOLUNAがリリースされるのではないでしょうか?

投稿に至った経緯

Qiitaに誰もMacchinettaの記事を書いていなかったので、1ゲットいただくために、簡素ですが記事にいたしました。しかし、Macchinettaのイシューでも1ゲットするとは:cold_sweat:

今だ!1ゲットォォォォ!! 
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄       (´´ 
     ∧∧   )      (´⌒(´ 
  ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡ 
        ̄ ̄  (´⌒(´⌒;; 
      ズザーーーーーッ 
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.