2013年12月25日水曜日

WildFly 8.0.0.CR1

ようやく出てたのでとりあえずいつものブート。
久しぶりに、ZIP 版が生きてましたw



Final は1月末みたいですね。
https://issues.jboss.org/browse/WFLY?selectedTab=com.atlassian.jira.plugin.system.project%3Aroadmap-panel&_sscc=t


2013年11月13日水曜日

RESTEasy の Bean Validation

そんなの API で受けてから手動でやりなさいよ!と言われるかもしれないけどできることなら冗長なコードは排除したい。

そんなあなたに ExceptionMapper を使う方法を。

使い方が変わったようなので新旧書いときます。(大体同じようなことはしてますが全く同じではないので注意)

※RESTEasy 2.3 の方は EJB との組み合わせに問題がある・・・・ので、できれば RESTEasy 3 の方がおすすめです。

□WildFly 8.0.0.Beta1 & RESTEasy 3.0.4.Final
@Provider
public class ValidationExceptionHandler implements
        ExceptionMapper<ResteasyViolationException> {

    @Override
    @Produces(MediaType.APPLICATION_JSON)
    public Response toResponse(ResteasyViolationException exception) {

        ValidateMessage errors = new ValidateMessage();

        for (ResteasyConstraintViolation violation : exception.getViolations()) {
            errors.getMessages().add(
                    new Message(String.format("%s:%s:%s:%s", violation
                            .getPath(), violation.getConstraintType().name(),
                            violation.getValue(), violation.getMessage())));
        }

        return Response.status(Status.BAD_REQUEST).entity(errors).build();
    }
}
□JBoss AS 7.1.x & RESTEasy 2.3.x
@Provider
public class ValidationExceptionHandler implements
        ExceptionMapper<MethodConstraintViolationException> {

    @Override
    @Produces({ MediaType.APPLICATION_JSON })
    public Response toResponse(MethodConstraintViolationException ex) {
        ValidateMessage errors = new ValidateMessage();

        for (MethodConstraintViolation<?> violation : ex
                .getConstraintViolations()) {
            errors.getMessages().add(
                    new Message(String.format("%s:%s:%s:%s", violation
                            .getMethod().getName(), violation
                            .getParameterName(), violation.getInvalidValue(),
                            violation.getMessage())));
        }

        return Response.status(Status.BAD_REQUEST).entity(errors).build();
    }
}

□JSON 出力のためのドメインクラス
@XmlRootElement(name = "validate_message")
public class ValidateMessage implements Serializable {
    private static final long serialVersionUID = 1L;

    private List<Message> messages = new ArrayList<Message>();

    public static class Message {

        private String message;

        public Message() {
        }

        public Message(String message) {
            this.message = message;
        }

        public String getMessage() {
            return message;
        }

        public void setMessage(String message) {
            this.message = message;
        }

    }

    @XmlElementWrapper(name = "messages")
    @XmlElement(name = "message")
    public List<Message> getMessages() {
        return messages;
    }

    public void setMessages(List<Message> messages) {
        this.messages = messages;
    }
}

□pom.xml(RESTEasy 3.0.4.Final)
        <dependency>
            <groupId>org.jboss.resteasy</groupId>
            <artifactId>resteasy-validator-provider-11</artifactId>
            <version>3.0.4.Final</version>
            <scope>provided</scope>
        </dependency>
 □pom.xml(RESTEasy 2.3.x)
        <dependency>
            <groupId>org.jboss.resteasy</groupId>
            <artifactId>resteasy-hibernatevalidator-provider</artifactId>
            <version>2.3.7.Final</version>
        </dependency>

2013年9月26日木曜日

SwitchYard on OpenShift

デモビデオが出てたので貼っときます。
http://vimeo.com/75402902#

え。でも、OpenShift の SwitchYard って 0.4 じゃなかった?

・・・・と思ったら、0.8 に上がってました。なぜ 1.0 じゃない?w

あ、ここに纏められるみたいですね^^
https://community.jboss.org/wiki/SwitchYardVideoSeries

2013年9月11日水曜日

最近困っている不具合一覧

■解決して助かった問題
■新たに、jira に登録してもらった課題

2013年8月8日木曜日

Support injection of JMSContext

WildFly で JMS の @Inject アノテーションによるインジェクションができないという問題(正確には、JMS 2.0 機能が満たせてないだけ)があったのですが、対応が入ったみたいです。
https://issues.jboss.org/browse/WFLY-1286

コード量が少し減りますかね。

2013年7月29日月曜日

JBDS7

今朝、村形軍曹から、JBDS7 が出てるよ、と。

・・・・本当だ^^
http://planet.jboss.org/post/jboss_tools_4_1_and_developer_studio_7_go_ga

JBDS7 Beta2 からアップデートしてみる。








できた。


とりあえず、AS7.2~WildFlyを利用している人は更新必須ですかね~

