BluePrintsと格闘中。

何をしようとしているのか。

S2ファミリによるアプリケーション構築と、
BluePrintsアプリケーションを構築する事を比較する……予定です。


S2とBluePrintsと比較する事で展開する予定の論理の主眼は、
Seasar2及びS2ファミリがJ2EEをいかに易しく、優しくしているか。
具体的には、

  • 同じ仕様に対して、どの位コードの実装量が違うか比較する。
  • 同じ仕様を満たす為に、理解しなければならない事柄の難易度を比較する。
  • 単体テストを行う際の違いを比較する。
  • アプリケーションデプロイ手順の違いを比較する。
  • 今日はまだ思いつかない+α

以上を踏まえて、テクノロジを選定する人(アーキテクト?)が、
最低限考えないといけないんじゃないかと、
太一が現時点で考えている事を形に残す。のが目標。


意図的に、比較する事をなるべく避ける事柄は、

  • 設計方法論
  • 前提にしているアプリケーションドメイン

言い訳削除済み。orz


今日は僕が、複数の環境を構築する為のメモ書きです。
構築しようとしていた環境は、


eclipseで、最新のadventurebuilder*1コンパイルする環境


ただ、そんだけ。なのにエライ苦労しましたですよ。
いや、コードを読み易くしたかっただけなんだけどねぇ……。
以下、自分用のメモ書き。



https://adventurebuilder.dev.java.net/distDrops.html
から、adventurebuilder.classをダウンロード。


java -cp . adventurebuilder
で、利用許諾書が現れるので、一番下までスクロールして、Acceptを押すとリソースが解凍される。


adventure1.0.2\project\components\waf\build.xml

を追加


http://java.sun.com/j2ee//1.4/download.html#samples

から、All-In-One Bundleをダウンロードしてインストールする。


Sun\AppServer\binの中身をゴッソリadventure1.0.2\projectにディレクトリごとコピー


C:\Development\Sun\AppServer\libの中にある、j2ee.jarと、jhall.jarを
adventure1.0.2\projectにlibと言うディレクトリを掘ってコピー。


adventure1.0.2\project\build.propertiesのj2ee.home=の中身を
j2ee.home=C:\java_projects\adventure1.0.2\project
の様に、adventure1.0.2\projectのある絶対パスに書き換える。


で、adventure1.0.2\projectにあるbuild.xmlを動かす。
もの凄い勢いでコンパイルやらコードの自動生成やらが走る。


adventure1.0.2\projectにeclipseコンパイル時の出力先として使う為、buildと言うディレクトリを掘る。


adventure1.0.2\projectをeclipseのプロジェクトディレクトリとして指定する。
不必要なjarやら、ソースパスを頑張って削る。
新規プロジェクトウィザードでFinishする前に削らないと、コンパイルエラーが出まくるので注意。


参考までに、.classpathファイルはこんな感じになるます。
「〜build/classes」と「〜src/java」が、それなりに対になってる所がミソ。
前者は自動生成されたコードが格納されてマス。
たまに混じってる「〜jaxrpc/client/classes」を間違って消しちゃうと、嫌な目にあいます。*2
クラス名がやたらと紛らわしいのがポロポロ混じってたりするので。
(それについては後日)

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
	<classpathentry kind="src" path="apps/activitysupplier/activitysupplier-ejb/build/classes"/>
	<classpathentry kind="src" path="apps/activitysupplier/activitysupplier-ejb/src/java"/>
	<classpathentry kind="src" path="apps/airlinesupplier/airlinesupplier-ejb/build/classes"/>
	<classpathentry kind="src" path="apps/airlinesupplier/airlinesupplier-ejb/src/java"/>
	<classpathentry kind="src" path="apps/bank/bank-ejb/src/java"/>
	<classpathentry kind="src" path="apps/consumerwebsite/build/jaxrpc/client/classes"/>
	<classpathentry kind="src" path="apps/consumerwebsite/src/java"/>
	<classpathentry kind="src" path="apps/lodgingsupplier/lodgingsupplier-ejb/build/classes"/>
	<classpathentry kind="src" path="apps/lodgingsupplier/lodgingsupplier-ejb/src/java"/>
	<classpathentry kind="src" path="apps/opc/opc-ejb/build/jaxrpc/client/classes"/>
	<classpathentry kind="src" path="apps/opc/opc-ejb/src/java"/>
	<classpathentry kind="src" path="apps/opc/processmanager-ejb/src/java"/>
	<classpathentry kind="src" path="components/servicelocator/src/java"/>
	<classpathentry kind="src" path="components/util/dao/src/java"/>
	<classpathentry kind="src" path="components/util/tracer/src/java"/>
	<classpathentry kind="src" path="components/waf/src/java"/>
	<classpathentry kind="lib" path="lib/base64/base64.jar"/>
	<classpathentry kind="lib" path="lib/j2ee.jar"/>
	<classpathentry kind="lib" path="lib/jhall.jar"/>
	<classpathentry kind="lib" path="lib/jstl/jstl.jar"/>
	<classpathentry kind="lib" path="lib/jstl/standard.jar"/>
	<classpathentry kind="lib" path="lib/populator/populate.jar"/>
	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
	<classpathentry kind="output" path="build"/>
</classpath>

ワーニングがウザイので、organize Imports して、import宣言を整理する。


最後に、嫌がらせに対抗する為に、全ソースコードをフォーマットして終了。
フォーマットしないと、インデントがまるで揃って無いので、本気でコードが読みずらいです。ハイ。
っつうか、インデントを滅茶苦茶にするツールがあるのかと思う位デタラメです。
天才プログラマはインデントや中カッコなんて些細な事に気を使ったりしないのでしょうか…。
っつうか、IDE使って無いのかな…。

*1:PetStoreの後継となるBluePrints実装

*2:太一はそれが分らなくてハマってました。3日位。