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: <input type="text" id="wine_name"
name="wine_name">
+ Wine Description: <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: <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 © 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