Skip to content
Experimental Spring extensions and demos of HTML5 feature support. http://www.springsource.org
Java JavaScript
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
.settings
src
.classpath
.gitignore
.project
.springBeans
README
pom.xml
soy-20100708.jar

README

Experimental Spring extensions and demos of HTML5 feature support.

This sample project is a playground for experimentation with server-side Spring tools intended to aid in taking full advantage of the new rich
features available natively in modern browsers and considered part of HTML5.  (In this context, we refer to HTML5 as this overal collection of 
new technologies, many of which are defined in their own specification peripheral to the actual W3C HTML5 specification.)

These samples will continually evolve as we explore new and interesting ways of utilizing the features of HTML5 to build a new breed of rich 
web applications.

Some of the current experiments include:

- Support for dynamically generating a cache manifest file as required for the offline application cache

- Moving the act of template rendering to the browser (using the Closure Tools Templating library), where the browser just consumes a 
  JSON model from a RESTful endpoint and provides that model to the template for rendering.

- Incorporation of the Closure Tools Templating library's Java API for automatic refreshing of templates at development time, allowing 
quick prototyping without requiring full redeployment.

- Examples of using the history.pushstate API and window.popstate event to handle in browser navigation with clean bookmarkable URLs

- An Atmosphere adapter for Spring Integration that is used to push messages to the browser over WebSocket

- Use of the WebWorker API to offload the handling of streaming WebSocket data to a seperate sandboxed thread

- Visualization of streaming WebSocket data in Canvas via the help of the Processing.js library

BUILDING AND RUNNING THE SAMPLE: 

The application uses a straightforward Maven build.  We currently use Maven 2.2.0.

Before building for the first time, you must install the Closure Tools Templating library jar into your local Maven repository using 
the following command:
mvn install:install-file -Dfile=soy-20100708.jar -DgroupId=com.google.closure -DartifactId=closure-templates -Dversion=20100708 -Dpackaging=jar

Once the required dependency has been installed, you can build and run the application using:
mvn -DskipTests=true install jetty:run
(Jetty 8.0.M1 is currently the only server verified to provide the necessary handling for the WebSocket demo)

Once the server is up and running, the standard Spring Roo Petclinic functionality upon which some of the experiments are based can be accessed at:
http://localhost:8080/spring-html5/

The modified index page that uses the Application Cache and does client-side rendering of Closure Tools templates (currently only for the 
Vet pages) can be accessed at:
http://localhost:8080/spring-html5/html5-index

The WebSocket + Canvas visualization demo can be accessed at:
http://localhost:8080/spring-html5/activity/Activity.html

Something went wrong with that request. Please try again.