Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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 TLAs (Three Letter Acryonyms) 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.

...

Eclipse 3.3 comes in various flavors, and includes a reasonable XML editor built-in.

Jetty

...

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.

You can download Jetty from http://docs.codehaus.org/display/JETTY/Downloading+Jetty.

Note about Log4J: Jetty includes an incompatible version of Log4J. If using Jetty 5, you must get a more recent copy of Log4J, version 1.2.14 or later, and replace the copy of log4j.jar in the Jetty ext (external libraries) directory. Just delete the old log4j.jar and copy the new one in its place.

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/.

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.

...

RunJettyRun Eclipse Plugin

RunJettyRun is a very simple Eclipse plugin that bundles a version of Jetty (Jetty 6 at this writing) so that you can create Eclipse launches that start Jetty to execute your web application.

You can install RunJettyRun using Eclipse's Install New Software... menu item; the update URL is http://run-jetty-run.googlecode.com/svn/trunk/updatesite.

Maven 2.2.1

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.

Maven is not essential for using Tapestry, but is especially helpful doing the initial setup of a Tapestry application.

Maven 2.2.1 We'll be using Maven to set up our Tapestry applications. Maven 2.0.8 is available from http://maven.apache.org/download.html.

...

Note

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.sonatype.org/sites/m2e. Make sure to use version 0.0.10.

...

Maven 3.0 is now available but we have not tested the tutorial against it.

There are plugins available for Eclipse, but we will not be using those; instead, we'll use Maven to generate Eclipse control files for us.

Tapestry 5.2.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.02.5 4 is not available, you can use 5.02.4 3 instead.

FirstContinue on to Chapter 2: Your First Tapestry Application