2009年11月25日水曜日

JAXBの使い方メモ(2009/11/25更新)

最も基本的なアノテーション

次のようなXMLをクラスにマッピングする。

<root-element attr="abc">
    <sub-element></sub-element>
</root-element>

アノテーションのつけ方はこんな感じ。

@XmlRootElement(name="root-element")
public class RootElem {

    @XmlElement(name="sub-element")
    public String subElem;

    @XmlAttribute
    public String attr;
}

インデックスファイル

バインディングしたいクラスのパッケージにjaxb.indexというファイルを作る。
中身はパッケージなしのクラス名を1行に1つずつ書いたテキストファイル。後述のJAXBContextで指定したパッケージからこのインデックスファイルが読まれる。

継承

abstract public class SuperClass {
    @XmlAttribute
    public String name;
}

@XmlRootElement(name="subclassA")
public class SubClassA extends SuperClass {

    public String value;
}

@XmlRootElement(name="subclassB")
public class SubClassB extends SuperClass {

    @XmlAttribute
    public int c;

    @XmlAttribute
    public int value;
}

マーシャリング(XML生成)

// jaxbtext.entityパッケージのクラスを対象にする
JAXBContext context = JAXBContext.newInstance("jaxbtest.entity");
RootElem root = <出力するオブジェクト>
Marshaller marshaller = context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
Writer out = new OutputStreamWriter(new FileOutputStream("output/marshal.xml"), "utf-8");
marshaller.marshal(root, out);
out.close();

アンマーシャリング(XML読み込み)

JAXBContext context = JAXBContext.newInstance("jaxbtest.entity");
Unmarshaller unmarshaller = context.createUnmarshaller();
RootEntity obj = (RootEntity)unmarshaller.unmarshal(new File("output/marshal.xml"));



2009年11月19日木曜日

Flash Player 10.1 ベータ版公開

早速インストールしてみた。

64bit版Windows 7 ではActiveXのインストールに失敗。32ビット版Windows 7 にはインストールできた。

GeForce9400のグラフィックドライバは安定版の191を使っている。Flash Player 10.1のGUアクセラレーションはバージョン195(まだベータ版のみリリース)でサポートされるらしい。

Pluginは64ビット版Windows 7にもインストールできた。

GPUアクセラレーションを有効にしない状態では以前のSWFは問題なく再生されているようだ。

ShaderFilterで任意の位置のピクセルがサンプリングできないという仕様が改善されていることを期待していたのだけど、これは改善なし。



2008年10月25日土曜日

Amazon EC2のWindowsを使ってみた

Amazon AWSのEC2でWindowsが使えるようになったので早速試してみた。
普通に起動して普通にリモートデスクトップで接続できたわけで、普段使っているWindowsと何か違うかというと何も違わない。もちろん、普段使っているのはクライアント版のWindowsでEC2ではサーバ版という違いはあるけど。

ところが、致命的な欠点を発見。

いまのところEC2で使えるイメージ(AMI)は英語版Windowsしかないようで、日本語の表示も入力も一切できない。日本語のキーボードレイアウトすら選択できない。インストールメディアのイメージがどこかにあれば言語の追加インストールもできるが、手元にWindows Serverのメディアはないし、あったとしてもイメージ化してアップロードなんてやっぱりダメだろうな。

EC2でサイトイメージのキャプチャでも作ろうと思ってたのに日本語が表示できないんじゃどうしようもない。頼むから日本語版のイメージ作ってくれ、ほんとに。

-- 追記 (2008/11/3) --

WindowsのインストールメディアはEBSのスナップショットとして用意してあった。AWSのResourcesのArticles&Tutrialsに「Configuring Windows Components on Amazon EC2」という記事に書いてあった。このスナップショットからEBSボリュームを作成してWindowsのインスタンスにアタッチすると各種コンポーネントのインストールが可能になる。