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.
- Download site: http://www.webtide.com/downloads.jsp
- Source repository: https://svn.webtide.com/repos/hightide/trunk
- svn co https://svn.webtide.com/repos/hightide/trunk hightide
- Maven repository: http://repository.codehaus.org
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
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.
Hightide Convenience Dependencies
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: