Author: olamy
Date: Tue Feb 28 18:36:54 2012
New Revision: 1294771

URL: http://svn.apache.org/viewvc?rev=1294771&view=rev
Log:
example with putting json string from a javascript app works

Added:
    
incubator/directmemory/trunk/examples/server-example/src/main/webapp/js/jquery.json-2.3.js
   (with props)
    
incubator/directmemory/trunk/examples/server-example/src/main/webapp/js/sample.js
   (with props)
Modified:
    incubator/directmemory/trunk/examples/server-example/pom.xml
    
incubator/directmemory/trunk/examples/server-example/src/main/webapp/index.html

Modified: incubator/directmemory/trunk/examples/server-example/pom.xml
URL: 
http://svn.apache.org/viewvc/incubator/directmemory/trunk/examples/server-example/pom.xml?rev=1294771&r1=1294770&r2=1294771&view=diff
==============================================================================
--- incubator/directmemory/trunk/examples/server-example/pom.xml (original)
+++ incubator/directmemory/trunk/examples/server-example/pom.xml Tue Feb 28 
18:36:54 2012
@@ -72,7 +72,7 @@
           <path>${tomcatRunPath}</path>
           <warSourceDirectory>${basedir}/src/main/webapp</warSourceDirectory>
           <systemProperties>
-            
<appserver.base>${project.build.directory}/appserver-base</appserver.base>
+            <directMemory.size>1000</directMemory.size>
           </systemProperties>
         </configuration>
       </plugin>

Modified: 
incubator/directmemory/trunk/examples/server-example/src/main/webapp/index.html
URL: 
http://svn.apache.org/viewvc/incubator/directmemory/trunk/examples/server-example/src/main/webapp/index.html?rev=1294771&r1=1294770&r2=1294771&view=diff
==============================================================================
--- 
incubator/directmemory/trunk/examples/server-example/src/main/webapp/index.html 
(original)
+++ 
incubator/directmemory/trunk/examples/server-example/src/main/webapp/index.html 
Tue Feb 28 18:36:54 2012
@@ -4,24 +4,44 @@
   <link rel="stylesheet" href="css/bootstrap.2.0.1.css">
 
   <script type="text/javascript" src="js/jquery-1.7.1.js"></script>
-
+  <script type="text/javascript" src="js/bootstrap.2.0.1.js"></script>
+  <script type="text/javascript" src="js/sample.js"></script>
+  <script type="text/javascript" src="js/jquery.json-2.3.js"></script>
   <title>Apache DirectMemory Sample</title>
 
 </head>
 
-<body style="padding-top: 42px;">
+<body style="padding-top: 1px;">
 
 <div id="topbar-menu-container"></div>
 
 <div class="container-fluid" style="min-height: 450px">
   <div class="row-fluid">
-    <div class="span2 columns">
-      <div class="well sidebar-nav" id="sidebar-content"></div>
-    </div>
+
     <div class="span10 columns">
       <div class="content">
-        <div id="user-messages"></div>
-        <div id="main-content"></div>
+        <div id="wine-create-form">
+          <div class="page-header"><h4>Put in cache</h4></div>
+          <div class="well">
+
+              Wine Name:&nbsp<input type="text" id="wine_name" 
name="wine_name">
+              Wine Description:&nbsp<input type="text" id="wine_description" 
name="wine_description">
+              <br/>
+              <button class="btn" id="put-cache-btn">Put</button>
+
+          </div>
+        </div>
+        <div id="wine-cache-get-div">
+          <div class="page-header"><h4>Get from cache</h4></div>
+          <div class="well">
+              Wine Key:&nbsp<input type="text" id="wine_name_cache" 
name="wine_name_cache">
+              <br/>
+              <button class="btn" id="get_cache_btn">Get</button>
+          </div>
+        </div>
+        <div id="wine-result">
+          <div class="page-header"><h4>Results</h4></div>
+        </div>
     </div>
   </div>
   </div>
@@ -29,12 +49,12 @@
 </div>
 
 <footer id="footer-content" style="vertical-align: bottom">
+  <div class="pull-left">
+    <a href="http://incubator.apache.org/directmemory"; target="_blank">Apache 
DirectMemory Sample</a>
+  </div>
+  <div class="pull-right">
+    Copyright &copy; 2005 - 2012 <a href="http://www.apache.org/"; 
target="_blank">The Apache Software Foundation</a>
+  </div>
 </footer>
-
-<div id="html-fragments"></div>
-
 </body>
-
-
-
 </html>

Added: 
incubator/directmemory/trunk/examples/server-example/src/main/webapp/js/jquery.json-2.3.js
URL: 
http://svn.apache.org/viewvc/incubator/directmemory/trunk/examples/server-example/src/main/webapp/js/jquery.json-2.3.js?rev=1294771&view=auto
==============================================================================
--- 
incubator/directmemory/trunk/examples/server-example/src/main/webapp/js/jquery.json-2.3.js
 (added)
