Tapestry4.0

やっと手を出しました。チュートリアルを動かしてるんだけど、結構色々変わったのね。.applicationファイルにページをイチイチ登録しなくても

  <meta key="org.apache.tapestry.page-class-packages" value="org.apache.tapestry.taplet.pages"/>

見たいに書くと、指定したパッケージのPageが登録されるのね。いや便利。Seasarとは違った方向だけどless configurationになってきてる。Wicketとかの影響もあるのかしらん。

で、チュートリアルを動かすのに、イチイチ細かい設定を自分でやりたくなかったんで、maven2にやってもらうのに、幾つかやることがあったんでメモっときます。

1.srcの下のcontextディレクトリをwebappに名前を変える。
2.srcの下にmainというディレクトリを作ってcontextとjava、confというディレクトリをmainの下に移動。
3.以下のようなpom.xmlをプロジェクトのルートに作成

<project xmlns="http://maven.apache.org/POM/4.0.0" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>org.apache.jakarta.tapestry</groupId>
	<artifactId>helloworld</artifactId>
	<packaging>war</packaging>
	<version>4.0</version>
	<name>Tapestry4.0-helloworld</name>
	<url>http://jakarta.apache.org/tapestry/</url>
	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>3.8.1</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>easymock</groupId>
			<artifactId>easymock</artifactId>
			<version>1.1</version>
			<scope>test</scope>
		</dependency>
		
		<dependency>
			<groupId>commons-codec</groupId>
			<artifactId>commons-codec</artifactId>
			<version>1.3</version>
		</dependency>
		<dependency>
			<groupId>commons-fileupload</groupId>
			<artifactId>commons-fileupload</artifactId>
			<version>1.0</version>
		</dependency>
		<dependency>
			<groupId>commons-logging</groupId>
			<artifactId>commons-logging</artifactId>
			<version>1.0.4</version>
		</dependency>
		<dependency>
			<groupId>hivemind</groupId>
			<artifactId>hivemind</artifactId>
			<version>1.1</version>
		</dependency>
		<dependency>
			<groupId>hivemind</groupId>
			<artifactId>hivemind-lib</artifactId>
			<version>1.1</version>
		</dependency>
		<dependency>
			<groupId>javassist</groupId>
			<artifactId>javassist</artifactId>
			<version>3.0</version>
		</dependency>
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.8</version>
		</dependency>
		<dependency>
			<groupId>ognl</groupId>
			<artifactId>ognl</artifactId>
			<version>2.6.7</version>
		</dependency>
		<dependency>
			<groupId>oro</groupId>
			<artifactId>oro</artifactId>
			<version>2.0.8</version>
		</dependency>
		<dependency>
			<groupId>tapestry</groupId>
			<artifactId>tapestry</artifactId>
			<version>4.0</version>
		</dependency>
		<dependency>
			<groupId>tapestry</groupId>
			<artifactId>tapestry-annotations</artifactId>
			<version>4.0</version>
		</dependency>
		<dependency>
			<groupId>tapestry</groupId>
			<artifactId>tapestry-contrib</artifactId>
			<version>4.0</version>
		</dependency>
		<dependency>
			<groupId>tapestry</groupId>
			<artifactId>tapestry-portlet</artifactId>
			<version>4.0</version>
		</dependency>
	</dependencies>
	<build>
		<finalName>helloworld</finalName>
		<sourceDirectory>src/main/java</sourceDirectory>
		<testSourceDirectory>src/test/java</testSourceDirectory>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<source>1.5</source>
					<target>1.5</target>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>

Tapestry Annotationsを試すためにJDK1.5を使用。


あとはmvnが使えます。
まずは、ソースを眺めるために、eclipseにインポート。プロジェクトのルートで

mvn eclipse:eclipse

とすると、eclipse用の.classpathと.projectファイルが出来る。

mvn install

でwarがtargetディレクトリの下に出来ます。そしたらdeployして動かせます。