読者です 読者をやめる 読者になる 読者になる

Challenge Java EE !

Java EEを中心に趣味や仕事における開発メモを書いています。

PrimeFacesのTimelineコンポーネントで1年を振り返ろう!

Java EE 7 JSF PrimeFaces

この記事は「Java EE Advent Calendar 2016」の8日目の記事です。
昨日は@sudoyuさんの「Spring系の2016年の現行プロジェクトをまとめてみる」でした!
明日は@megascusさんです!

自分にとってJava EE Advent Calendarは中々思い入れの強いイベントです。というのも、はじめてお誘い頂いた当時の自分は「アドベントかれんだー?なにそれ…おいしいの?」って感じでして、、

で、はじめて書いたAdventが

kikutaro777.hatenablog.com

です。2012年か…懐かしい。

atnd.org

ということで、4年を経て、改めてPrimeFacesで書いてみます。

実はPrimeFacesは、今もまだしっかりと継続して機能拡張が続いています。バージョンは6.0で、これはOSS版として誰でも自由に使えます。もう1つelite版という有償版があるのですが、そちらは6.0.8となっています。

バージョン6.0が出たとき、いくつかコンポーネントが追加となりました。

PrimeFaces 6.0 Released |

といっても元々PrimeFaces Extensionにあったコンポが統合された形なのですが。6.0.8ではOrganigramなど新しいコンポが増えてたりして、まだまだ拡張されそうです。

ということで、6.0で増えたTimelineコンポーネントというのを使って、自分のこの1年の仕事を振り返ってみました。

f:id:kikutaro777:20161207225040j:plain

うん。色々と心が折れるに十分な1年でしたね。

ソースはこちらにあるので、是非皆さんも1年をJava EEのコードで振り返ってみてください!

github.com

ちなみに、こんなカラフルにしたり

f:id:kikutaro777:20161208000649j:plain

左にある項目をドラッグ&ドロップで投げ込んだり

f:id:kikutaro777:20161208000713j:plain

上下のTimelineで連動させたり

f:id:kikutaro777:20161208000907j:plain

意外と多機能なコンポーネントとなっています!!

Java EE Advent Calendar 2016の8日目が空いてしまってたので、急きょ入れたため、非常に雑なネタとなってしまいました。すみません…。

Spring BootのAutoConfigureには実はSendGridが含まれている!

SendGrid Spring Spring Boot AdventCalendar

この記事は「SendGrid Advent Calendar 2016」の5日目の記事です。
昨日は @ayakomuro さんの「First time using SendGrid」でした。
明日は公式ブログさんですw

Spring Bootの勢い

