1
1
Experimental Spring extensions and demos of HTML5 feature support.
2
2
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