Jetty has moved!
Jetty is a project at the Eclipse Foundation.
Homepage:http://www.eclipse.org/jetty
Downloads: http://download.eclipse.org/jetty/
Documentation:http://www.eclipse.org/jetty/documentation/current/
About:http://www.eclipse.org/jetty/about.php
Jetty Powered:http://www.eclipse.org/jetty/powered/
Contact the core Jetty developers at www.webtide.com
private support for your internal/customer projects ... custom extensions and distributions ... versioned snapshots for indefinite support ... scalability guidance for your apps and Ajax/Comet projects ... development services from 1 day to full product delivery
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Next »

Quick Start Guide
  1. Download a hightide release and unzip it to your local disk. We'll refer to this location as $hightide.home.
  2. Go to your $hightide.home directory.
  3. java -jar start.jar
  4. Surf to http://localhost:8080 for information and example webapps.

Hightide is an optimized, versioned distribution of the Jetty open source web container. It comes pre-integrated with a number of services usually only found in J2EE application servers, or which you would otherwise have to craft together yourself: JNDI, an XA transaction service, a JMS message fabric, and a JDBC accessible database. Thanks to Jetty's light weight, pluggable architecture, Hightide allows you to easily choose which of these services you want to use, or even replace them with others.

Additionally, Hightide is pre-configured with state-of-the-art Ajax communication libraries such as DWR, ActiveMQ-Web (JMS to the browser), and the cometd protocol (known as "Bayeux"). Deploying your applications on Hightide means that it will scale smoothly thanks to a combination of Jetty's smart IO layer and continuations mechanism.

Resources

Build instructions

Hightide uses Maven as it's build system. Using $hightide.home to represent the directory into which you have checked out hightide from svn, or into which you have unzipped a source distribution, it can be built by:

Fast Web Development with the Hightide and Maven

Hightide Plugin

mvn hightide:run

This goal is used in-situ on a Maven project without first requiring that the project is assembled into a war, saving time during the development cycle. The plugin forks a parallel lifecycle to ensure that the "compile" phase has been completed before invoking Hightide. This means that you do not need to explicity execute a "mvn compile" first. It also means that a "mvn clean hightide:run" will ensure that a full fresh compile is done before invoking Hightide. This goal is similar to the mvn jetty:run goal, however, all services found in standalone hightide - such as JTA (Atomikos), JDBC (Derby) and JMS (ActiveMQ) - are automatically started and available to the webapp, signifcantly easing testing and promoting rapid development.

As with the mvn jetty:run target, the plugin can be configured to run continuously, scanning for changes in the project and automatically performing a hot redeploy when necessary. This allows the developer to concentrate on coding changes to the project using their IDE of choice and have those changes immediately and transparently reflected in the running web container, eliminating development time that is wasted on rebuilding, reassembling and redeploying.

Required Parameters

Name

Type

Description

classesDirectory

File

The directory containing generated classes

contextPath

String

The context path for the webapp. Defaults to the name of the webapp's artifact

scanIntervalSeconds

int

The interval in seconds to scan the webapp for changes and restart the context if necessary. Disabled by default

testClassesDirectory

File

The directory containing generated test classes

tmpDirectory

File

The temporary directory to use for the webapp. Defaults to target/work

webAppSourceDirectory

File

Root directory for all html/jsp etc files

Optional Parameters

Name

Type

Description

connectors

Connector[]

List of connectors to use. If none are configured then we use a single SelectChannelConnector at port 8080

contextHandlers

ContextHandler[]

List of other contexts to set up. Optional

jettyConfig

String

Location of a jetty xml configuration file whose contents will be applied before any plugin configuration. Optional

jettyEnvXml

String

The location of a jetty-env.xml file. Optional

overrideWebXml

File

A web.xml file to be applied AFTER the webapp's web.xml file. Useful for applying different build profiles, eg test,production etc. Optional

requestLog

RequestLog

A RequestLog implementation to use for the webapp at runtime. Optional

scanTargets

File[]

List of files or directories to additionally periodically scan for changes. Optional

systemProperties

SystemProperty[]

System properties to set before execution. Note that these properties will NOT override System properties that have been set on the command line or by the JVM. Optional

transaction

UserTransaction

Transaction resource. Optional

useTestClasspath

boolean

If true, the <testOutputDirectory> and the dependencies of <scope>test<scope> will be put first on the runtime

classpath. Default value is false

userRealms

UserRealm[]

List of security realms to set up. Optional

webDefaultXml

File

A webdefault.xml file to use instead of the default for the webapp. Optional

webXml

String

The location of the web.xml file. If not set then it is assumed it is in ${basedir}/src/main/webapp/WEB-INF

mvn hightide:run-war

mvn hightide:run-exploded

Hightide Convenience Dependencies

JavaEE APIs

When developing a new JavaEE webapp, you need to include a number of dependencies in your pom.xml which represent the APIs your webapp will reference (think JNDI, JTA etc). Hightide makes this fast and easy by providing a single dependency you can include in your pom.xml which will automatically transitively include all the usual apis. Use it thus:

  • No labels
Contact the core Jetty developers at www.webtide.com
private support for your internal/customer projects ... custom extensions and distributions ... versioned snapshots for indefinite support ... scalability guidance for your apps and Ajax/Comet projects ... development services from 1 day to full product delivery