ひしだまの変更履歴

ひしだまHPの更新履歴。
主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。

Xtextネイチャー

2013-10-23 23:13:35 | PG(Java)

Xtextを使ってエディターを作ると、そのエディターを初めて開くときに「Do you want to add the Xtext nature to the project 'プロジェクト名'?」というダイアログが開く。
これはそのプロジェクトにXtextネイチャーを追加するかどうか確認するもの。
(ネイチャーはEclipseの機能で、例えばJavaの開発の場合はJavaNatureが使われている)
Xtextネイチャーを追加しないと一部の機能が使用できない。

Xtextの作者としては、ネイチャーを使うかどうかをユーザーに明示的に確認する、という姿勢のようだ。
が、エディターを使うだけのユーザーから見ると、エディターがXtextを使っているかどうかは関係ないし、「変なダイアログが出た」と思うだけのような気がする。

という訳で、Xtext版DMDLエディター(DMDL EditorX)では、自動的にXtextネイチャーを追加するようにしてみた。
というのは、ネイチャーを追加するとEclipseの.projectファイルにネイチャーの設定が追加されるのだが、現在のAsakusa FrameworkはMavenを使っているので、「mvn eclipse:eclipse」を実行すると.projectファイルが作り直されてしまい、ネイチャーの情報が消えちゃうから^^;
その都度毎回Xtextネイチャーを追加するダイアログが出るのもどうかなぁと思うので。


WindowsでAsakusaFW0.5.1のテストを実行する方法

2013-10-05 11:07:35 | PG(分散処理)

まいあしさんという方からAsakusa Framework0.5.1をWindows7(+CDH3Cygwin)にインストールしてバッチやジョブフロー・フローパートのテストを実行する方法を教えていただいた。
とても素晴らしいのでぜひ公開するようお願いしたら、まいあしさんはブログを持っていないとのことなので、当方で公開させていただくことになった。

非常に細かい部分で若干手を加えた箇所もあるけど、自分がかつてやろうとした方法に比べると最小限の手順で済み、本当に素晴らしい^^


いやあ、やっぱりAsakusaFWをWindowsで動かしたい人っているんだなw

自分が初めてAsakusaFWを知った頃(バージョン0.2.1)は、持っていたパソコン(特に会社のは…)が貧弱でVMwareなんかが動くとは思えなかったので、Windowsで試したいという欲求があったんだよね。

AsakusaFW0.2.1で自分がやった方法は、必要な部分にcygpathを入れてパスをUNIX⇔Windows間で変換し、ものによっては「file:/」を追加するというもの。
まいあしさんは「file:/」を追加するのにsedを使っていた。自分は正規表現が苦手なので、この方法は全く思い付かなかった^^;

一番問題になるのが、JavaのProcessBuilderはWindowsではシェルを呼べないこと。
自分はシェルと同名のexeファイルを作ってシェルを置き換えるという方法を採ったが、これは面倒くさいんだよね(汗)
まいあしさんのはテストを実行するクラスにパッチを当てるという方法。
パッチを当てるのは自分も思い付いてたけど、AsakusaFW自体のコンパイル環境を作ってjarファイルを作り出すのが無理だと思って諦めてたんだよね。
パッチを当てたJavaソースをAsakusaプロジェクト内に置いてしまえば、jarファイルに入っている本来のクラスよりも優先してロードされる(使われる)というのが、裏技っぽいけど見事(笑)


現状のAsakusaFW自身がWindowsに対応していないのは、AsakusaFWがテストの実行に使用するHadoopがWindowsに正式対応していないのが主な理由。

CDH3(Hadoop0.20)はCygwinで曲がりなりにも動かせたけど、最近のHadoop1系は動かせないっぽいし、CDH3もメンテナンス終了になるみたいだし。

そんな中で、AsakusaFWのサービスであるNode0 DBRはWindows上で開発できるというコンセプトだけど、テストの実行自体はサーバー側で行うんだよね。
(ソースの開発をWindows上で行い、ソースをNode0 DBRのサーバーにアップロードするとビルドおよびテストが実行される。ビルドレポートはソースの解析結果をグラフ化して格好いいんだけど、Node0 DBRのページにはビルドレポートのイメージは掲載されていないな^^;) 

もっとも、Hadoop2.1HortonworksのHDPがバックポートされて(?)本格的にWindows対応するっぽいので、そうなったらAsakusaFW本体もWindows対応するかも。
YARNを使う気はさらさら無いが(爆)、Windows対応には期待(笑)