Author: antelder
Date: Thu Jun 24 10:34:08 2010
New Revision: 957497

URL: http://svn.apache.org/viewvc?rev=957497&view=rev
Log:
TUSCANY-3517: Apply latest updates to the async servelt sample in 
async-servlet-sca-0.0.3.zip

Added:
    
tuscany/sca-java-2.x/contrib/samples/async-servlet-sca/src/main/webapp/monitor.html
   (with props)
Modified:
    
tuscany/sca-java-2.x/contrib/samples/async-servlet-sca/src/main/java/sample/StockServlet.java
    
tuscany/sca-java-2.x/contrib/samples/async-servlet-sca/src/main/webapp/stock.html

Modified: 
tuscany/sca-java-2.x/contrib/samples/async-servlet-sca/src/main/java/sample/StockServlet.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/contrib/samples/async-servlet-sca/src/main/java/sample/StockServlet.java?rev=957497&r1=957496&r2=957497&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/contrib/samples/async-servlet-sca/src/main/java/sample/StockServlet.java
 (original)
+++ 
tuscany/sca-java-2.x/contrib/samples/async-servlet-sca/src/main/java/sample/StockServlet.java
 Thu Jun 24 10:34:08 2010
@@ -42,7 +42,7 @@ public class StockServlet extends HttpSe
        private StockService service = new StockServiceImpl();
        private AsyncContext asyncContext;
        private Timer timer;
-       private long updatePeriod = 1L; // default 1 sec 
+       private long updatePeriod = 1L; // default 1 sec
        private Logger logger = Logger.getLogger(StockServlet.class);
 
        protected void doGet(HttpServletRequest req, HttpServletResponse resp)
@@ -50,40 +50,76 @@ public class StockServlet extends HttpSe
                logger.debug("Received request.");
                logger.debug("Starting async context...");
                asyncContext = req.startAsync();
+               resp.setContentType("text/html");
+
+               logger.debug("Sending initial response...");
+               try {
+                       Writer writer = asyncContext.getResponse().getWriter();
+                       writer.write("<html>\n");
+                       writer.write("<head>\n");
+                       writer.write("<title>Stock Monitor</title>\n");
+
+                       writer.write("<script type=\"text/javascript\">\n");
+                       writer.write("function updateData(data) {\n");
+                       writer.write("var aux = data.split('#');\n");
+                       writer
+                                       
.write("document.getElementById('symbol').textContent = aux[0];\n");
+                       writer
+                                       
.write("document.getElementById('price').textContent = aux[1];\n");
+                       writer.write("}\n");
+                       writer.write("</script>\n");
+                       writer.write("</head>\n");
+                       writer.write("<body>\n");
+                       writer.write("<h2>Apache Tuscany Asynchronous Servlet 
Sample</h2>\n");
+                       writer.write("<h3>Stock Monitor</h3>\n");
+                       writer.write("<b><label>Company Symbol: 
</label></b>\n");
+                       writer.write("<span id=\"symbol\"></span>\n");
+                       writer.write("<b><label>Price: </label></b>\n");
+                       writer.write("<span id=\"price\"></span>\n");
+                       writer.write("</body>\n");
+                       writer.write("</html>\n");
+                       resp.flushBuffer();
+               } catch (IOException e) {
+                       e.printStackTrace();
+               }
+
                logger.debug("Service reference: " + service);
                logger.debug("Setting timer...");
                timer = new Timer();
                logger.debug("Setting update period...");
-               this.updatePeriod = Long.parseLong(req.getParameter("period"));
+               if (req.getParameter("interval") != null) {
+                       this.updatePeriod = 
Long.parseLong(req.getParameter("interval"));
+               }
                timer.scheduleAtFixedRate(new StockTask(), 0, updatePeriod * 
MILLIS_PER_SECOND);
                logger.debug("Exiting doGet method...");
        }
-       
+
        public void updateClient() {
                try {
                        logger.debug("Updating response...");
-                       asyncContext.getResponse().setContentType("text/plain");
                        Writer writer = asyncContext.getResponse().getWriter();
-                       writer.write("Symbol: " + service.getSymbol() + ", 
Price "
-                                       + service.getValue() + "\n");
+                       writer.write("<script type=\"text/javascript\">\n");
+                       writer.write("updateData('" + service.getSymbol() + "#" 
+ service.getValue()    + "');\n");
+                       writer.write("</script>\n");
+                       // writer.write("Symbol: " + service.getSymbol() + ", 
Price: " + service.getValue() + "\n");
                        writer.flush();
                        asyncContext.getResponse().flushBuffer();
                        logger.debug("Flushed response.");
                } catch (IOException e) {
                        logger.debug(e.getMessage(), e);
-                       asyncContext.complete(); 
+                       asyncContext.complete();
                }
        }
 
-       //-----------------------------------------------------------
-       
+       // -----------------------------------------------------------
+
        public class StockTask extends TimerTask {
 
                @Override
                public void run() {
                        updateClient();
                }
-               
+
        }
-       
+
 }

Added: 
tuscany/sca-java-2.x/contrib/samples/async-servlet-sca/src/main/webapp/monitor.html
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/contrib/samples/async-servlet-sca/src/main/webapp/monitor.html?rev=957497&view=auto
==============================================================================
--- 
tuscany/sca-java-2.x/contrib/samples/async-servlet-sca/src/main/webapp/monitor.html
 (added)
+++ 
tuscany/sca-java-2.x/contrib/samples/async-servlet-sca/src/main/webapp/monitor.html
 Thu Jun 24 10:34:08 2010
@@ -0,0 +1,29 @@
+<html>
+<head>
+<title>Stock Monitor</title>
+
+<script type="text/javascript">
+function updateData(data) {
+       var aux = data.split('#');
+       document.getElementById('symbol').textContent = aux[0];
+       document.getElementById('price').textContent = aux[1];
+}
+</script>
+
+</head>
+<body>
+<h2>Apache Tuscany Asynchronous Servlet Sample</h2>
+
+<h3>Stock Monitor</h3>
+
+<b><label>Company Symbol: </label></b>
+<span id="symbol">a</span>
+<b><label>Price: </label></b>
+<span id="price">1</span>
+
+</body>
+</html>
+
+<script type="text/javascript">
+       updateData('Apache#1234');
+</script>

Propchange: 
tuscany/sca-java-2.x/contrib/samples/async-servlet-sca/src/main/webapp/monitor.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
tuscany/sca-java-2.x/contrib/samples/async-servlet-sca/src/main/webapp/monitor.html
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: 
tuscany/sca-java-2.x/contrib/samples/async-servlet-sca/src/main/webapp/monitor.html
------------------------------------------------------------------------------
    svn:mime-type = text/html

Modified: 
tuscany/sca-java-2.x/contrib/samples/async-servlet-sca/src/main/webapp/stock.html
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/contrib/samples/async-servlet-sca/src/main/webapp/stock.html?rev=957497&r1=957496&r2=957497&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/contrib/samples/async-servlet-sca/src/main/webapp/stock.html
 (original)
+++ 
tuscany/sca-java-2.x/contrib/samples/async-servlet-sca/src/main/webapp/stock.html
 Thu Jun 24 10:34:08 2010
@@ -29,8 +29,8 @@
 <h3>Stock Monitor</h3>
 
 <form action="stock" method="GET">
-       <label>Enter the update period (seconds): </label>
-       <input type="text" name="period" size="2"/>
+       <label>Enter the update interval (seconds): </label>
+       <input type="text" name="interval" size="2"/>
        <br/>
        <button type="submit">Start monitoring</button>
 </form>


Reply via email to