投稿

12月, 2012の投稿を表示しています

Redmine XLS Export pluginへの機能追加

以前、Redmine XLS Export plugin をgithubに入れて機能追加をしたりしてました。
ただ、0.2.0から大きくソースが変更されて以来、放置していました orz

過去のブログ
Redmine XLS Export pluginRedmiine XLS Plugin 0.2.0を試す フォーラムに新しい翻訳が上がったのを機に、リポジトリを整理して対応をしました。
https://github.com/two-pack/redmine_xls_export

リポジトリの整理 上記の通り、大幅なソース変更が入ったこともあり、以下の2つのブランチを作って整理しました。

officialRedmineのプラグインサイトで公開されているオフィシャルのソースを入れているブランチ。
XLS Exportプラグインは、作者がリポジトリでの公開をしていない(RedmineのプラグインサイトでZIP形式で展開されている)ので、追いやすいようにという意味もあります。featuresRedmineのフォーラムでは、有志の方たちが翻訳などをアップしています。これらの取り込みや、後述するような個人的な機能追加などを行うブランチとして作りました。
次のリリースがあったら、 official へ追加してから features にマージ、と言う形で管理していけるといいかなと考えています。

日付の形式を指定する機能追加 以前のバージョンで追加していた機能に関して、0.2.x用に変えて機能追加しました。コミットは以下です。
https://github.com/two-pack/redmine_xls_export/commit/0a5b1e68ca68c38dc46e075aaf506b7b8c7156bb

以前のバージョンで追加機能に対しても翻訳を頂いていたので、その辺も取り込みつつ対応しました。


今回、この辺なんとかしないとなあ、、、と思ったのは、ALminiumのプラグインリストに、上記githubのアドレスから取得しているのがコメントアウトされていたこと。
せっかく使ってもらっていたのに、放置して使ってもらえなくなったのは残念だったなあ、、、と思い、整理をはじめました。
今後も、フォーラムをウォッチして翻訳など最新の状態を取り込んでいけたらなと思っています。