私は仕事で長らくJava EEを使ってきたのですが、もちろん、常にSpring Frameworkの存在は気になっていました。特にSpring Bootが出て以降、周囲で良い評判を耳にする機会がさらに増え、浮気心が沸いてます。そういった中、先月「Spring Day 2016」に参加したのですが、人の多さやイベントの盛り上がり方、多くの有名企業が発表するセッションなどを目の当たりにして「うぉー」ってなりました(^^;

そんなわけで、最近、改めてコツコツとSpring Bootを触り始めています。ちなみに私みたいなSpring Boot初心者は、最初に以下の本を読むのが良いです。色々と手を動かしながら学べます。薄いけど内容濃くて、持ち運び便利なのも好きな所です。

ちなみに自分はこちらも買ってコツコツ読んでいる所です(^^;

Spring徹底入門 Spring FrameworkによるJavaアプリケーション開発
株式会社NTTデータ
翔泳社
売り上げランキング: 12,616

Spring Boot with NetBeans

自分はJava EEやってたこともあって、IDEはNetBeans派なのですが、以下のプラグイン

plugins.netbeans.org

を使うと

f:id:kikutaro777:20161204231555j:plain

f:id:kikutaro777:20161204231649j:plain

こんな感じでNetBeansからもSpring Initializrでプロジェクトの雛形作成することができて便利です。普段Java EEでNetBeans触ってる方は是非一度お試しを(^^;

SendGridのAutoConfigure

では本題へ。

Spring BootにはAutoConfigureというものがあってSpringが提供してる機能やその他ライブラリなどを簡単に使えるようになっているとのことです。AutoConfigureについては以下の情報がかなり詳しく、実際アノテーションを追っていきながら読んでみると非常に面白かったです。

qiita.com

上記解説の中にAutoConfigureの一覧がありますが、よくみると…

……

おぉ、今日のAdvent CalendarのテーマであるSendGridが!(わざとらしい

f:id:kikutaro777:20161205173837j:plain

GutHubだとここで確認できます。

f:id:kikutaro777:20161205180733j:plain

それにしても、眺めてみると有名なものがたくさん並んでいますね(^^;

f:id:kikutaro777:20161204224834j:plain

couchbase,flyway,mongoなどのDB関連や、freemarker,mustache,thymeleafなどのテンプレートエンジン、hazelcastやkafka,solrなどなど…これらと一緒に並んでいるのをみて、個人的には胸熱です。

Mandrill(MailChimp)などはないですしw

ということで、Spring Bootから簡単にSendGridを利用したメール送信をすることができます。@Beanなどが不要で、application.propertiesかapplication.ymlにAPI Keyを記述するだけで@AutoWiredにてDIされます。

application.properties

spring.sendgrid.apiKey = #SendGridで取得したAPI Keyを指定

または

application.yml

spring:
    sendgrid:
        apiKey : #SendGridで取得したAPI Keyを指定

依存性にSendGridから提供されているJavaライブラリを追加します。

<dependency>
    <groupId>com.sendgrid</groupId>
    <artifactId>sendgrid-java</artifactId>
    <version>3.1.0</version>
</dependency>

あとは、サンプルと合わせて以下のような感じに。今回はRest APIで「/send」を指定したらメールが飛ぶようなサンプルです。

package com.example;

import com.sendgrid.Content;
import com.sendgrid.Email;
import com.sendgrid.Mail;
import com.sendgrid.Method;
import com.sendgrid.Request;
import com.sendgrid.Response;
import com.sendgrid.SendGrid;
import java.io.IOException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class SendGridController {
    
    @Autowired
    private SendGrid sendGrid;
    
    @GetMapping("send")
    public Response send() {
        Email from = new Email("test@example.com");
        String subject = "Hello World from the SendGrid Java Library!";
        Email to = new Email("test@example.com");
        Content content = new Content("text/plain", "Hello, Email!");
        Mail mail = new Mail(from, subject, to, content);

        Request request = new Request();
        Response ret = null;
        try {
            request.method = Method.POST;
            request.endpoint = "mail/send";
            request.body = mail.build();
            ret = sendGrid.api(request);
        } catch (IOException ex) {
            //TODO:例外処理
        }
        return ret;
    }
}

mainはテンプレのまま。

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class SpringBootSendGridApplication {

	public static void main(String[] args) {
		SpringApplication.run(SpringBootSendGridApplication.class, args);
	}
}

SendGridのアカウントを取得して、API Keyを発行していることを前提に書きましたが、Keyの発行自体は非常に簡単です。

APIキーの管理 - ドキュメント | SendGrid
APIキー認証でセキュリティを強化しよう | SendGridブログ

Spring Bootを使ったサービス開発で「メールサーバ構築めんどくさいなぁ」とか「気軽にメール送れるサービスないかなぁ」と考えている方は是非一度お試し頂きたいなーと思います(^^)

サービスを動かす環境としてCloud Foundryも手軽です!

SendGrid x Spring BootをPivotal Web Services(Cloud Foundry)で試す - BLOG.IK.AM
Pivotal Web ServicesからのSendGrid利用 | SendGridブログ

Happy Sending!

JJUG CCC 2016 Fallに参加してきました! #jjug_ccc

今日は日本Javaユーザグループ(JJUG)のイベント「JJUG CCC 2016 Fall」に行ってきました!

www.java-users.jp

今回で何回目の参加なんだろう~。ちなみに今年はJJUG CCC 2016 Springに参加できなかったため、1年ぶりの参加でした。

kikutaro777.hatenablog.com

登録が1500人超えてて、参加も相当な数(懇親会のLTでJJUG会長さんが具体的にお話していた気がするけど、聞けなかった…)だったとのこと。

毎回思うのですが、Javaは色々と言われがちですが、これだけ熱気があるのはすごいことだよなぁと。参加人数が右肩上がりっていう。

なお、各セッションの資料は以下に順次あがっていくようです。

github.com

聞きたいセッションがたくさん横並びしていて、悩む悩む。とりあえず、参加セッションをそれぞれ簡単に。

Be a great engineer!〜 フォローすべきトレンド、スルーすべきトレンドをどう見抜くのか

谷本さんのお話、個人的には一番良かった&心に響いたセッション(基調講演)でした。

今日のようなイベントだと技術的な話はもちろん面白いのですが、こういうマインドとか姿勢に関連する話が聞けるのも凄く面白いです。

今の時代、いろんな技術が溢れていて、かつ流れがはやいので本当追いかけるのが大変ですよね。そういう中で何を追いかけるのがいいのか、ってホント難しいと日々思ってて。それもあって聞きに来たのですが

っていうw

自分はわりと、自分でしっかり考えてうんぬんより、流されやすいタチなので色々と刺さりました。

って思いました(^^;

Java EE - What's Next?

OracleのANIL GAURさんからJava EE 8についてのお話でした。クラウドやマイクロサービスの方向へ、ということで、スライドや内容的にはJavaOneでの発表とほぼ同じだったのかなーと。とはいえ、日本へ来日してくださって直接話が聴ける貴重な機会でした。

www.publickey1.jp

www.youtube.com

Spring超入門

最初、@makingさんのセッション「Event Driven MicroServices with Spring Cloud Stream」に向かったのですが、スクリーンに

とあって(^^;自分はSpringやBoot初心者なので、素直にLルームへいきました(笑

「超入門」とあるだけあって、セッション内容的にはだいぶ初心者向けだったのかなーと。

この一言が衝撃w

Java + spring-boot で書く! LINE BOT ライブコーディング

@tokuhiromさんの発表+ライブコーディングでした。

自分で先日LINE Messaging APIをちょうど触ろうとしていて、トークン発行しようとしたらhttpsのサーバが必要、ってことで、どこかのクラウドにするか、証明書とるか、どうしよーとフリーズしてた所だったので

とデモみて知れたのがよかったです。ngrok自体は

kikutaro777.hatenablog.com

とかでも触ってて知ってたのですが、httpsもいけるの知らなったです(^^;

それにしてもLINE使ったデモとかは見てるだけで面白いなーと。自分だけでなく聴衆の皆さん反応してたので、きっと同じはず。

LINE Bot Awardsにトライしてみたい(>_<;

GitBucketを支えるJava技術とグローバルで使われるOSSの作り方

このセッションも非常に熱かったです。GitBucketは自分も一時期使ってたりして、java -jarで起動できるあの手軽さはホント素敵ですよね。

色んなOSSでコミッタされてたり、GitBucketのような世界で利用されるOSS作って、それを成長させて広めるなど、イチしながいエンジニアとしては「すごいなぁ…かっこいいなぁ…」と思うばかりでした。Javaの資産を使いつつ、Scalaで確実な開発を効率よくされているのだなーと。

ギッハブ社との一連の話はブログとか拝見してて知ってたのですが、改めてご本人の口から聞くと面白かったです。

GitBucketステッカーめっちゃ欲しかったのだけど、勇気が出なかったのが悔やまれます(^^;コミュ障なおさないと…。

JavaFX アプリケーションを素敵に着飾ってみる

すごい面白い発表でした。発表スライドがJavaFXってのが熱いですよね。さくらばさん流というかなんというか。

JFoenixとか初めて知ったのですが、ちょっと触ってみたいな。というか、最近全然JavaFX触ってなくて(^^;久しぶりに遊んでみたくなりました。

受験勉強経験も留学経験もない日本人がJavaOneで英語で講演できるようになるまで

@yusukeさんのお話。2年連続でJavaOneスピーカーだし、このタイトルは非常に興味深い!ということで参加。すんごいコミコミでしたね(^^;スクリーン前まで人が座っているというw

やっぱり自ら色々と挑戦していく姿勢が大事だなーとお話を聞いて思いました。ちょうど来週月曜に、海外採用の新人さんに英語で仕事紹介とかするので、がんばるぞ!

JPA と DDD の関係で僕が思っていること

よくQiitaとかでお世話になる@opengl-8080さんのお話でした。

EclipselinkとHibernateであそこまで色々比較されてるのすごい(^^;自分は全然DDDに疎いのですが、ほー、概念的にそんな共通するのかーと思ったり。

懇親会でお会いできて、ご挨拶できて良かったです。

Payara Micro の設計と実装

はすぬまさんからのお話。もうPayara Microのガイドブックというか、本だよこれ…みたいに綺麗&詳しくまとまってましたね。Adventも必見ですよ…。

qiita.com

懇親会

コップが!

f:id:kikutaro777:20161204011049j:plain

珍しくLTしてきました。人が多いので、地味にすごい緊張したのですが、盛り上がったいただけて良かったです(^^;

LTしてポップコーンもらえました(^^)

f:id:kikutaro777:20161204011028j:plain

バリバリな開発は離れてしまったのですが、やっぱりセッション発表とか、もう一度やってみたいな!という気持ちが今日参加してフツフツと沸きました。スポンサーじゃないのにSendGridとか話すわけにいかない(なればいい、って話もあるけどw)ので、JavaMailとかw って需要ないかw

……

これだけの規模のイベントを運営されるJJUGスタッフの皆さま、発表者の皆さま、本当にありがとうございました!

にほんブログ村 IT技術ブログへ
にほんブログ村
にほんブログ村 IT技術ブログ Javaへ
にほんブログ村