diff --git a/bin/start-akka-server.sh b/bin/start-akka-server.sh index eb7e1f7de4..3f9cee68e7 100755 --- a/bin/start-akka-server.sh +++ b/bin/start-akka-server.sh @@ -39,20 +39,14 @@ CLASSPATH=$CLASSPATH:$LIB_DIR/commons-logging-1.0.4.jar CLASSPATH=$CLASSPATH:$LIB_DIR/commons-math-1.1.jar CLASSPATH=$CLASSPATH:$LIB_DIR/configgy-1.3.jar CLASSPATH=$CLASSPATH:$LIB_DIR/google-collect-snapshot-20090211.jar -CLASSPATH=$CLASSPATH:$LIB_DIR/grizzly-framework-1.8.6.3.jar -CLASSPATH=$CLASSPATH:$LIB_DIR/grizzly-http-1.8.6.3.jar -CLASSPATH=$CLASSPATH:$LIB_DIR/grizzly-http-servlet-1.8.6.3.jar -CLASSPATH=$CLASSPATH:$LIB_DIR/grizzly-http-utils-1.8.6.3.jar -CLASSPATH=$CLASSPATH:$LIB_DIR/grizzly-servlet-webserver-1.8.6.3.jar -CLASSPATH=$CLASSPATH:$LIB_DIR/grizzly-comet-1.8.6.3.jar +#CLASSPATH=$CLASSPATH:$LIB_DIR/grizzly-framework-1.8.6.3.jar +#CLASSPATH=$CLASSPATH:$LIB_DIR/grizzly-http-1.8.6.3.jar +#CLASSPATH=$CLASSPATH:$LIB_DIR/grizzly-http-servlet-1.8.6.3.jar +#CLASSPATH=$CLASSPATH:$LIB_DIR/grizzly-http-utils-1.9.1.jar +#CLASSPATH=$CLASSPATH:$LIB_DIR/grizzly-servlet-webserver-1.8.6.3.jar +#CLASSPATH=$CLASSPATH:$LIB_DIR/grizzly-comet-1.8.6.3.jar CLASSPATH=$CLASSPATH:$LIB_DIR/grizzly-comet-webserver-1.8.6.3.jar -#CLASSPATH=$CLASSPATH:$LIB_DIR/grizzly-framework-1.9.9.jar -#CLASSPATH=$CLASSPATH:$LIB_DIR/grizzly-http-1.9.9.jar -#CLASSPATH=$CLASSPATH:$LIB_DIR/grizzly-http-servlet-1.9.9.jar -#CLASSPATH=$CLASSPATH:$LIB_DIR/grizzly-http-utils-1.9.2.jar -#CLASSPATH=$CLASSPATH:$LIB_DIR/grizzly-servlet-webserver-1.9.9.jar -#CLASSPATH=$CLASSPATH:$LIB_DIR/grizzly-comet-webserver-1.9.9.jar -#CLASSPATH=$CLASSPATH:$LIB_DIR/grizzly-webserver-1.9.9.jar +#CLASSPATH=$CLASSPATH:$LIB_DIR/grizzly-comet-webserver-1.9.17-RC2.jar CLASSPATH=$CLASSPATH:$LIB_DIR/guice-core-2.0-SNAPSHOT.jar CLASSPATH=$CLASSPATH:$LIB_DIR/guice-jsr250-2.0-SNAPSHOT.jar CLASSPATH=$CLASSPATH:$LIB_DIR/high-scale-lib.jar @@ -66,7 +60,6 @@ CLASSPATH=$CLASSPATH:$LIB_DIR/jersey-scala-1.1.2-ea-SNAPSHOT.jar CLASSPATH=$CLASSPATH:$LIB_DIR/atmosphere-core-0.3-SNAPSHOT.jar CLASSPATH=$CLASSPATH:$LIB_DIR/atmosphere-portable-runtime-0.3-SNAPSHOT.jar CLASSPATH=$CLASSPATH:$LIB_DIR/atmosphere-compat-0.3-SNAPSHOT.jar -#CLASSPATH=$CLASSPATH:$LIB_DIR/atmosphere-grizzly-adapter-0.3-SNAPSHOT.jar CLASSPATH=$CLASSPATH:$LIB_DIR/JSAP-2.1.jar CLASSPATH=$CLASSPATH:$LIB_DIR/jsr250-api-1.0.jar CLASSPATH=$CLASSPATH:$LIB_DIR/jsr311-api-1.0.jar diff --git a/deploy/akka-samples-java-0.5.jar b/deploy/akka-samples-java-0.5.jar index c6ab30f5b1..5e26c5c16c 100644 Binary files a/deploy/akka-samples-java-0.5.jar and b/deploy/akka-samples-java-0.5.jar differ diff --git a/deploy/akka-samples-scala-0.5.jar b/deploy/akka-samples-scala-0.5.jar index 37c1edb25d..f19f1d2e14 100644 Binary files a/deploy/akka-samples-scala-0.5.jar and b/deploy/akka-samples-scala-0.5.jar differ diff --git a/deploy/root/images/body-background.png b/deploy/root/images/body-background.png deleted file mode 100644 index ece11eb20a..0000000000 Binary files a/deploy/root/images/body-background.png and /dev/null differ diff --git a/deploy/root/images/header-background.png b/deploy/root/images/header-background.png deleted file mode 100644 index 93e4a49c37..0000000000 Binary files a/deploy/root/images/header-background.png and /dev/null differ diff --git a/deploy/root/images/main-background.png b/deploy/root/images/main-background.png deleted file mode 100644 index e94cb2d7ca..0000000000 Binary files a/deploy/root/images/main-background.png and /dev/null differ diff --git a/deploy/root/index.html b/deploy/root/index.html deleted file mode 100644 index 39ba0a4f48..0000000000 --- a/deploy/root/index.html +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - Atmosphere REST Chat - - - - - - - - -
-
- -
-
-
-
-
Please input your name:
-
- -
- -
- -
-
-
-
- - - diff --git a/deploy/root/javascripts/application.js b/deploy/root/javascripts/application.js deleted file mode 100644 index 9484b3b7b3..0000000000 --- a/deploy/root/javascripts/application.js +++ /dev/null @@ -1,93 +0,0 @@ -var count = 0; -var app = { - url: 'http://localhost:9998/chat', - initialize: function() { - $('login-name').focus(); - app.listen(); - }, - listen: function() { - $('comet-frame').src = app.url + '?' + count; - count ++; - }, - login: function() { - var name = $F('login-name'); - if(! name.length > 0) { - $('system-message').style.color = 'red'; - $('login-name').focus(); - return; - } - $('system-message').style.color = '#2d2b3d'; - $('system-message').innerHTML = name + ':'; - - $('login-button').disabled = true; - $('login-form').style.display = 'none'; - $('message-form').style.display = ''; - - var query = - 'action=login' + - '&name=' + encodeURI($F('login-name')); - new Ajax.Request(app.url, { - postBody: query, - onSuccess: function() { - $('message').focus(); - } - }); - }, - post: function() { - var message = $F('message'); - if(!message > 0) { - return; - } - $('message').disabled = true; - $('post-button').disabled = true; - - var query = - 'action=post' + - '&name=' + encodeURI($F('login-name')) + - '&message=' + encodeURI(message); - new Ajax.Request(app.url, { - postBody: query, - method : 'post', - //requestHeaders: ['Content-Type', - // 'application/x-www-form-urlencoded; charset=UTF-8'], - onComplete: function() { - $('message').disabled = false; - $('post-button').disabled = false; - $('message').focus(); - $('message').value = ''; - } - }); - }, - update: function(data) { - var p = document.createElement('p'); - p.innerHTML = data.name + ':
' + data.message; - - $('display').appendChild(p); - - new Fx.Scroll('display').down(); - } -}; -var rules = { - '#login-name': function(elem) { - Event.observe(elem, 'keydown', function(e) { - if(e.keyCode == 13) { - $('login-button').focus(); - } - }); - }, - '#login-button': function(elem) { - elem.onclick = app.login; - }, - '#message': function(elem) { - Event.observe(elem, 'keydown', function(e) { - if(e.shiftKey && e.keyCode == 13) { - $('post-button').focus(); - } - }); - }, - '#post-button': function(elem) { - elem.onclick = app.post; - } -}; -Behaviour.addLoadEvent(app.initialize); -Behaviour.register(rules); diff --git a/deploy/root/javascripts/behaviour.js b/deploy/root/javascripts/behaviour.js deleted file mode 100644 index fdde861bba..0000000000 --- a/deploy/root/javascripts/behaviour.js +++ /dev/null @@ -1,254 +0,0 @@ -/* - Behaviour v1.1 by Ben Nolan, June 2005. Based largely on the work - of Simon Willison (see comments by Simon below). - - Description: - - Uses css selectors to apply javascript behaviours to enable - unobtrusive javascript in html documents. - - Usage: - - var myrules = { - 'b.someclass' : function(element){ - element.onclick = function(){ - alert(this.innerHTML); - } - }, - '#someid u' : function(element){ - element.onmouseover = function(){ - this.innerHTML = "BLAH!"; - } - } - }; - - Behaviour.register(myrules); - - // Call Behaviour.apply() to re-apply the rules (if you - // update the dom, etc). - - License: - - This file is entirely BSD licensed. - - More information: - - http://ripcord.co.nz/behaviour/ - -*/ - -var Behaviour = { - list : new Array, - - register : function(sheet){ - Behaviour.list.push(sheet); - }, - - start : function(){ - Behaviour.addLoadEvent(function(){ - Behaviour.apply(); - }); - }, - - apply : function(){ - for (h=0;sheet=Behaviour.list[h];h++){ - for (selector in sheet){ - list = document.getElementsBySelector(selector); - - if (!list){ - continue; - } - - for (i=0;element=list[i];i++){ - sheet[selector](element); - } - } - } - }, - - addLoadEvent : function(func){ - var oldonload = window.onload; - - if (typeof window.onload != 'function') { - window.onload = func; - } else { - window.onload = function() { - oldonload(); - func(); - } - } - } -} - -Behaviour.start(); - -/* - The following code is Copyright (C) Simon Willison 2004. - - document.getElementsBySelector(selector) - - returns an array of element objects from the current document - matching the CSS selector. Selectors can contain element names, - class names and ids and can be nested. For example: - - elements = document.getElementsBySelect('div#main p a.external') - - Will return an array of all 'a' elements with 'external' in their - class attribute that are contained inside 'p' elements that are - contained inside the 'div' element which has id="main" - - New in version 0.4: Support for CSS2 and CSS3 attribute selectors: - See http://www.w3.org/TR/css3-selectors/#attribute-selectors - - Version 0.4 - Simon Willison, March 25th 2003 - -- Works in Phoenix 0.5, Mozilla 1.3, Opera 7, Internet Explorer 6, Internet Explorer 5 on Windows - -- Opera 7 fails -*/ - -function getAllChildren(e) { - // Returns all children of element. Workaround required for IE5/Windows. Ugh. - return e.all ? e.all : e.getElementsByTagName('*'); -} - -document.getElementsBySelector = function(selector) { - // Attempt to fail gracefully in lesser browsers - if (!document.getElementsByTagName) { - return new Array(); - } - // Split selector in to tokens - var tokens = selector.split(' '); - var currentContext = new Array(document); - for (var i = 0; i < tokens.length; i++) { - token = tokens[i].replace(/^\s+/,'').replace(/\s+$/,'');; - if (token.indexOf('#') > -1) { - // Token is an ID selector - var bits = token.split('#'); - var tagName = bits[0]; - var id = bits[1]; - var element = document.getElementById(id); - if (tagName && element.nodeName.toLowerCase() != tagName) { - // tag with that ID not found, return false - return new Array(); - } - // Set currentContext to contain just this element - currentContext = new Array(element); - continue; // Skip to next token - } - if (token.indexOf('.') > -1) { - // Token contains a class selector - var bits = token.split('.'); - var tagName = bits[0]; - var className = bits[1]; - if (!tagName) { - tagName = '*'; - } - // Get elements matching tag, filter them for class selector - var found = new Array; - var foundCount = 0; - for (var h = 0; h < currentContext.length; h++) { - var elements; - if (tagName == '*') { - elements = getAllChildren(currentContext[h]); - } else { - elements = currentContext[h].getElementsByTagName(tagName); - } - for (var j = 0; j < elements.length; j++) { - found[foundCount++] = elements[j]; - } - } - currentContext = new Array; - var currentContextIndex = 0; - for (var k = 0; k < found.length; k++) { - if (found[k].className && found[k].className.match(new RegExp('\\b'+className+'\\b'))) { - currentContext[currentContextIndex++] = found[k]; - } - } - continue; // Skip to next token - } - // Code to deal with attribute selectors - if (token.match(/^(\w*)\[(\w+)([=~\|\^\$\*]?)=?"?([^\]"]*)"?\]$/)) { - var tagName = RegExp.$1; - var attrName = RegExp.$2; - var attrOperator = RegExp.$3; - var attrValue = RegExp.$4; - if (!tagName) { - tagName = '*'; - } - // Grab all of the tagName elements within current context - var found = new Array; - var foundCount = 0; - for (var h = 0; h < currentContext.length; h++) { - var elements; - if (tagName == '*') { - elements = getAllChildren(currentContext[h]); - } else { - elements = currentContext[h].getElementsByTagName(tagName); - } - for (var j = 0; j < elements.length; j++) { - found[foundCount++] = elements[j]; - } - } - currentContext = new Array; - var currentContextIndex = 0; - var checkFunction; // This function will be used to filter the elements - switch (attrOperator) { - case '=': // Equality - checkFunction = function(e) { return (e.getAttribute(attrName) == attrValue); }; - break; - case '~': // Match one of space seperated words - checkFunction = function(e) { return (e.getAttribute(attrName).match(new RegExp('\\b'+attrValue+'\\b'))); }; - break; - case '|': // Match start with value followed by optional hyphen - checkFunction = function(e) { return (e.getAttribute(attrName).match(new RegExp('^'+attrValue+'-?'))); }; - break; - case '^': // Match starts with value - checkFunction = function(e) { return (e.getAttribute(attrName).indexOf(attrValue) == 0); }; - break; - case '$': // Match ends with value - fails with "Warning" in Opera 7 - checkFunction = function(e) { return (e.getAttribute(attrName).lastIndexOf(attrValue) == e.getAttribute(attrName).length - attrValue.length); }; - break; - case '*': // Match ends with value - checkFunction = function(e) { return (e.getAttribute(attrName).indexOf(attrValue) > -1); }; - break; - default : - // Just test for existence of attribute - checkFunction = function(e) { return e.getAttribute(attrName); }; - } - currentContext = new Array; - var currentContextIndex = 0; - for (var k = 0; k < found.length; k++) { - if (checkFunction(found[k])) { - currentContext[currentContextIndex++] = found[k]; - } - } - // alert('Attribute Selector: '+tagName+' '+attrName+' '+attrOperator+' '+attrValue); - continue; // Skip to next token - } - - if (!currentContext[0]){ - return; - } - - // If we get here, token is JUST an element (not a class or ID selector) - tagName = token; - var found = new Array; - var foundCount = 0; - for (var h = 0; h < currentContext.length; h++) { - var elements = currentContext[h].getElementsByTagName(tagName); - for (var j = 0; j < elements.length; j++) { - found[foundCount++] = elements[j]; - } - } - currentContext = found; - } - return currentContext; -} - -/* That revolting regular expression explained -/^(\w+)\[(\w+)([=~\|\^\$\*]?)=?"?([^\]"]*)"?\]$/ - \---/ \---/\-------------/ \-------/ - | | | | - | | | The value - | | ~,|,^,$,* or = - | Attribute - Tag -*/ diff --git a/deploy/root/javascripts/moo.fx.js b/deploy/root/javascripts/moo.fx.js deleted file mode 100644 index 95c01f819a..0000000000 --- a/deploy/root/javascripts/moo.fx.js +++ /dev/null @@ -1,136 +0,0 @@ -//(c) 2006 Valerio Proietti (http://mad4milk.net). MIT-style license. -//moo.fx.js - depends on prototype.js OR prototype.lite.js -//version 2.0 - -var Fx = fx = {}; - -Fx.Base = function(){}; -Fx.Base.prototype = { - - setOptions: function(options){ - this.options = Object.extend({ - onStart: function(){}, - onComplete: function(){}, - transition: Fx.Transitions.sineInOut, - duration: 500, - unit: 'px', - wait: true, - fps: 50 - }, options || {}); - }, - - step: function(){ - var time = new Date().getTime(); - if (time < this.time + this.options.duration){ - this.cTime = time - this.time; - this.setNow(); - } else { - setTimeout(this.options.onComplete.bind(this, this.element), 10); - this.clearTimer(); - this.now = this.to; - } - this.increase(); - }, - - setNow: function(){ - this.now = this.compute(this.from, this.to); - }, - - compute: function(from, to){ - var change = to - from; - return this.options.transition(this.cTime, from, change, this.options.duration); - }, - - clearTimer: function(){ - clearInterval(this.timer); - this.timer = null; - return this; - }, - - _start: function(from, to){ - if (!this.options.wait) this.clearTimer(); - if (this.timer) return; - setTimeout(this.options.onStart.bind(this, this.element), 10); - this.from = from; - this.to = to; - this.time = new Date().getTime(); - this.timer = setInterval(this.step.bind(this), Math.round(1000/this.options.fps)); - return this; - }, - - custom: function(from, to){ - return this._start(from, to); - }, - - set: function(to){ - this.now = to; - this.increase(); - return this; - }, - - hide: function(){ - return this.set(0); - }, - - setStyle: function(e, p, v){ - if (p == 'opacity'){ - if (v == 0 && e.style.visibility != "hidden") e.style.visibility = "hidden"; - else if (e.style.visibility != "visible") e.style.visibility = "visible"; - if (window.ActiveXObject) e.style.filter = "alpha(opacity=" + v*100 + ")"; - e.style.opacity = v; - } else e.style[p] = v+this.options.unit; - } - -}; - -Fx.Style = Class.create(); -Fx.Style.prototype = Object.extend(new Fx.Base(), { - - initialize: function(el, property, options){ - this.element = $(el); - this.setOptions(options); - this.property = property.camelize(); - }, - - increase: function(){ - this.setStyle(this.element, this.property, this.now); - } - -}); - -Fx.Styles = Class.create(); -Fx.Styles.prototype = Object.extend(new Fx.Base(), { - - initialize: function(el, options){ - this.element = $(el); - this.setOptions(options); - this.now = {}; - }, - - setNow: function(){ - for (p in this.from) this.now[p] = this.compute(this.from[p], this.to[p]); - }, - - custom: function(obj){ - if (this.timer && this.options.wait) return; - var from = {}; - var to = {}; - for (p in obj){ - from[p] = obj[p][0]; - to[p] = obj[p][1]; - } - return this._start(from, to); - }, - - increase: function(){ - for (var p in this.now) this.setStyle(this.element, p, this.now[p]); - } - -}); - -//Transitions (c) 2003 Robert Penner (http://www.robertpenner.com/easing/), BSD License. - -Fx.Transitions = { - linear: function(t, b, c, d) { return c*t/d + b; }, - sineInOut: function(t, b, c, d) { return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b; } -}; \ No newline at end of file diff --git a/deploy/root/javascripts/moo.fx.pack.js b/deploy/root/javascripts/moo.fx.pack.js deleted file mode 100644 index a06656fb44..0000000000 --- a/deploy/root/javascripts/moo.fx.pack.js +++ /dev/null @@ -1,83 +0,0 @@ -//by Valerio Proietti (http://mad4milk.net). MIT-style license. -//moo.fx.pack.js - depends on prototype.js or prototype.lite.js + moo.fx.js -//version 2.0 - -Fx.Scroll = Class.create(); -Fx.Scroll.prototype = Object.extend(new Fx.Base(), { - - initialize: function(el, options) { - this.element = $(el); - this.setOptions(options); - this.element.style.overflow = 'hidden'; - }, - - down: function(){ - return this.custom(this.element.scrollTop, this.element.scrollHeight-this.element.offsetHeight); - }, - - up: function(){ - return this.custom(this.element.scrollTop, 0); - }, - - increase: function(){ - this.element.scrollTop = this.now; - } - -}); - -//fx.Color, originally by Tom Jensen (http://neuemusic.com) MIT-style LICENSE. - -Fx.Color = Class.create(); -Fx.Color.prototype = Object.extend(new Fx.Base(), { - - initialize: function(el, property, options){ - this.element = $(el); - this.setOptions(options); - this.property = property.camelize(); - this.now = []; - }, - - custom: function(from, to){ - return this._start(from.hexToRgb(true), to.hexToRgb(true)); - }, - - setNow: function(){ - [0,1,2].each(function(i){ - this.now[i] = Math.round(this.compute(this.from[i], this.to[i])); - }.bind(this)); - }, - - increase: function(){ - this.element.style[this.property] = "rgb("+this.now[0]+","+this.now[1]+","+this.now[2]+")"; - } - -}); - -Object.extend(String.prototype, { - - rgbToHex: function(array){ - var rgb = this.match(new RegExp('([\\d]{1,3})', 'g')); - if (rgb[3] == 0) return 'transparent'; - var hex = []; - for (var i = 0; i < 3; i++){ - var bit = (rgb[i]-0).toString(16); - hex.push(bit.length == 1 ? '0'+bit : bit); - } - var hexText = '#'+hex.join(''); - if (array) return hex; - else return hexText; - }, - - hexToRgb: function(array){ - var hex = this.match(new RegExp('^[#]{0,1}([\\w]{1,2})([\\w]{1,2})([\\w]{1,2})$')); - var rgb = []; - for (var i = 1; i < hex.length; i++){ - if (hex[i].length == 1) hex[i] += hex[i]; - rgb.push(parseInt(hex[i], 16)); - } - var rgbText = 'rgb('+rgb.join(',')+')'; - if (array) return rgb; - else return rgbText; - } - -}); \ No newline at end of file diff --git a/deploy/root/javascripts/prototype.js b/deploy/root/javascripts/prototype.js deleted file mode 100644 index 0e85338bab..0000000000 --- a/deploy/root/javascripts/prototype.js +++ /dev/null @@ -1,1781 +0,0 @@ -/* Prototype JavaScript framework, version 1.4.0 - * (c) 2005 Sam Stephenson - * - * Prototype is freely distributable under the terms of an MIT-style license. - * For details, see the Prototype web site: http://prototype.conio.net/ - * -/*--------------------------------------------------------------------------*/ - -var Prototype = { - Version: '1.4.0', - ScriptFragment: '(?:)((\n|\r|.)*?)(?:<\/script>)', - - emptyFunction: function() {}, - K: function(x) {return x} -} - -var Class = { - create: function() { - return function() { - this.initialize.apply(this, arguments); - } - } -} - -var Abstract = new Object(); - -Object.extend = function(destination, source) { - for (property in source) { - destination[property] = source[property]; - } - return destination; -} - -Object.inspect = function(object) { - try { - if (object == undefined) return 'undefined'; - if (object == null) return 'null'; - return object.inspect ? object.inspect() : object.toString(); - } catch (e) { - if (e instanceof RangeError) return '...'; - throw e; - } -} - -Function.prototype.bind = function() { - var __method = this, args = $A(arguments), object = args.shift(); - return function() { - return __method.apply(object, args.concat($A(arguments))); - } -} - -Function.prototype.bindAsEventListener = function(object) { - var __method = this; - return function(event) { - return __method.call(object, event || window.event); - } -} - -Object.extend(Number.prototype, { - toColorPart: function() { - var digits = this.toString(16); - if (this < 16) return '0' + digits; - return digits; - }, - - succ: function() { - return this + 1; - }, - - times: function(iterator) { - $R(0, this, true).each(iterator); - return this; - } -}); - -var Try = { - these: function() { - var returnValue; - - for (var i = 0; i < arguments.length; i++) { - var lambda = arguments[i]; - try { - returnValue = lambda(); - break; - } catch (e) {} - } - - return returnValue; - } -} - -/*--------------------------------------------------------------------------*/ - -var PeriodicalExecuter = Class.create(); -PeriodicalExecuter.prototype = { - initialize: function(callback, frequency) { - this.callback = callback; - this.frequency = frequency; - this.currentlyExecuting = false; - - this.registerCallback(); - }, - - registerCallback: function() { - setInterval(this.onTimerEvent.bind(this), this.frequency * 1000); - }, - - onTimerEvent: function() { - if (!this.currentlyExecuting) { - try { - this.currentlyExecuting = true; - this.callback(); - } finally { - this.currentlyExecuting = false; - } - } - } -} - -/*--------------------------------------------------------------------------*/ - -function $() { - var elements = new Array(); - - for (var i = 0; i < arguments.length; i++) { - var element = arguments[i]; - if (typeof element == 'string') - element = document.getElementById(element); - - if (arguments.length == 1) - return element; - - elements.push(element); - } - - return elements; -} -Object.extend(String.prototype, { - stripTags: function() { - return this.replace(/<\/?[^>]+>/gi, ''); - }, - - stripScripts: function() { - return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), ''); - }, - - extractScripts: function() { - var matchAll = new RegExp(Prototype.ScriptFragment, 'img'); - var matchOne = new RegExp(Prototype.ScriptFragment, 'im'); - return (this.match(matchAll) || []).map(function(scriptTag) { - return (scriptTag.match(matchOne) || ['', ''])[1]; - }); - }, - - evalScripts: function() { - return this.extractScripts().map(eval); - }, - - escapeHTML: function() { - var div = document.createElement('div'); - var text = document.createTextNode(this); - div.appendChild(text); - return div.innerHTML; - }, - - unescapeHTML: function() { - var div = document.createElement('div'); - div.innerHTML = this.stripTags(); - return div.childNodes[0] ? div.childNodes[0].nodeValue : ''; - }, - - toQueryParams: function() { - var pairs = this.match(/^\??(.*)$/)[1].split('&'); - return pairs.inject({}, function(params, pairString) { - var pair = pairString.split('='); - params[pair[0]] = pair[1]; - return params; - }); - }, - - toArray: function() { - return this.split(''); - }, - - camelize: function() { - var oStringList = this.split('-'); - if (oStringList.length == 1) return oStringList[0]; - - var camelizedString = this.indexOf('-') == 0 - ? oStringList[0].charAt(0).toUpperCase() + oStringList[0].substring(1) - : oStringList[0]; - - for (var i = 1, len = oStringList.length; i < len; i++) { - var s = oStringList[i]; - camelizedString += s.charAt(0).toUpperCase() + s.substring(1); - } - - return camelizedString; - }, - - inspect: function() { - return "'" + this.replace('\\', '\\\\').replace("'", '\\\'') + "'"; - } -}); - -String.prototype.parseQuery = String.prototype.toQueryParams; - -var $break = new Object(); -var $continue = new Object(); - -var Enumerable = { - each: function(iterator) { - var index = 0; - try { - this._each(function(value) { - try { - iterator(value, index++); - } catch (e) { - if (e != $continue) throw e; - } - }); - } catch (e) { - if (e != $break) throw e; - } - }, - - all: function(iterator) { - var result = true; - this.each(function(value, index) { - result = result && !!(iterator || Prototype.K)(value, index); - if (!result) throw $break; - }); - return result; - }, - - any: function(iterator) { - var result = true; - this.each(function(value, index) { - if (result = !!(iterator || Prototype.K)(value, index)) - throw $break; - }); - return result; - }, - - collect: function(iterator) { - var results = []; - this.each(function(value, index) { - results.push(iterator(value, index)); - }); - return results; - }, - - detect: function (iterator) { - var result; - this.each(function(value, index) { - if (iterator(value, index)) { - result = value; - throw $break; - } - }); - return result; - }, - - findAll: function(iterator) { - var results = []; - this.each(function(value, index) { - if (iterator(value, index)) - results.push(value); - }); - return results; - }, - - grep: function(pattern, iterator) { - var results = []; - this.each(function(value, index) { - var stringValue = value.toString(); - if (stringValue.match(pattern)) - results.push((iterator || Prototype.K)(value, index)); - }) - return results; - }, - - include: function(object) { - var found = false; - this.each(function(value) { - if (value == object) { - found = true; - throw $break; - } - }); - return found; - }, - - inject: function(memo, iterator) { - this.each(function(value, index) { - memo = iterator(memo, value, index); - }); - return memo; - }, - - invoke: function(method) { - var args = $A(arguments).slice(1); - return this.collect(function(value) { - return value[method].apply(value, args); - }); - }, - - max: function(iterator) { - var result; - this.each(function(value, index) { - value = (iterator || Prototype.K)(value, index); - if (value >= (result || value)) - result = value; - }); - return result; - }, - - min: function(iterator) { - var result; - this.each(function(value, index) { - value = (iterator || Prototype.K)(value, index); - if (value <= (result || value)) - result = value; - }); - return result; - }, - - partition: function(iterator) { - var trues = [], falses = []; - this.each(function(value, index) { - ((iterator || Prototype.K)(value, index) ? - trues : falses).push(value); - }); - return [trues, falses]; - }, - - pluck: function(property) { - var results = []; - this.each(function(value, index) { - results.push(value[property]); - }); - return results; - }, - - reject: function(iterator) { - var results = []; - this.each(function(value, index) { - if (!iterator(value, index)) - results.push(value); - }); - return results; - }, - - sortBy: function(iterator) { - return this.collect(function(value, index) { - return {value: value, criteria: iterator(value, index)}; - }).sort(function(left, right) { - var a = left.criteria, b = right.criteria; - return a < b ? -1 : a > b ? 1 : 0; - }).pluck('value'); - }, - - toArray: function() { - return this.collect(Prototype.K); - }, - - zip: function() { - var iterator = Prototype.K, args = $A(arguments); - if (typeof args.last() == 'function') - iterator = args.pop(); - - var collections = [this].concat(args).map($A); - return this.map(function(value, index) { - iterator(value = collections.pluck(index)); - return value; - }); - }, - - inspect: function() { - return '#'; - } -} - -Object.extend(Enumerable, { - map: Enumerable.collect, - find: Enumerable.detect, - select: Enumerable.findAll, - member: Enumerable.include, - entries: Enumerable.toArray -}); -var $A = Array.from = function(iterable) { - if (!iterable) return []; - if (iterable.toArray) { - return iterable.toArray(); - } else { - var results = []; - for (var i = 0; i < iterable.length; i++) - results.push(iterable[i]); - return results; - } -} - -Object.extend(Array.prototype, Enumerable); - -Array.prototype._reverse = Array.prototype.reverse; - -Object.extend(Array.prototype, { - _each: function(iterator) { - for (var i = 0; i < this.length; i++) - iterator(this[i]); - }, - - clear: function() { - this.length = 0; - return this; - }, - - first: function() { - return this[0]; - }, - - last: function() { - return this[this.length - 1]; - }, - - compact: function() { - return this.select(function(value) { - return value != undefined || value != null; - }); - }, - - flatten: function() { - return this.inject([], function(array, value) { - return array.concat(value.constructor == Array ? - value.flatten() : [value]); - }); - }, - - without: function() { - var values = $A(arguments); - return this.select(function(value) { - return !values.include(value); - }); - }, - - indexOf: function(object) { - for (var i = 0; i < this.length; i++) - if (this[i] == object) return i; - return -1; - }, - - reverse: function(inline) { - return (inline !== false ? this : this.toArray())._reverse(); - }, - - shift: function() { - var result = this[0]; - for (var i = 0; i < this.length - 1; i++) - this[i] = this[i + 1]; - this.length--; - return result; - }, - - inspect: function() { - return '[' + this.map(Object.inspect).join(', ') + ']'; - } -}); -var Hash = { - _each: function(iterator) { - for (key in this) { - var value = this[key]; - if (typeof value == 'function') continue; - - var pair = [key, value]; - pair.key = key; - pair.value = value; - iterator(pair); - } - }, - - keys: function() { - return this.pluck('key'); - }, - - values: function() { - return this.pluck('value'); - }, - - merge: function(hash) { - return $H(hash).inject($H(this), function(mergedHash, pair) { - mergedHash[pair.key] = pair.value; - return mergedHash; - }); - }, - - toQueryString: function() { - return this.map(function(pair) { - return pair.map(encodeURIComponent).join('='); - }).join('&'); - }, - - inspect: function() { - return '#'; - } -} - -function $H(object) { - var hash = Object.extend({}, object || {}); - Object.extend(hash, Enumerable); - Object.extend(hash, Hash); - return hash; -} -ObjectRange = Class.create(); -Object.extend(ObjectRange.prototype, Enumerable); -Object.extend(ObjectRange.prototype, { - initialize: function(start, end, exclusive) { - this.start = start; - this.end = end; - this.exclusive = exclusive; - }, - - _each: function(iterator) { - var value = this.start; - do { - iterator(value); - value = value.succ(); - } while (this.include(value)); - }, - - include: function(value) { - if (value < this.start) - return false; - if (this.exclusive) - return value < this.end; - return value <= this.end; - } -}); - -var $R = function(start, end, exclusive) { - return new ObjectRange(start, end, exclusive); -} - -var Ajax = { - getTransport: function() { - return Try.these( - function() {return new ActiveXObject('Msxml2.XMLHTTP')}, - function() {return new ActiveXObject('Microsoft.XMLHTTP')}, - function() {return new XMLHttpRequest()} - ) || false; - }, - - activeRequestCount: 0 -} - -Ajax.Responders = { - responders: [], - - _each: function(iterator) { - this.responders._each(iterator); - }, - - register: function(responderToAdd) { - if (!this.include(responderToAdd)) - this.responders.push(responderToAdd); - }, - - unregister: function(responderToRemove) { - this.responders = this.responders.without(responderToRemove); - }, - - dispatch: function(callback, request, transport, json) { - this.each(function(responder) { - if (responder[callback] && typeof responder[callback] == 'function') { - try { - responder[callback].apply(responder, [request, transport, json]); - } catch (e) {} - } - }); - } -}; - -Object.extend(Ajax.Responders, Enumerable); - -Ajax.Responders.register({ - onCreate: function() { - Ajax.activeRequestCount++; - }, - - onComplete: function() { - Ajax.activeRequestCount--; - } -}); - -Ajax.Base = function() {}; -Ajax.Base.prototype = { - setOptions: function(options) { - this.options = { - method: 'post', - asynchronous: true, - parameters: '' - } - Object.extend(this.options, options || {}); - }, - - responseIsSuccess: function() { - return this.transport.status == undefined - || this.transport.status == 0 - || (this.transport.status >= 200 && this.transport.status < 300); - }, - - responseIsFailure: function() { - return !this.responseIsSuccess(); - } -} - -Ajax.Request = Class.create(); -Ajax.Request.Events = - ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete']; - -Ajax.Request.prototype = Object.extend(new Ajax.Base(), { - initialize: function(url, options) { - this.transport = Ajax.getTransport(); - this.setOptions(options); - this.request(url); - }, - - request: function(url) { - var parameters = this.options.parameters || ''; - if (parameters.length > 0) parameters += '&_='; - - try { - this.url = url; - if (this.options.method == 'get' && parameters.length > 0) - this.url += (this.url.match(/\?/) ? '&' : '?') + parameters; - - Ajax.Responders.dispatch('onCreate', this, this.transport); - - this.transport.open(this.options.method, this.url, - this.options.asynchronous); - - if (this.options.asynchronous) { - this.transport.onreadystatechange = this.onStateChange.bind(this); - setTimeout((function() {this.respondToReadyState(1)}).bind(this), 10); - } - - this.setRequestHeaders(); - - var body = this.options.postBody ? this.options.postBody : parameters; - this.transport.send(this.options.method == 'post' ? body : null); - - } catch (e) { - this.dispatchException(e); - } - }, - - setRequestHeaders: function() { - var requestHeaders = - ['X-Requested-With', 'XMLHttpRequest', - 'X-Prototype-Version', Prototype.Version]; - - if (this.options.method == 'post') { - requestHeaders.push('Content-type', - 'application/x-www-form-urlencoded'); - - /* Force "Connection: close" for Mozilla browsers to work around - * a bug where XMLHttpReqeuest sends an incorrect Content-length - * header. See Mozilla Bugzilla #246651. - */ - if (this.transport.overrideMimeType) - requestHeaders.push('Connection', 'close'); - } - - if (this.options.requestHeaders) - requestHeaders.push.apply(requestHeaders, this.options.requestHeaders); - - for (var i = 0; i < requestHeaders.length; i += 2) - this.transport.setRequestHeader(requestHeaders[i], requestHeaders[i+1]); - }, - - onStateChange: function() { - var readyState = this.transport.readyState; - if (readyState != 1) - this.respondToReadyState(this.transport.readyState); - }, - - header: function(name) { - try { - return this.transport.getResponseHeader(name); - } catch (e) {} - }, - - evalJSON: function() { - try { - return eval(this.header('X-JSON')); - } catch (e) {} - }, - - evalResponse: function() { - try { - return eval(this.transport.responseText); - } catch (e) { - this.dispatchException(e); - } - }, - - respondToReadyState: function(readyState) { - var event = Ajax.Request.Events[readyState]; - var transport = this.transport, json = this.evalJSON(); - - if (event == 'Complete') { - try { - (this.options['on' + this.transport.status] - || this.options['on' + (this.responseIsSuccess() ? 'Success' : 'Failure')] - || Prototype.emptyFunction)(transport, json); - } catch (e) { - this.dispatchException(e); - } - - if ((this.header('Content-type') || '').match(/^text\/javascript/i)) - this.evalResponse(); - } - - try { - (this.options['on' + event] || Prototype.emptyFunction)(transport, json); - Ajax.Responders.dispatch('on' + event, this, transport, json); - } catch (e) { - this.dispatchException(e); - } - - /* Avoid memory leak in MSIE: clean up the oncomplete event handler */ - if (event == 'Complete') - this.transport.onreadystatechange = Prototype.emptyFunction; - }, - - dispatchException: function(exception) { - (this.options.onException || Prototype.emptyFunction)(this, exception); - Ajax.Responders.dispatch('onException', this, exception); - } -}); - -Ajax.Updater = Class.create(); - -Object.extend(Object.extend(Ajax.Updater.prototype, Ajax.Request.prototype), { - initialize: function(container, url, options) { - this.containers = { - success: container.success ? $(container.success) : $(container), - failure: container.failure ? $(container.failure) : - (container.success ? null : $(container)) - } - - this.transport = Ajax.getTransport(); - this.setOptions(options); - - var onComplete = this.options.onComplete || Prototype.emptyFunction; - this.options.onComplete = (function(transport, object) { - this.updateContent(); - onComplete(transport, object); - }).bind(this); - - this.request(url); - }, - - updateContent: function() { - var receiver = this.responseIsSuccess() ? - this.containers.success : this.containers.failure; - var response = this.transport.responseText; - - if (!this.options.evalScripts) - response = response.stripScripts(); - - if (receiver) { - if (this.options.insertion) { - new this.options.insertion(receiver, response); - } else { - Element.update(receiver, response); - } - } - - if (this.responseIsSuccess()) { - if (this.onComplete) - setTimeout(this.onComplete.bind(this), 10); - } - } -}); - -Ajax.PeriodicalUpdater = Class.create(); -Ajax.PeriodicalUpdater.prototype = Object.extend(new Ajax.Base(), { - initialize: function(container, url, options) { - this.setOptions(options); - this.onComplete = this.options.onComplete; - - this.frequency = (this.options.frequency || 2); - this.decay = (this.options.decay || 1); - - this.updater = {}; - this.container = container; - this.url = url; - - this.start(); - }, - - start: function() { - this.options.onComplete = this.updateComplete.bind(this); - this.onTimerEvent(); - }, - - stop: function() { - this.updater.onComplete = undefined; - clearTimeout(this.timer); - (this.onComplete || Prototype.emptyFunction).apply(this, arguments); - }, - - updateComplete: function(request) { - if (this.options.decay) { - this.decay = (request.responseText == this.lastText ? - this.decay * this.options.decay : 1); - - this.lastText = request.responseText; - } - this.timer = setTimeout(this.onTimerEvent.bind(this), - this.decay * this.frequency * 1000); - }, - - onTimerEvent: function() { - this.updater = new Ajax.Updater(this.container, this.url, this.options); - } -}); -document.getElementsByClassName = function(className, parentElement) { - var children = ($(parentElement) || document.body).getElementsByTagName('*'); - return $A(children).inject([], function(elements, child) { - if (child.className.match(new RegExp("(^|\\s)" + className + "(\\s|$)"))) - elements.push(child); - return elements; - }); -} - -/*--------------------------------------------------------------------------*/ - -if (!window.Element) { - var Element = new Object(); -} - -Object.extend(Element, { - visible: function(element) { - return $(element).style.display != 'none'; - }, - - toggle: function() { - for (var i = 0; i < arguments.length; i++) { - var element = $(arguments[i]); - Element[Element.visible(element) ? 'hide' : 'show'](element); - } - }, - - hide: function() { - for (var i = 0; i < arguments.length; i++) { - var element = $(arguments[i]); - element.style.display = 'none'; - } - }, - - show: function() { - for (var i = 0; i < arguments.length; i++) { - var element = $(arguments[i]); - element.style.display = ''; - } - }, - - remove: function(element) { - element = $(element); - element.parentNode.removeChild(element); - }, - - update: function(element, html) { - $(element).innerHTML = html.stripScripts(); - setTimeout(function() {html.evalScripts()}, 10); - }, - - getHeight: function(element) { - element = $(element); - return element.offsetHeight; - }, - - classNames: function(element) { - return new Element.ClassNames(element); - }, - - hasClassName: function(element, className) { - if (!(element = $(element))) return; - return Element.classNames(element).include(className); - }, - - addClassName: function(element, className) { - if (!(element = $(element))) return; - return Element.classNames(element).add(className); - }, - - removeClassName: function(element, className) { - if (!(element = $(element))) return; - return Element.classNames(element).remove(className); - }, - - // removes whitespace-only text node children - cleanWhitespace: function(element) { - element = $(element); - for (var i = 0; i < element.childNodes.length; i++) { - var node = element.childNodes[i]; - if (node.nodeType == 3 && !/\S/.test(node.nodeValue)) - Element.remove(node); - } - }, - - empty: function(element) { - return $(element).innerHTML.match(/^\s*$/); - }, - - scrollTo: function(element) { - element = $(element); - var x = element.x ? element.x : element.offsetLeft, - y = element.y ? element.y : element.offsetTop; - window.scrollTo(x, y); - }, - - getStyle: function(element, style) { - element = $(element); - var value = element.style[style.camelize()]; - if (!value) { - if (document.defaultView && document.defaultView.getComputedStyle) { - var css = document.defaultView.getComputedStyle(element, null); - value = css ? css.getPropertyValue(style) : null; - } else if (element.currentStyle) { - value = element.currentStyle[style.camelize()]; - } - } - - if (window.opera && ['left', 'top', 'right', 'bottom'].include(style)) - if (Element.getStyle(element, 'position') == 'static') value = 'auto'; - - return value == 'auto' ? null : value; - }, - - setStyle: function(element, style) { - element = $(element); - for (name in style) - element.style[name.camelize()] = style[name]; - }, - - getDimensions: function(element) { - element = $(element); - if (Element.getStyle(element, 'display') != 'none') - return {width: element.offsetWidth, height: element.offsetHeight}; - - // All *Width and *Height properties give 0 on elements with display none, - // so enable the element temporarily - var els = element.style; - var originalVisibility = els.visibility; - var originalPosition = els.position; - els.visibility = 'hidden'; - els.position = 'absolute'; - els.display = ''; - var originalWidth = element.clientWidth; - var originalHeight = element.clientHeight; - els.display = 'none'; - els.position = originalPosition; - els.visibility = originalVisibility; - return {width: originalWidth, height: originalHeight}; - }, - - makePositioned: function(element) { - element = $(element); - var pos = Element.getStyle(element, 'position'); - if (pos == 'static' || !pos) { - element._madePositioned = true; - element.style.position = 'relative'; - // Opera returns the offset relative to the positioning context, when an - // element is position relative but top and left have not been defined - if (window.opera) { - element.style.top = 0; - element.style.left = 0; - } - } - }, - - undoPositioned: function(element) { - element = $(element); - if (element._madePositioned) { - element._madePositioned = undefined; - element.style.position = - element.style.top = - element.style.left = - element.style.bottom = - element.style.right = ''; - } - }, - - makeClipping: function(element) { - element = $(element); - if (element._overflow) return; - element._overflow = element.style.overflow; - if ((Element.getStyle(element, 'overflow') || 'visible') != 'hidden') - element.style.overflow = 'hidden'; - }, - - undoClipping: function(element) { - element = $(element); - if (element._overflow) return; - element.style.overflow = element._overflow; - element._overflow = undefined; - } -}); - -var Toggle = new Object(); -Toggle.display = Element.toggle; - -/*--------------------------------------------------------------------------*/ - -Abstract.Insertion = function(adjacency) { - this.adjacency = adjacency; -} - -Abstract.Insertion.prototype = { - initialize: function(element, content) { - this.element = $(element); - this.content = content.stripScripts(); - - if (this.adjacency && this.element.insertAdjacentHTML) { - try { - this.element.insertAdjacentHTML(this.adjacency, this.content); - } catch (e) { - if (this.element.tagName.toLowerCase() == 'tbody') { - this.insertContent(this.contentFromAnonymousTable()); - } else { - throw e; - } - } - } else { - this.range = this.element.ownerDocument.createRange(); - if (this.initializeRange) this.initializeRange(); - this.insertContent([this.range.createContextualFragment(this.content)]); - } - - setTimeout(function() {content.evalScripts()}, 10); - }, - - contentFromAnonymousTable: function() { - var div = document.createElement('div'); - div.innerHTML = '' + this.content + '
'; - return $A(div.childNodes[0].childNodes[0].childNodes); - } -} - -var Insertion = new Object(); - -Insertion.Before = Class.create(); -Insertion.Before.prototype = Object.extend(new Abstract.Insertion('beforeBegin'), { - initializeRange: function() { - this.range.setStartBefore(this.element); - }, - - insertContent: function(fragments) { - fragments.each((function(fragment) { - this.element.parentNode.insertBefore(fragment, this.element); - }).bind(this)); - } -}); - -Insertion.Top = Class.create(); -Insertion.Top.prototype = Object.extend(new Abstract.Insertion('afterBegin'), { - initializeRange: function() { - this.range.selectNodeContents(this.element); - this.range.collapse(true); - }, - - insertContent: function(fragments) { - fragments.reverse(false).each((function(fragment) { - this.element.insertBefore(fragment, this.element.firstChild); - }).bind(this)); - } -}); - -Insertion.Bottom = Class.create(); -Insertion.Bottom.prototype = Object.extend(new Abstract.Insertion('beforeEnd'), { - initializeRange: function() { - this.range.selectNodeContents(this.element); - this.range.collapse(this.element); - }, - - insertContent: function(fragments) { - fragments.each((function(fragment) { - this.element.appendChild(fragment); - }).bind(this)); - } -}); - -Insertion.After = Class.create(); -Insertion.After.prototype = Object.extend(new Abstract.Insertion('afterEnd'), { - initializeRange: function() { - this.range.setStartAfter(this.element); - }, - - insertContent: function(fragments) { - fragments.each((function(fragment) { - this.element.parentNode.insertBefore(fragment, - this.element.nextSibling); - }).bind(this)); - } -}); - -/*--------------------------------------------------------------------------*/ - -Element.ClassNames = Class.create(); -Element.ClassNames.prototype = { - initialize: function(element) { - this.element = $(element); - }, - - _each: function(iterator) { - this.element.className.split(/\s+/).select(function(name) { - return name.length > 0; - })._each(iterator); - }, - - set: function(className) { - this.element.className = className; - }, - - add: function(classNameToAdd) { - if (this.include(classNameToAdd)) return; - this.set(this.toArray().concat(classNameToAdd).join(' ')); - }, - - remove: function(classNameToRemove) { - if (!this.include(classNameToRemove)) return; - this.set(this.select(function(className) { - return className != classNameToRemove; - }).join(' ')); - }, - - toString: function() { - return this.toArray().join(' '); - } -} - -Object.extend(Element.ClassNames.prototype, Enumerable); -var Field = { - clear: function() { - for (var i = 0; i < arguments.length; i++) - $(arguments[i]).value = ''; - }, - - focus: function(element) { - $(element).focus(); - }, - - present: function() { - for (var i = 0; i < arguments.length; i++) - if ($(arguments[i]).value == '') return false; - return true; - }, - - select: function(element) { - $(element).select(); - }, - - activate: function(element) { - element = $(element); - element.focus(); - if (element.select) - element.select(); - } -} - -/*--------------------------------------------------------------------------*/ - -var Form = { - serialize: function(form) { - var elements = Form.getElements($(form)); - var queryComponents = new Array(); - - for (var i = 0; i < elements.length; i++) { - var queryComponent = Form.Element.serialize(elements[i]); - if (queryComponent) - queryComponents.push(queryComponent); - } - - return queryComponents.join('&'); - }, - - getElements: function(form) { - form = $(form); - var elements = new Array(); - - for (tagName in Form.Element.Serializers) { - var tagElements = form.getElementsByTagName(tagName); - for (var j = 0; j < tagElements.length; j++) - elements.push(tagElements[j]); - } - return elements; - }, - - getInputs: function(form, typeName, name) { - form = $(form); - var inputs = form.getElementsByTagName('input'); - - if (!typeName && !name) - return inputs; - - var matchingInputs = new Array(); - for (var i = 0; i < inputs.length; i++) { - var input = inputs[i]; - if ((typeName && input.type != typeName) || - (name && input.name != name)) - continue; - matchingInputs.push(input); - } - - return matchingInputs; - }, - - disable: function(form) { - var elements = Form.getElements(form); - for (var i = 0; i < elements.length; i++) { - var element = elements[i]; - element.blur(); - element.disabled = 'true'; - } - }, - - enable: function(form) { - var elements = Form.getElements(form); - for (var i = 0; i < elements.length; i++) { - var element = elements[i]; - element.disabled = ''; - } - }, - - findFirstElement: function(form) { - return Form.getElements(form).find(function(element) { - return element.type != 'hidden' && !element.disabled && - ['input', 'select', 'textarea'].include(element.tagName.toLowerCase()); - }); - }, - - focusFirstElement: function(form) { - Field.activate(Form.findFirstElement(form)); - }, - - reset: function(form) { - $(form).reset(); - } -} - -Form.Element = { - serialize: function(element) { - element = $(element); - var method = element.tagName.toLowerCase(); - var parameter = Form.Element.Serializers[method](element); - - if (parameter) { - var key = encodeURIComponent(parameter[0]); - if (key.length == 0) return; - - if (parameter[1].constructor != Array) - parameter[1] = [parameter[1]]; - - return parameter[1].map(function(value) { - return key + '=' + encodeURIComponent(value); - }).join('&'); - } - }, - - getValue: function(element) { - element = $(element); - var method = element.tagName.toLowerCase(); - var parameter = Form.Element.Serializers[method](element); - - if (parameter) - return parameter[1]; - } -} - -Form.Element.Serializers = { - input: function(element) { - switch (element.type.toLowerCase()) { - case 'submit': - case 'hidden': - case 'password': - case 'text': - return Form.Element.Serializers.textarea(element); - case 'checkbox': - case 'radio': - return Form.Element.Serializers.inputSelector(element); - } - return false; - }, - - inputSelector: function(element) { - if (element.checked) - return [element.name, element.value]; - }, - - textarea: function(element) { - return [element.name, element.value]; - }, - - select: function(element) { - return Form.Element.Serializers[element.type == 'select-one' ? - 'selectOne' : 'selectMany'](element); - }, - - selectOne: function(element) { - var value = '', opt, index = element.selectedIndex; - if (index >= 0) { - opt = element.options[index]; - value = opt.value; - if (!value && !('value' in opt)) - value = opt.text; - } - return [element.name, value]; - }, - - selectMany: function(element) { - var value = new Array(); - for (var i = 0; i < element.length; i++) { - var opt = element.options[i]; - if (opt.selected) { - var optValue = opt.value; - if (!optValue && !('value' in opt)) - optValue = opt.text; - value.push(optValue); - } - } - return [element.name, value]; - } -} - -/*--------------------------------------------------------------------------*/ - -var $F = Form.Element.getValue; - -/*--------------------------------------------------------------------------*/ - -Abstract.TimedObserver = function() {} -Abstract.TimedObserver.prototype = { - initialize: function(element, frequency, callback) { - this.frequency = frequency; - this.element = $(element); - this.callback = callback; - - this.lastValue = this.getValue(); - this.registerCallback(); - }, - - registerCallback: function() { - setInterval(this.onTimerEvent.bind(this), this.frequency * 1000); - }, - - onTimerEvent: function() { - var value = this.getValue(); - if (this.lastValue != value) { - this.callback(this.element, value); - this.lastValue = value; - } - } -} - -Form.Element.Observer = Class.create(); -Form.Element.Observer.prototype = Object.extend(new Abstract.TimedObserver(), { - getValue: function() { - return Form.Element.getValue(this.element); - } -}); - -Form.Observer = Class.create(); -Form.Observer.prototype = Object.extend(new Abstract.TimedObserver(), { - getValue: function() { - return Form.serialize(this.element); - } -}); - -/*--------------------------------------------------------------------------*/ - -Abstract.EventObserver = function() {} -Abstract.EventObserver.prototype = { - initialize: function(element, callback) { - this.element = $(element); - this.callback = callback; - - this.lastValue = this.getValue(); - if (this.element.tagName.toLowerCase() == 'form') - this.registerFormCallbacks(); - else - this.registerCallback(this.element); - }, - - onElementEvent: function() { - var value = this.getValue(); - if (this.lastValue != value) { - this.callback(this.element, value); - this.lastValue = value; - } - }, - - registerFormCallbacks: function() { - var elements = Form.getElements(this.element); - for (var i = 0; i < elements.length; i++) - this.registerCallback(elements[i]); - }, - - registerCallback: function(element) { - if (element.type) { - switch (element.type.toLowerCase()) { - case 'checkbox': - case 'radio': - Event.observe(element, 'click', this.onElementEvent.bind(this)); - break; - case 'password': - case 'text': - case 'textarea': - case 'select-one': - case 'select-multiple': - Event.observe(element, 'change', this.onElementEvent.bind(this)); - break; - } - } - } -} - -Form.Element.EventObserver = Class.create(); -Form.Element.EventObserver.prototype = Object.extend(new Abstract.EventObserver(), { - getValue: function() { - return Form.Element.getValue(this.element); - } -}); - -Form.EventObserver = Class.create(); -Form.EventObserver.prototype = Object.extend(new Abstract.EventObserver(), { - getValue: function() { - return Form.serialize(this.element); - } -}); -if (!window.Event) { - var Event = new Object(); -} - -Object.extend(Event, { - KEY_BACKSPACE: 8, - KEY_TAB: 9, - KEY_RETURN: 13, - KEY_ESC: 27, - KEY_LEFT: 37, - KEY_UP: 38, - KEY_RIGHT: 39, - KEY_DOWN: 40, - KEY_DELETE: 46, - - element: function(event) { - return event.target || event.srcElement; - }, - - isLeftClick: function(event) { - return (((event.which) && (event.which == 1)) || - ((event.button) && (event.button == 1))); - }, - - pointerX: function(event) { - return event.pageX || (event.clientX + - (document.documentElement.scrollLeft || document.body.scrollLeft)); - }, - - pointerY: function(event) { - return event.pageY || (event.clientY + - (document.documentElement.scrollTop || document.body.scrollTop)); - }, - - stop: function(event) { - if (event.preventDefault) { - event.preventDefault(); - event.stopPropagation(); - } else { - event.returnValue = false; - event.cancelBubble = true; - } - }, - - // find the first node with the given tagName, starting from the - // node the event was triggered on; traverses the DOM upwards - findElement: function(event, tagName) { - var element = Event.element(event); - while (element.parentNode && (!element.tagName || - (element.tagName.toUpperCase() != tagName.toUpperCase()))) - element = element.parentNode; - return element; - }, - - observers: false, - - _observeAndCache: function(element, name, observer, useCapture) { - if (!this.observers) this.observers = []; - if (element.addEventListener) { - this.observers.push([element, name, observer, useCapture]); - element.addEventListener(name, observer, useCapture); - } else if (element.attachEvent) { - this.observers.push([element, name, observer, useCapture]); - element.attachEvent('on' + name, observer); - } - }, - - unloadCache: function() { - if (!Event.observers) return; - for (var i = 0; i < Event.observers.length; i++) { - Event.stopObserving.apply(this, Event.observers[i]); - Event.observers[i][0] = null; - } - Event.observers = false; - }, - - observe: function(element, name, observer, useCapture) { - var element = $(element); - useCapture = useCapture || false; - - if (name == 'keypress' && - (navigator.appVersion.match(/Konqueror|Safari|KHTML/) - || element.attachEvent)) - name = 'keydown'; - - this._observeAndCache(element, name, observer, useCapture); - }, - - stopObserving: function(element, name, observer, useCapture) { - var element = $(element); - useCapture = useCapture || false; - - if (name == 'keypress' && - (navigator.appVersion.match(/Konqueror|Safari|KHTML/) - || element.detachEvent)) - name = 'keydown'; - - if (element.removeEventListener) { - element.removeEventListener(name, observer, useCapture); - } else if (element.detachEvent) { - element.detachEvent('on' + name, observer); - } - } -}); - -/* prevent memory leaks in IE */ -Event.observe(window, 'unload', Event.unloadCache, false); -var Position = { - // set to true if needed, warning: firefox performance problems - // NOT neeeded for page scrolling, only if draggable contained in - // scrollable elements - includeScrollOffsets: false, - - // must be called before calling withinIncludingScrolloffset, every time the - // page is scrolled - prepare: function() { - this.deltaX = window.pageXOffset - || document.documentElement.scrollLeft - || document.body.scrollLeft - || 0; - this.deltaY = window.pageYOffset - || document.documentElement.scrollTop - || document.body.scrollTop - || 0; - }, - - realOffset: function(element) { - var valueT = 0, valueL = 0; - do { - valueT += element.scrollTop || 0; - valueL += element.scrollLeft || 0; - element = element.parentNode; - } while (element); - return [valueL, valueT]; - }, - - cumulativeOffset: function(element) { - var valueT = 0, valueL = 0; - do { - valueT += element.offsetTop || 0; - valueL += element.offsetLeft || 0; - element = element.offsetParent; - } while (element); - return [valueL, valueT]; - }, - - positionedOffset: function(element) { - var valueT = 0, valueL = 0; - do { - valueT += element.offsetTop || 0; - valueL += element.offsetLeft || 0; - element = element.offsetParent; - if (element) { - p = Element.getStyle(element, 'position'); - if (p == 'relative' || p == 'absolute') break; - } - } while (element); - return [valueL, valueT]; - }, - - offsetParent: function(element) { - if (element.offsetParent) return element.offsetParent; - if (element == document.body) return element; - - while ((element = element.parentNode) && element != document.body) - if (Element.getStyle(element, 'position') != 'static') - return element; - - return document.body; - }, - - // caches x/y coordinate pair to use with overlap - within: function(element, x, y) { - if (this.includeScrollOffsets) - return this.withinIncludingScrolloffsets(element, x, y); - this.xcomp = x; - this.ycomp = y; - this.offset = this.cumulativeOffset(element); - - return (y >= this.offset[1] && - y < this.offset[1] + element.offsetHeight && - x >= this.offset[0] && - x < this.offset[0] + element.offsetWidth); - }, - - withinIncludingScrolloffsets: function(element, x, y) { - var offsetcache = this.realOffset(element); - - this.xcomp = x + offsetcache[0] - this.deltaX; - this.ycomp = y + offsetcache[1] - this.deltaY; - this.offset = this.cumulativeOffset(element); - - return (this.ycomp >= this.offset[1] && - this.ycomp < this.offset[1] + element.offsetHeight && - this.xcomp >= this.offset[0] && - this.xcomp < this.offset[0] + element.offsetWidth); - }, - - // within must be called directly before - overlap: function(mode, element) { - if (!mode) return 0; - if (mode == 'vertical') - return ((this.offset[1] + element.offsetHeight) - this.ycomp) / - element.offsetHeight; - if (mode == 'horizontal') - return ((this.offset[0] + element.offsetWidth) - this.xcomp) / - element.offsetWidth; - }, - - clone: function(source, target) { - source = $(source); - target = $(target); - target.style.position = 'absolute'; - var offsets = this.cumulativeOffset(source); - target.style.top = offsets[1] + 'px'; - target.style.left = offsets[0] + 'px'; - target.style.width = source.offsetWidth + 'px'; - target.style.height = source.offsetHeight + 'px'; - }, - - page: function(forElement) { - var valueT = 0, valueL = 0; - - var element = forElement; - do { - valueT += element.offsetTop || 0; - valueL += element.offsetLeft || 0; - - // Safari fix - if (element.offsetParent==document.body) - if (Element.getStyle(element,'position')=='absolute') break; - - } while (element = element.offsetParent); - - element = forElement; - do { - valueT -= element.scrollTop || 0; - valueL -= element.scrollLeft || 0; - } while (element = element.parentNode); - - return [valueL, valueT]; - }, - - clone: function(source, target) { - var options = Object.extend({ - setLeft: true, - setTop: true, - setWidth: true, - setHeight: true, - offsetTop: 0, - offsetLeft: 0 - }, arguments[2] || {}) - - // find page position of source - source = $(source); - var p = Position.page(source); - - // find coordinate system to use - target = $(target); - var delta = [0, 0]; - var parent = null; - // delta [0,0] will do fine with position: fixed elements, - // position:absolute needs offsetParent deltas - if (Element.getStyle(target,'position') == 'absolute') { - parent = Position.offsetParent(target); - delta = Position.page(parent); - } - - // correct by body offsets (fixes Safari) - if (parent == document.body) { - delta[0] -= document.body.offsetLeft; - delta[1] -= document.body.offsetTop; - } - - // set position - if(options.setLeft) target.style.left = (p[0] - delta[0] + options.offsetLeft) + 'px'; - if(options.setTop) target.style.top = (p[1] - delta[1] + options.offsetTop) + 'px'; - if(options.setWidth) target.style.width = source.offsetWidth + 'px'; - if(options.setHeight) target.style.height = source.offsetHeight + 'px'; - }, - - absolutize: function(element) { - element = $(element); - if (element.style.position == 'absolute') return; - Position.prepare(); - - var offsets = Position.positionedOffset(element); - var top = offsets[1]; - var left = offsets[0]; - var width = element.clientWidth; - var height = element.clientHeight; - - element._originalLeft = left - parseFloat(element.style.left || 0); - element._originalTop = top - parseFloat(element.style.top || 0); - element._originalWidth = element.style.width; - element._originalHeight = element.style.height; - - element.style.position = 'absolute'; - element.style.top = top + 'px';; - element.style.left = left + 'px';; - element.style.width = width + 'px';; - element.style.height = height + 'px';; - }, - - relativize: function(element) { - element = $(element); - if (element.style.position == 'relative') return; - Position.prepare(); - - element.style.position = 'relative'; - var top = parseFloat(element.style.top || 0) - (element._originalTop || 0); - var left = parseFloat(element.style.left || 0) - (element._originalLeft || 0); - - element.style.top = top + 'px'; - element.style.left = left + 'px'; - element.style.height = element._originalHeight; - element.style.width = element._originalWidth; - } -} - -// Safari returns margins on body which is incorrect if the child is absolutely -// positioned. For performance reasons, redefine Position.cumulativeOffset for -// KHTML/WebKit only. -if (/Konqueror|Safari|KHTML/.test(navigator.userAgent)) { - Position.cumulativeOffset = function(element) { - var valueT = 0, valueL = 0; - do { - valueT += element.offsetTop || 0; - valueL += element.offsetLeft || 0; - if (element.offsetParent == document.body) - if (Element.getStyle(element, 'position') == 'absolute') break; - - element = element.offsetParent; - } while (element); - - return [valueL, valueT]; - } -} \ No newline at end of file diff --git a/deploy/root/stylesheets/default.css b/deploy/root/stylesheets/default.css deleted file mode 100644 index 716fc7ab59..0000000000 --- a/deploy/root/stylesheets/default.css +++ /dev/null @@ -1,54 +0,0 @@ -body { - background-image: url(../images/body-background.png); - background-repeat: repeat-x; - background-color: #5c8098; -} -html, body, h1, h2 { - margin: 0px; - padding: 0px; -} -body, textarea, input { - font-size: 12px; - font-family: Verdana, Helvetica, Arial, sans-serif; - color: #2d2b3d; -} -#container { - text-align:center; -} -#container-inner { - margin-left: auto; - margin-right: auto; - text-align: justify; - width: 820px; -} -#header { - width: 820px; - height: 100px; - background-image: url(../images/header-background.png); - background-repeat: no-repeat; -} -#header h1 { - display: none; -} -#main { - height: 610px; - background-image: url(../images/main-background.png); - background-repeat: no-repeat; - text-align: left; - width: 740px; - padding: 30px 40px 20px 40px; -} -#display { - border: 1px solid #5c8098; - width: 740px; - height: 400px; - margin-bottom: 10px; - overflow-y: scroll; -} -#login-name { - width: 200px; -} -#message { - width: 740px; - height: 50px; -} diff --git a/kernel/src/main/scala/jersey/ActorComponentProviderFactory.scala b/kernel/src/main/scala/jersey/ActorComponentProviderFactory.scala index f763cb37ba..82d0f1e76b 100644 --- a/kernel/src/main/scala/jersey/ActorComponentProviderFactory.scala +++ b/kernel/src/main/scala/jersey/ActorComponentProviderFactory.scala @@ -5,6 +5,7 @@ package se.scalablesolutions.akka.kernel.jersey import kernel.Kernel +import util.Logging import javax.ws.rs.core.Context import com.sun.jersey.core.spi.component.ioc.{IoCComponentProvider,IoCComponentProviderFactory} @@ -14,10 +15,11 @@ import config.Configurator class ActorComponentProviderFactory(val configurators: List[Configurator]) -extends IoCComponentProviderFactory { +extends IoCComponentProviderFactory with Logging { override def getComponentProvider(clazz: Class[_]): IoCComponentProvider = getComponentProvider(null, clazz) override def getComponentProvider(context: ComponentContext, clazz: Class[_]): IoCComponentProvider = { + //log.info("ProviderFactory: resolve => " + clazz.getName) configurators.find(_.isDefined(clazz)).map(_ => new ActorComponentProvider(clazz, configurators)).getOrElse(null) } } \ No newline at end of file diff --git a/kernel/src/main/scala/jersey/AkkaServlet.scala b/kernel/src/main/scala/jersey/AkkaServlet.scala index 838ba93309..79b565b669 100644 --- a/kernel/src/main/scala/jersey/AkkaServlet.scala +++ b/kernel/src/main/scala/jersey/AkkaServlet.scala @@ -36,7 +36,7 @@ class AkkaServlet extends ServletContainer with AtmosphereServletProcessor with Kernel.boot // will boot if not already booted by 'main' val configurators = ConfiguratorRepository.getConfiguratorsFor(getServletContext) - + rc.getClasses.addAll(configurators.flatMap(_.getComponentInterfaces)) rc.getProperties.put("com.sun.jersey.spi.container.ResourceFilters","org.atmosphere.core.AtmosphereFilter") //rc.getFeatures.put("com.sun.jersey.config.feature.Redirect", true) @@ -50,7 +50,7 @@ class AkkaServlet extends ServletContainer with AtmosphereServletProcessor with { //log.info("onMessage: " + event.getMessage.toString) - if(event.getMessage != null) + if(event.getMessage ne null) { var isUsingStream = false try { @@ -92,9 +92,9 @@ class AkkaCometServlet extends org.atmosphere.cpr.AtmosphereServlet { override def init(sconf : ServletConfig) = { val servlet = new AkkaServlet - this.config = new AtmosphereConfig + this.config = new AtmosphereConfig { ah = servlet } - atmosphereHandlers.put("", new AtmosphereHandlerWrapper(servlet,new JerseyBroadcaster)) + atmosphereHandlers.put("", new AtmosphereHandlerWrapper(servlet,new DefaultBroadcaster)) setCometSupport(new GrizzlyCometSupport(config)) getCometSupport.init(sconf) diff --git a/lib/akka-kernel-0.5.jar b/lib/akka-kernel-0.5.jar index 5a55064ea8..bc58ae5a3d 100644 Binary files a/lib/akka-kernel-0.5.jar and b/lib/akka-kernel-0.5.jar differ diff --git a/lib/akka-util-java-0.5.jar b/lib/akka-util-java-0.5.jar index 4a56e5b4ed..d979578cb1 100644 Binary files a/lib/akka-util-java-0.5.jar and b/lib/akka-util-java-0.5.jar differ diff --git a/lib/grizzly-comet-1.8.6.3.jar b/lib/grizzly-comet-1.8.6.3.jar deleted file mode 100644 index c6757c2d85..0000000000 Binary files a/lib/grizzly-comet-1.8.6.3.jar and /dev/null differ diff --git a/lib/grizzly-framework-1.8.6.3.jar b/lib/grizzly-framework-1.8.6.3.jar deleted file mode 100644 index ded488b1b2..0000000000 Binary files a/lib/grizzly-framework-1.8.6.3.jar and /dev/null differ diff --git a/lib/grizzly-http-1.8.6.3.jar b/lib/grizzly-http-1.8.6.3.jar deleted file mode 100644 index 7e6fe75107..0000000000 Binary files a/lib/grizzly-http-1.8.6.3.jar and /dev/null differ diff --git a/lib/grizzly-http-servlet-1.8.6.3.jar b/lib/grizzly-http-servlet-1.8.6.3.jar deleted file mode 100644 index 9011703cc9..0000000000 Binary files a/lib/grizzly-http-servlet-1.8.6.3.jar and /dev/null differ diff --git a/lib/grizzly-http-utils-1.9.2.jar b/lib/grizzly-http-utils-1.9.2.jar deleted file mode 100644 index d57cc4d0c7..0000000000 Binary files a/lib/grizzly-http-utils-1.9.2.jar and /dev/null differ diff --git a/libs/JSAP-2.1.jar b/libs/JSAP-2.1.jar deleted file mode 100644 index 15d1f37a78..0000000000 Binary files a/libs/JSAP-2.1.jar and /dev/null differ diff --git a/libs/akka-kernel-0.5.jar b/libs/akka-kernel-0.5.jar deleted file mode 100644 index c74a57f1e2..0000000000 Binary files a/libs/akka-kernel-0.5.jar and /dev/null differ diff --git a/libs/akka-util-java-0.5.jar b/libs/akka-util-java-0.5.jar deleted file mode 100644 index aa8ba3bb03..0000000000 Binary files a/libs/akka-util-java-0.5.jar and /dev/null differ diff --git a/libs/antlr-3.1.3.jar b/libs/antlr-3.1.3.jar deleted file mode 100644 index d3bd9cf942..0000000000 Binary files a/libs/antlr-3.1.3.jar and /dev/null differ diff --git a/libs/aopalliance-1.0.jar b/libs/aopalliance-1.0.jar deleted file mode 100644 index 578b1a0c35..0000000000 Binary files a/libs/aopalliance-1.0.jar and /dev/null differ diff --git a/libs/asm-3.1.jar b/libs/asm-3.1.jar deleted file mode 100644 index 8217cae0a1..0000000000 Binary files a/libs/asm-3.1.jar and /dev/null differ diff --git a/libs/aspectwerkz-nodeps-jdk5-2.1.jar b/libs/aspectwerkz-nodeps-jdk5-2.1.jar deleted file mode 100644 index 3a65f7b3de..0000000000 Binary files a/libs/aspectwerkz-nodeps-jdk5-2.1.jar and /dev/null differ diff --git a/libs/atmosphere-compat-0.3-SNAPSHOT.jar b/libs/atmosphere-compat-0.3-SNAPSHOT.jar deleted file mode 100644 index 7125488274..0000000000 Binary files a/libs/atmosphere-compat-0.3-SNAPSHOT.jar and /dev/null differ diff --git a/libs/atmosphere-core-0.3-SNAPSHOT.jar b/libs/atmosphere-core-0.3-SNAPSHOT.jar deleted file mode 100644 index 6876b9e845..0000000000 Binary files a/libs/atmosphere-core-0.3-SNAPSHOT.jar and /dev/null differ diff --git a/libs/atmosphere-grizzly-adapter-0.3-SNAPSHOT.jar b/libs/atmosphere-grizzly-adapter-0.3-SNAPSHOT.jar deleted file mode 100644 index be82de123e..0000000000 Binary files a/libs/atmosphere-grizzly-adapter-0.3-SNAPSHOT.jar and /dev/null differ diff --git a/libs/atmosphere-portable-runtime-0.3-SNAPSHOT.jar b/libs/atmosphere-portable-runtime-0.3-SNAPSHOT.jar deleted file mode 100644 index c12212705a..0000000000 Binary files a/libs/atmosphere-portable-runtime-0.3-SNAPSHOT.jar and /dev/null differ diff --git a/libs/camel-core-2.0-SNAPSHOT.jar b/libs/camel-core-2.0-SNAPSHOT.jar deleted file mode 100644 index 61b8015a70..0000000000 Binary files a/libs/camel-core-2.0-SNAPSHOT.jar and /dev/null differ diff --git a/libs/cassandra-0.4.0-dev.jar b/libs/cassandra-0.4.0-dev.jar deleted file mode 100644 index 8274103dc3..0000000000 Binary files a/libs/cassandra-0.4.0-dev.jar and /dev/null differ diff --git a/libs/cglib-2.2.jar b/libs/cglib-2.2.jar deleted file mode 100644 index 084ef6e54b..0000000000 Binary files a/libs/cglib-2.2.jar and /dev/null differ diff --git a/libs/commons-cli-1.1.jar b/libs/commons-cli-1.1.jar deleted file mode 100644 index e633afbe68..0000000000 Binary files a/libs/commons-cli-1.1.jar and /dev/null differ diff --git a/libs/commons-collections-3.2.1.jar b/libs/commons-collections-3.2.1.jar deleted file mode 100644 index c35fa1fee1..0000000000 Binary files a/libs/commons-collections-3.2.1.jar and /dev/null differ diff --git a/libs/commons-io-1.3.2.jar b/libs/commons-io-1.3.2.jar deleted file mode 100644 index 865c9e41ce..0000000000 Binary files a/libs/commons-io-1.3.2.jar and /dev/null differ diff --git a/libs/commons-javaflow-1.0-SNAPSHOT.jar b/libs/commons-javaflow-1.0-SNAPSHOT.jar deleted file mode 100644 index 199b853307..0000000000 Binary files a/libs/commons-javaflow-1.0-SNAPSHOT.jar and /dev/null differ diff --git a/libs/commons-lang-2.4.jar b/libs/commons-lang-2.4.jar deleted file mode 100644 index 532939ecab..0000000000 Binary files a/libs/commons-lang-2.4.jar and /dev/null differ diff --git a/libs/commons-logging-1.0.4.jar b/libs/commons-logging-1.0.4.jar deleted file mode 100644 index b73a80fab6..0000000000 Binary files a/libs/commons-logging-1.0.4.jar and /dev/null differ diff --git a/libs/commons-math-1.1.jar b/libs/commons-math-1.1.jar deleted file mode 100644 index 6888813fc1..0000000000 Binary files a/libs/commons-math-1.1.jar and /dev/null differ diff --git a/libs/configgy-1.3.jar b/libs/configgy-1.3.jar deleted file mode 100644 index ebbaea502e..0000000000 Binary files a/libs/configgy-1.3.jar and /dev/null differ diff --git a/libs/google-collect-snapshot-20090211.jar b/libs/google-collect-snapshot-20090211.jar deleted file mode 100644 index f5281988e9..0000000000 Binary files a/libs/google-collect-snapshot-20090211.jar and /dev/null differ diff --git a/libs/grizzly-comet-webserver-1.9.15b.jar b/libs/grizzly-comet-webserver-1.9.15b.jar deleted file mode 100644 index 0c835ae44b..0000000000 Binary files a/libs/grizzly-comet-webserver-1.9.15b.jar and /dev/null differ diff --git a/libs/guice-core-2.0-SNAPSHOT.jar b/libs/guice-core-2.0-SNAPSHOT.jar deleted file mode 100644 index 2acfd950fa..0000000000 Binary files a/libs/guice-core-2.0-SNAPSHOT.jar and /dev/null differ diff --git a/libs/guice-jsr250-2.0-SNAPSHOT.jar b/libs/guice-jsr250-2.0-SNAPSHOT.jar deleted file mode 100644 index f2be8ad48d..0000000000 Binary files a/libs/guice-jsr250-2.0-SNAPSHOT.jar and /dev/null differ diff --git a/libs/high-scale-lib.jar b/libs/high-scale-lib.jar deleted file mode 100644 index 421a436eed..0000000000 Binary files a/libs/high-scale-lib.jar and /dev/null differ diff --git a/libs/jackson-core-asl-1.1.0.jar b/libs/jackson-core-asl-1.1.0.jar deleted file mode 100644 index 6b561dd2be..0000000000 Binary files a/libs/jackson-core-asl-1.1.0.jar and /dev/null differ diff --git a/libs/jackson-mapper-asl-1.1.0.jar b/libs/jackson-mapper-asl-1.1.0.jar deleted file mode 100644 index 1b37ad3772..0000000000 Binary files a/libs/jackson-mapper-asl-1.1.0.jar and /dev/null differ diff --git a/libs/jersey-client-1.1.0-ea.jar b/libs/jersey-client-1.1.0-ea.jar deleted file mode 100644 index 1950307c15..0000000000 Binary files a/libs/jersey-client-1.1.0-ea.jar and /dev/null differ diff --git a/libs/jersey-core-1.0.3.jar b/libs/jersey-core-1.0.3.jar deleted file mode 100644 index bd6bedeb2e..0000000000 Binary files a/libs/jersey-core-1.0.3.jar and /dev/null differ diff --git a/libs/jersey-json-1.0.3.jar b/libs/jersey-json-1.0.3.jar deleted file mode 100644 index c9af8ec7b4..0000000000 Binary files a/libs/jersey-json-1.0.3.jar and /dev/null differ diff --git a/libs/jersey-scala-1.1.2-ea-SNAPSHOT.jar b/libs/jersey-scala-1.1.2-ea-SNAPSHOT.jar deleted file mode 100644 index a24bb19a7d..0000000000 Binary files a/libs/jersey-scala-1.1.2-ea-SNAPSHOT.jar and /dev/null differ diff --git a/libs/jersey-server-1.0.3.jar b/libs/jersey-server-1.0.3.jar deleted file mode 100644 index d5d41a18d6..0000000000 Binary files a/libs/jersey-server-1.0.3.jar and /dev/null differ diff --git a/libs/jsr250-api-1.0.jar b/libs/jsr250-api-1.0.jar deleted file mode 100644 index c1f29bf844..0000000000 Binary files a/libs/jsr250-api-1.0.jar and /dev/null differ diff --git a/libs/jsr311-api-1.0.jar b/libs/jsr311-api-1.0.jar deleted file mode 100644 index 2bede66c1f..0000000000 Binary files a/libs/jsr311-api-1.0.jar and /dev/null differ diff --git a/libs/junit-4.5.jar b/libs/junit-4.5.jar deleted file mode 100644 index 733921623d..0000000000 Binary files a/libs/junit-4.5.jar and /dev/null differ diff --git a/libs/junit4runner-1.0.jar b/libs/junit4runner-1.0.jar deleted file mode 100644 index 6f91bd8044..0000000000 Binary files a/libs/junit4runner-1.0.jar and /dev/null differ diff --git a/libs/libfb303.jar b/libs/libfb303.jar deleted file mode 100644 index 129328deff..0000000000 Binary files a/libs/libfb303.jar and /dev/null differ diff --git a/libs/libthrift.jar b/libs/libthrift.jar deleted file mode 100644 index 9782f261ae..0000000000 Binary files a/libs/libthrift.jar and /dev/null differ diff --git a/libs/log4j-1.2.15.jar b/libs/log4j-1.2.15.jar deleted file mode 100644 index c930a6ab4d..0000000000 Binary files a/libs/log4j-1.2.15.jar and /dev/null differ diff --git a/libs/lucene-core-2.2.0.jar b/libs/lucene-core-2.2.0.jar deleted file mode 100644 index 2469481c38..0000000000 Binary files a/libs/lucene-core-2.2.0.jar and /dev/null differ diff --git a/libs/netty-3.1.0.CR1.jar b/libs/netty-3.1.0.CR1.jar deleted file mode 100644 index f1180b0477..0000000000 Binary files a/libs/netty-3.1.0.CR1.jar and /dev/null differ diff --git a/libs/protobuf-java-2.0.3.jar b/libs/protobuf-java-2.0.3.jar deleted file mode 100644 index 1165f707d9..0000000000 Binary files a/libs/protobuf-java-2.0.3.jar and /dev/null differ diff --git a/libs/scala-library-2.7.5.jar b/libs/scala-library-2.7.5.jar deleted file mode 100644 index 07d2e1381a..0000000000 Binary files a/libs/scala-library-2.7.5.jar and /dev/null differ diff --git a/libs/scalatest-0.9.5.jar b/libs/scalatest-0.9.5.jar deleted file mode 100644 index adb241a55a..0000000000 Binary files a/libs/scalatest-0.9.5.jar and /dev/null differ diff --git a/libs/servlet-api-2.5.jar b/libs/servlet-api-2.5.jar deleted file mode 100644 index fb52493468..0000000000 Binary files a/libs/servlet-api-2.5.jar and /dev/null differ diff --git a/libs/slf4j-api-1.4.3.jar b/libs/slf4j-api-1.4.3.jar deleted file mode 100644 index ec7050cec3..0000000000 Binary files a/libs/slf4j-api-1.4.3.jar and /dev/null differ diff --git a/libs/slf4j-log4j12-1.4.3.jar b/libs/slf4j-log4j12-1.4.3.jar deleted file mode 100644 index c8466de59b..0000000000 Binary files a/libs/slf4j-log4j12-1.4.3.jar and /dev/null differ diff --git a/libs/stringtemplate-3.0.jar b/libs/stringtemplate-3.0.jar deleted file mode 100644 index df5e6e517f..0000000000 Binary files a/libs/stringtemplate-3.0.jar and /dev/null differ diff --git a/libs/zookeeper-3.1.0.jar b/libs/zookeeper-3.1.0.jar deleted file mode 100644 index b7e639e63a..0000000000 Binary files a/libs/zookeeper-3.1.0.jar and /dev/null differ diff --git a/samples-scala/src/main/scala/SimpleService.scala b/samples-scala/src/main/scala/SimpleService.scala index 439ac14db6..c40261dff0 100644 --- a/samples-scala/src/main/scala/SimpleService.scala +++ b/samples-scala/src/main/scala/SimpleService.scala @@ -90,9 +90,6 @@ class Chat extends Actor with Logging{ override def receive: PartialFunction[Any, Unit] = { case Chat(who,what,msg) => { - - log.info("Chat(" + who + ", " + what + ", " + msg + ")") - what match { case "login" => reply("System Message__"+who+" has joined.") case "post" => reply("" + who + "__" + msg) @@ -106,29 +103,6 @@ class Chat extends Actor with Logging{ @Consumes(Array("application/x-www-form-urlencoded")) @POST @Produces(Array("text/html")) - @FilterBroadcast(Array(classOf[XSSHtmlFilter],classOf[JsonpFilter])) + @FilterBroadcast(Array(classOf[XSSHtmlFilter])) def publishMessage(form: MultivaluedMap[String, String]) = (this !! Chat(form.getFirst("name"),form.getFirst("action"),form.getFirst("message"))).getOrElse("System__error") - } - - - class JsonpFilter extends BroadcastFilter[String] with Logging - { - - val BEGIN_SCRIPT_TAG = "\n" - - def filter(m : String) = { - var name = m - var message = "" - - if (m.indexOf("__") > 0) { - name = m.substring(0, m.indexOf("__")) - message = m.substring(m.indexOf("__") + 2) - } - - (BEGIN_SCRIPT_TAG + "window.parent.app.update({ name: \"" - + name + "\", message: \"" - + message + "\" });\n" - + END_SCRIPT_TAG) - } - } \ No newline at end of file + } \ No newline at end of file