Springで提供されているモッククラス [Spring Framework Advent Calendar 2012 11日目 #jsug ]

Spring Framework Advent Calendar 2012の11日目です。
4巡目!間に合うか!(今23:50w)

Spring Frameworkではテスト用のモッククラスが提供されています。

一例としてMockHttpServletResponseを使ったテストケースが以下のようなものです。
@Test public void testGetName_Tom() throws Exception { MockHttpServletResponse response = new MockHttpServletResponse(); assertThat(sut.getName(response, 1), is("Tom")); assertThat(response.getStatus(), is(HttpServletResponse.SC_OK)); }
テスト対象のメソッドはコントローラーのもので、HttpServletResponseを引数に取っています。
@RequestMapping(value = "/person/name/{id}", method = RequestMethod.GET) public @ResponseBody String getName(HttpServletResponse response, @PathVariable int id) { if(id == 1) { return "Tom"; } response.setStatus(HttpServletResponse.SC_NOT_FOUND); return "Not found."; }
HttpServletResponseのようなインスタンス化できないものについて、モックがあらかじめ用意されているのは非常に便利です。うまく使ってJunitを書きたいですね。

ソース全体はここでアップしています。ざっくりな内容なのはご容赦を。。。
https://bitbucket.org/twopack/jsonrest/commits/f7038c946113f538ffc4d5ee1cd729d5

Spring Frameworkについての情報 [Spring Framework Advent Calendar 2012 9日目 #jsug ]

Spring Framework Advent Calendar 2012の9日目です。
3巡目!繋ぎますw

Spring Frameworkについての情報ってどこにあるんだろう?
ということで、ぐぐったり、今まで見たものを覚えている範囲でまとめてみます。
Spring使いはじめて間もないので、そういう人向けになるといいなあ、と思っています。


ぐぐってみたもの
SpringSource.org
まずは、本家本元。チュートリアル、ニュース、開発者ブログなどがあります。
ニュースはRSSもあります。

日本Springユーザ会
日本Springユーザー会は、日本におけるSpringの情報交換を目的としたコミュニティです。
今回ぐぐって参加したのは、ないしょですw

Spring Framework - Wikipedia
日本語でまとまっているので、概略を掴むにはいいのでは?


今までにみたもの
Spring 3 MVC Hello World Example
Spring MVCのチュートリアルを書いてあるブログ。
なんとなくわかりやすそうだったので、これで写経してみました。

Spring 3.x - Spring MVC - Advanced topics
Spring3でのアノテーションについて、概略の説明がスライドになっています。

Spring 3.x - Spring MVC
こちらはSpring MVCの説明のスライド。

Spring 2.5:Spring MVCの新機能
Spring3の記事ではないですが、Spring MVCの機能を知るという意味では、わかりやすかったものです。
特に 暗黙のModel については、ソースはいろいろなところで見ましたが、どういうことかは、ここでやっとわかりました。


さいごに
もっと、いろいろな情報があると思います。特に日本語でも。
ここは必見というのがあれば、ぜひ教えてもらいたいなあ、と思います。

さて、無理矢理w繋いでみましたが、10日目は!?

MappingJacksonJsonViewを使ってみる [Spring Framework Advent Calendar 2012 7日目 #jsug ]

Spring Framework Advent Calendar 2012の7日目です。
2巡目!

これまた先日ブログで書いた二番煎じですが、Spring MVCでJSONを返すViewの例です。
ソースはここにあります。

サーブレットの設定とりあえず、ソースです。
<beans:bean xmlns="http://www.springframework.org/schema/beans" class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver"> <property name="mediaTypes"> <map> <entry key="json" value="application/json" /> </map> </property> <property name="defaultViews"> <list> <bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView"> <property name="prefixJson" value="true"/> </bean> </list> </property> </beans:bean>
ContentNegotiatingViewResolver は、リクエストのAccept headerやファイル名をもとにViewを解決します。
map で指定しているのは、 key がファイルの拡張子、 value がコンテンツタイプです。
defaultViews は、ViewResolverのチェーンでViewが解決できない場合に使われるViewを指定します。
今回は、ここで Mapping…

Spring + Thymeleafでデザインの分離を進める(のとっかかり) [Spring Framework Advent Calendar 2012 5日目 #jsug ]

Spring Framework Advent Calendar 2012の5日目です。

とっかかりということで、Hello Worldです。
以前のブログでもこの組み合わせについて書いていますが、導入を含めて少しまとめた形で書いていこうと思います。
以下の環境で確認しています。

Max OS X 10.7.5Eclipse JavaEE Juno SR1JDK 1.6Spring MVC 3.1.1.RELEASEThymeleaf 2.0.13

プロジェクト作成
Spring MVCテンプレートからのプロジェクト作成Spring MVCのテンプレートからプロジェクトを作ります。
Eclipseで、
New -> Other -> Spring Template Project -> Spring MVC Project
から作成します。ウィザードを完了した状態で私の環境ではプロジェクトにエラーがある状態でした。これらは以下を実行して解消しました。
Run -> Run As -> Maven BuildGoalscompile を指定して実行する。プロジェクトで右クリックして Maven -> Update Project を選択する。
Thymeleafのライブラリを依存関係に追加Spring 3.xでThymeleafを使う場合には、 thymeleaf-spring3 を使用します。
使用するには、Mavenのpom.xmlに以下を追加します。
<dependency> <groupId>org.thymeleaf</groupId> <artifactId>thymeleaf-spring3</artifactId> <version>2.0.13</version> </dependency>
テンプレートエンジンの変更Spring MVCのテンプレートで作成されるプロジェクトは、JSPのテンプレートエンジンを使ったHello Worldです。これをThymeleafのテンプレートエンジンに差し替えます。

サーブレットの設定サーブレットの設定ファイルを以下のように書き換えます。
<beans:bean id="…