2013年6月25日火曜日

GlassFish 4.0

いつの間にかリリースされてた。
https://glassfish.java.net/download.html

2013年6月24日月曜日

WildFly 8.0.0.Alpha2

リリースされてますね~
http://www.wildfly.org/download/
https://github.com/wildfly/wildfly/tree/8.0.0.Alpha2

あー、なんか Alpha1 で作ってたプロジェクトはそのままじゃ動かんな~w

2013年6月13日木曜日

OpenShift!

正式発表された、OpenShift にスモールサイズのインスタンスを作ってみたよ!
URL こういうの意外と取れるのねw

http://hoge-fuga.rhcloud.com/

さて・・・・置くモノが無いなw

2013年6月4日火曜日

Java EE 7 is Final!

気づくのが遅くなってしまいましたが、EE 7 spec が Final Release になっていました。
http://jcp.org/en/jsr/detail?id=342


あとは、個人的に気にしている spec を列挙しときます。(自分用のメモ)

WebSocket(JSR356)
http://www.jcp.org/en/jsr/detail?id=356

EJB 3.2(JSR345)
http://jcp.org/en/jsr/detail?id=345

JMS 2.0(JSR343)
http://jcp.org/en/jsr/detail?id=343

JAX-RS 2.0(JSR339)
http://jcp.org/en/jsr/detail?id=339

2013年5月18日土曜日

WildFly 8.0.0.Alpha1 をビルド

WildFly 8.0.0.Alpha1 のタグ付けがされたようなので、早速ビルドしてみたよ!

$ cd /path/to
$ git clone https://github.com/wildfly/wildfly.git
$ cd wildfly
$ git tag
7.0.0.Alpha1
7.0.0.Alpha1-final
7.0.0.Beta1
7.0.0.Beta1-prerelease
7.0.0.Beta2
7.0.0.Beta2-prerelease
7.0.0.Beta3
7.0.0.CR1
7.0.0.Final
7.0.0.Final-prerelease
7.0.0.Final-prerelease2
7.0.0.Final-prerelease3
7.0.1.Final
7.0.2.Final
7.0.2.Final-prerelease
7.0.2.SP1-prerelease
7.1.0.Alpha1
7.1.0.Beta1
7.1.0.Beta1b
7.1.0.Beta1b-prerelease
7.1.0.CR1
7.1.0.CR1b
7.1.0.Final
7.1.0.Final-prerelease
7.1.0.Final-prerelease2
7.1.1.Final
7.1.2-prerelease
7.1.2.Final
7.1.3.Beta1
7.1.3.CR1
7.1.3.Final
7.2.0.Final
7.2.0.Final-prerelease1
7.2.0.Final-testsuite-fix
8.0.0.Alpha1

$ git checkout -b new 8.0.0.Alpha1
$ JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386 ./build.sh -DskipTests

ビルドが終わったら、以下のようにしてインストール先にバイナリを移動します。

$ mv build/target/wildfly-8.0.0.Alpha1/ /usr/local/jboss/

で、起動

$ cd /usr/local/jboss/wildfly-8.0.0.Alpha1
$  JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386 ./standalone.sh

 以下が表示されれば起動完了!

15:40:49,486 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015874: WildFly 8.0.0.Alpha1 "WildFly" started in 5917ms - Started 154 of 191 services (57 services are lazy, passive or on-demand)
 

2013年5月9日木曜日

WildFly

とりあえず初めての起動。





2013年4月30日火曜日

Java EE 7 リリーススケジュール

5/13 予定のリリーススケジュールの詳細。
https://java.net/projects/javaee-spec/pages/Home#Java_EE_7_Schedule
http://den2sn.hatenablog.com/entry/2013/04/25/075201

予定だと、もう JSR356 は spec release されてもおかしくないんだけど、遅れているのかな?

2013年4月11日木曜日

Atmosphere-jsr356

Atomosphere の JSR356 対応版の github を発見。
https://github.com/Atmosphere/atmosphere-jsr356

今のところ、クラスが2つ入っているだけのラッパーみたいだけど、JBoss でも JSR356 できそうな?

GlassFish4 WebSocket

はい。

WebSocket を JSR356 で実装したいので、しばらくおとなしく GlassFish4 でも使うことにします。

参考ページ乗せますが、既に spec 自体が変わっていてそのままは使えません。
素直に最新 spec 読むのが一番ですw
http://jcp.org/en/jsr/detail?id=356
http://d.hatena.ne.jp/m-prog/20121027/1351324887
https://blogs.oracle.com/arungupta/entry/websocket_applications_using_java_jsr
http://yoshio3.com/2012/11/12/websocket-twitter-timeline-sample/

早く、JBoss でも JSR356 が取り込まれることを期待しますw

2013年4月4日木曜日

JBDS6.0.1

入れてみたけど、AS 7.2 対応はまだみたい。