blob: 9ebeffb7858c250431df953154200440371c3a8e [file] [log] [blame]
---
Setting up your Environment
---
Chapter 1: Setting Up Your Environment
As much as I would like to dive into Tapestry right now, we must first talk about your development environment. The joy and the pain of Java development is the volume of choice available. There's just a bewildering number of JDKs, IDEs and other TLA1s out there.
Let's talk about a stack of tools, all open source and freely available, that you'll need to setup. Likely you have some of these, or some version of these, already on your development machine.
* JDK 1.5
Tapestry 5 makes use of features of JDK 1.5. This includes Java Annotations, and a little bit of Java Generics.
* Eclipse 3.3
Since we're emphasizing a free and open source stack, we'll concentrate on the best <free> IDE.
Eclipse 3.3 comes in various flavors, and includes a reasonable XML editor built-in.
* Jetty 5.1
Jetty is an open source servlet container created by Greg Wilkins of Webtide (which offers commercial support for Jetty). Jetty is high performance and designed for easy embedding in other software.
I've chosen the 5.1 release, rather than the cutting edge Jetty 6, because it is compatible with Jetty Launcher (see below).
You can find out more about Jetty from its home page: {{{http://mortbay.org}http://mortbay.org}}.
You can download Jetty from {{{http://docs.codehaus.org/display/JETTY/Downloading+and+Installing}http://docs.codehaus.org/display/JETTY/Downloading+and+Installing}}.
* Jetty Launcher
Jetty Launcher is a plugin for Eclipse that makes it easy to launch Jetty applications from within Eclipse. This is a great model, since you can run or debug directly from you workspace without wasting time packaging and deploying.
Jetty Launcher was created by Geoff Longman, and is available from http://jettylauncher.sourceforge.net/. Installation is easy, simply point Eclipse's update manager at
{{{http://jettylauncher.sourceforge.net/updates/}http://jettylauncher.sourceforge.net/updates/}}.
If you are behind a firewall, you will need to set up a manual proxy configuration in Eclipse (Window, Preferences..., General, Network Connections).
<<Caution: JettyLauncher is only compatible with Jetty 4 and Jetty 5. It does not work with Jetty 6.>>
* Maven 2.0.8
Maven is a software build tool of rather epic ambitions. It has a very sophisticated plugin system that allows it to do virtually anything, though compiling Java code, building WAR and JAR files, and creating reports and web sites are its forte.
Perhaps the biggest advantage of Maven over, say, Ant, is that it can download project dependencies (such as the Tapestry JAR files, and the JAR files Tapestry itself depends on) automatically for you, from one of several central repositories.
We'll be using Maven to set up our Tapestry applications. Maven 2.0.8 is available from {{{http://maven.apache.org/download.html}http://maven.apache.org/download.html}}.
* Maven Plugin
The Maven Plugin for Eclipse integrates Maven and Eclipse. It includes some features for editing the pom.xml (the Maven project description file which identifies, among many other things, what JAR files are needed by the project).
More importantly, a Maven-enabled project automatically stays synchronized with the POM, automatically linking Eclipse project classpath to files from the local Maven repository.
The plugin is available by pointing the Eclipse update manager at {{{http://m2eclipse.codehaus.org/update/}http://m2eclipse.codehaus.org/update/}}. Make sure to use version 0.0.10.
* Tapestry 5.0.x
You should not have to download this directly; as we'll see, Maven should take care of downloading Tapestry, and its dependencies, as needed.
<<Caution: this book is being written in parallel with Tapestry 5. In some cases, the screenshots may not be entirely accurate and the version number for Tapestry is in flux, with snapshot releases occurring frequently, and new dot releases every few weeks.
So, for example, is 5.0.5 is not available, you can use 5.0.4 instead.>>
===
{{{first.html}Continue on to Chapter 2: Your First Tapestry Application}}