11
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Macchinettaがリリースされました

Last updated at Posted at 2018-03-19

2018/3/20 修正

GitHubでThymeleaf版のチュートリアルについて問い合わせたところ、一部の節はJSP版でリリースしている。との回答をいただきました。
また、チュートリアル以外にもJSP版でリリースしている箇所を[Wiki]
(https://github.com/Macchinetta/server-guideline-thymeleaf/wiki/1.5.x.RELEASE)にまとめてくださいました。次版以降で対応されるそうなので、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ゲットォォォォ!! 
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄       (´´ 
     ∧∧   )      (´⌒(´ 
  ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡ 
        ̄ ̄  (´⌒(´⌒;; 
      ズザーーーーーッ 
11
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?