+++ 
incubator/directmemory/trunk/examples/server-example/src/main/webapp/js/jquery.json-2.3.js
 Tue Feb 28 18:36:54 2012
@@ -0,0 +1,193 @@
+/**
+ * jQuery JSON Plugin
+ * version: 2.3 (2011-09-17)
+ *
+ * This document is licensed as free software under the terms of the
+ * MIT License: http://www.opensource.org/licenses/mit-license.php
+ *
+ * Brantley Harris wrote this plugin. It is based somewhat on the JSON.org
+ * website's http://www.json.org/json2.js, which proclaims:
+ * "NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.", a sentiment that
+ * I uphold.
+ *
+ * It is also influenced heavily by MochiKit's serializeJSON, which is
+ * copyrighted 2005 by Bob Ippolito.
+ */
+
+(function( $ ) {
+
+       var     escapeable = /["\\\x00-\x1f\x7f-\x9f]/g,
+               meta = {
+                       '\b': '\\b',
+                       '\t': '\\t',
+                       '\n': '\\n',
+                       '\f': '\\f',
+                       '\r': '\\r',
+                       '"' : '\\"',
+                       '\\': '\\\\'
+               };
+
+       /**
+        * jQuery.toJSON
+        * Converts the given argument into a JSON respresentation.
+        *
+        * @param o {Mixed} The json-serializble *thing* to be converted
+        *
+        * If an object has a toJSON prototype, that will be used to get the 
representation.
+        * Non-integer/string keys are skipped in the object, as are keys that 
point to a
+        * function.
+        *
+        */
+       $.toJSON = typeof JSON === 'object' && JSON.stringify
+               ? JSON.stringify
+               : function( o ) {
+
+               if ( o === null ) {
+                       return 'null';
+               }
+
+               var type = typeof o;
+
+               if ( type === 'undefined' ) {
+                       return undefined;
+               }
+               if ( type === 'number' || type === 'boolean' ) {
+                       return '' + o;
+               }
+               if ( type === 'string') {
+                       return $.quoteString( o );
+               }
+               if ( type === 'object' ) {
+                       if ( typeof o.toJSON === 'function' ) {
+                               return $.toJSON( o.toJSON() );
+                       }
+                       if ( o.constructor === Date ) {
+                               var     month = o.getUTCMonth() + 1,
+                                       day = o.getUTCDate(),
+                                       year = o.getUTCFullYear(),
+                                       hours = o.getUTCHours(),
+                                       minutes = o.getUTCMinutes(),
+                                       seconds = o.getUTCSeconds(),
+                                       milli = o.getUTCMilliseconds();
+
+                               if ( month < 10 ) {
+                                       month = '0' + month;
+                               }
+                               if ( day < 10 ) {
+                                       day = '0' + day;
+                               }
+                               if ( hours < 10 ) {
+                                       hours = '0' + hours;
+                               }
+                               if ( minutes < 10 ) {
+                                       minutes = '0' + minutes;
+                               }
+                               if ( seconds < 10 ) {
+                                       seconds = '0' + seconds;
+                               }
+                               if ( milli < 100 ) {
+                                       milli = '0' + milli;
+                               }
+                               if ( milli < 10 ) {
+                                       milli = '0' + milli;
+                               }
+                               return '"' + year + '-' + month + '-' + day + 
'T' +
+                                       hours + ':' + minutes + ':' + seconds +
+                                       '.' + milli + 'Z"';
+                       }
+                       if ( o.constructor === Array ) {
+                               var ret = [];
+                               for ( var i = 0; i < o.length; i++ ) {
+                                       ret.push( $.toJSON( o[i] ) || 'null' );
+                               }
+                               return '[' + ret.join(',') + ']';
+                       }
+                       var     name,
+                               val,
+                               pairs = [];
+                       for ( var k in o ) {
+                               type = typeof k;
+                               if ( type === 'number' ) {
+                                       name = '"' + k + '"';
+                               } else if (type === 'string') {
+                                       name = $.quoteString(k);
+                               } else {
+                                       // Keys must be numerical or string. 
Skip others
+                                       continue;
+                               }
+                               type = typeof o[k];
+
+                               if ( type === 'function' || type === 
'undefined' ) {
+                                       // Invalid values like these return 
undefined
+                                       // from toJSON, however those object 
members
+                                       // shouldn't be included in the JSON 
string at all.
+                                       continue;
+                               }
+                               val = $.toJSON( o[k] );
+                               pairs.push( name + ':' + val );
+                       }
+                       return '{' + pairs.join( ',' ) + '}';
+               }
+       };
+
+       /**
+        * jQuery.evalJSON
+        * Evaluates a given piece of json source.
+        *
+        * @param src {String}
+        */
+       $.evalJSON = typeof JSON === 'object' && JSON.parse
+               ? JSON.parse
+               : function( src ) {
+               return eval('(' + src + ')');
+       };
+
+       /**
+        * jQuery.secureEvalJSON
+        * Evals JSON in a way that is *more* secure.
+        *
+        * @param src {String}
+        */
+       $.secureEvalJSON = typeof JSON === 'object' && JSON.parse
+               ? JSON.parse
+               : function( src ) {
+
+               var filtered = 
+                       src
+                       .replace( /\\["\\\/bfnrtu]/g, '@' )
+                       .replace( 
/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']')
+                       .replace( /(?:^|:|,)(?:\s*\[)+/g, '');
+
+               if ( /^[\],:{}\s]*$/.test( filtered ) ) {
+                       return eval( '(' + src + ')' );
+               } else {
+                       throw new SyntaxError( 'Error parsing JSON, source is 
not valid.' );
+               }
+       };
+
+       /**
+        * jQuery.quoteString
+        * Returns a string-repr of a string, escaping quotes intelligently.
+        * Mostly a support function for toJSON.
+        * Examples:
+        * >>> jQuery.quoteString('apple')
+        * "apple"
+        *
+        * >>> jQuery.quoteString('"Where are we going?", she asked.')
+        * "\"Where are we going?\", she asked."
+        */
+       $.quoteString = function( string ) {
+               if ( string.match( escapeable ) ) {
+                       return '"' + string.replace( escapeable, function( a ) {
+                               var c = meta[a];
+                               if ( typeof c === 'string' ) {
+                                       return c;
+                               }
+                               c = a.charCodeAt();
+                               return '\\u00' + Math.floor(c / 
16).toString(16) + (c % 16).toString(16);
+                       }) + '"';
+               }
+               return '"' + string + '"';
+       };
+
+})( jQuery );

Propchange: 
incubator/directmemory/trunk/examples/server-example/src/main/webapp/js/jquery.json-2.3.js
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
incubator/directmemory/trunk/examples/server-example/src/main/webapp/js/jquery.json-2.3.js
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: 
incubator/directmemory/trunk/examples/server-example/src/main/webapp/js/sample.js
URL: 
http://svn.apache.org/viewvc/incubator/directmemory/trunk/examples/server-example/src/main/webapp/js/sample.js?rev=1294771&view=auto
==============================================================================
--- 
incubator/directmemory/trunk/examples/server-example/src/main/webapp/js/sample.js
 (added)
+++ 
incubator/directmemory/trunk/examples/server-example/src/main/webapp/js/sample.js
 Tue Feb 28 18:36:54 2012
@@ -0,0 +1,102 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+$(function() {
+  Wine=function(name,description){
+    this.name=name;
+    this.description=description;
+  }
+
+  displayInfo=function(msg){
+    alert(msg);
+  }
+
+  displayError=function(msg){
+    alert(msg);
+  }
+
+  displayWarning=function(msg){
+    alert(msg);
+  }
+  // X-DirectMemory-ExpiresIn
+  putWineInCache=function(wine){
+    $.ajax({
+      url: 'cache/'+encodeURIComponent(wine.name),
+      data:$.toJSON( wine ),
+      cache: false,
+      type: 'POST',
+      //dataType: 'text',
+      contentType: "text/plain",
+      statusCode: {
+        204: function() {
+          displayWarning("not put in cache");
+        },
+        200:function( data ) {
+          displayInfo('put in cache with key:'+wine.name);
+        },
+        500:function(data){
+          displayError("error put in cache");
+        }
+      }
+    });
+  }
+
+  $(document).ready(function() {
+
+    $("#put-cache-btn").on('click',function(){
+      var wine = new Wine($("#wine_name" ).val(),$("#wine_description" 
).val());
+      if ( $.trim(wine.name ).length<1){
+        displayError("name mandatory");
+        return;
+      }
+      putWineInCache(wine);
+
+    });
+
+    $("#get_cache_btn").on('click',function(){
+      var key = $("#wine_name_cache" ).val();
+      if ( $.trim(key).length<1){
+        displayError("key mandatory");
+        return;
+      }
+
+      $.ajax({
+        url: 'cache/'+encodeURIComponent(key),
+        cache: false,
+        type: 'GET',
+        dataType: 'text',
+        statusCode: {
+          204: function() {
+            displayWarning("not found in cache");
+          },
+          200:function( data ) {
+            var wine = $.parseJSON(data);
+            displayInfo('get from cache with key:'+wine.description);
+          },
+          500:function(data){
+            displayError("error get from cache");
+          }
+        }
+      });
+
+    });
+
+  });
+
+
+});
\ No newline at end of file

Propchange: 
incubator/directmemory/trunk/examples/server-example/src/main/webapp/js/sample.js
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
incubator/directmemory/trunk/examples/server-example/src/main/webapp/js/sample.js
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision


Reply via email to