Skip to content

Commit b5413e1

Browse files
committed
Adding content and build instructions to README
1 parent 5e8c20e commit b5413e1

File tree

1 file changed

+47
-1
lines changed

1 file changed

+47
-1
lines changed

README

+47-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,49 @@
11
Experimental Spring extensions and demos of HTML5 feature support.
22

3-
More info to come...
3+
This sample project is a playground for experimentation with server-side Spring tools intended to aid in taking full advantage of the new rich
4+
features available natively in modern browsers and considered part of HTML5. (In this context, we refer to HTML5 as this overal collection of
5+
new technologies, many of which are defined in their own specification peripheral to the actual W3C HTML5 specification.)
6+
7+
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
8+
web applications.
9+
10+
Some of the current experiments include:
11+
12+
- Support for dynamically generating a cache manifest file as required for the offline application cache
13+
14+
- Moving the act of template rendering to the browser (using the Closure Tools Templating library), where the browser just consumes a
15+
JSON model from a RESTful endpoint and provides that model to the template for rendering.
16+
17+
- Incorporation of the Closure Tools Templating library's Java API for automatic refreshing of templates at development time, allowing
18+
quick prototyping without requiring full redeployment.
19+
20+
- Examples of using the history.pushstate API and window.popstate event to handle in browser navigation with clean bookmarkable URLs
21+
22+
- An Atmosphere adapter for Spring Integration that is used to push messages to the browser over WebSocket
23+
24+
- Use of the WebWorker API to offload the handling of streaming WebSocket data to a seperate sandboxed thread
25+
26+
- Visualization of streaming WebSocket data in Canvas via the help of the Processing.js library
27+
28+
BUILDING AND RUNNING THE SAMPLE:
29+
30+
The application uses a straightforward Maven build. We currently use Maven 2.2.0.
31+
32+
Before building for the first time, you must install the Closure Tools Templating library jar into your local Maven repository using
33+
the following command:
34+
mvn install:install-file -Dfile=soy-20100708.jar -DgroupId=com.google.closure -DartifactId=closure-templates -Dversion=20100708 -Dpackaging=jar
35+
36+
Once the required dependency has been installed, you can build and run the application using:
37+
mvn -DskipTests=true install jetty:run
38+
(Jetty 8.0.M1 is currently the only server verified to provide the necessary handling for the WebSocket demo)
39+
40+
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:
41+
http://localhost:8080/spring-html5/
42+
43+
The modified index page that uses the Application Cache and does client-side rendering of Closure Tools templates (currently only for the
44+
Vet pages) can be accessed at:
45+
http://localhost:8080/spring-html5/html5-index
46+
47+
The WebSocket + Canvas visualization demo can be accessed at:
48+
http://localhost:8080/spring-html5/activity/Activity.html
49+

0 commit comments

Comments
 (0)