You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by lu...@apache.org on 2015/05/22 12:58:56 UTC

[29/50] struts git commit: Moves deprecated plugins to struts-archive repo

http://git-wip-us.apache.org/repos/asf/struts/blob/17d73d21/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/RhinoIO.js
----------------------------------------------------------------------
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/RhinoIO.js b/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/RhinoIO.js
deleted file mode 100644
index 9529e96..0000000
--- a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/RhinoIO.js
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
-	Copyright (c) 2004-2006, The Dojo Foundation
-	All Rights Reserved.
-
-	Licensed under the Academic Free License version 2.1 or above OR the
-	modified BSD license. For more information on Dojo licensing, see:
-
-		http://dojotoolkit.org/community/licensing.shtml
-*/
-
-
-
-dojo.provide("dojo.io.RhinoIO");
-dojo.require("dojo.io.common");
-dojo.require("dojo.lang.func");
-dojo.require("dojo.lang.array");
-dojo.require("dojo.string.extras");
-dojo.io.RhinoHTTPTransport = new function () {
-	this.canHandle = function (req) {
-		if (dojo.lang.find(["text/plain", "text/html", "text/xml", "text/javascript", "text/json", "application/json"], (req.mimetype.toLowerCase() || "")) < 0) {
-			return false;
-		}
-		if (req.url.substr(0, 7) != "http://") {
-			return false;
-		}
-		return true;
-	};
-	function doLoad(req, conn) {
-		var ret;
-		if (req.method.toLowerCase() == "head") {
-		} else {
-			var stream = conn.getContent();
-			var reader = new java.io.BufferedReader(new java.io.InputStreamReader(stream));
-			var text = "";
-			var line = null;
-			while ((line = reader.readLine()) != null) {
-				text += line;
-			}
-			if (req.mimetype == "text/javascript") {
-				try {
-					ret = dj_eval(text);
-				}
-				catch (e) {
-					dojo.debug(e);
-					dojo.debug(text);
-					ret = null;
-				}
-			} else {
-				if (req.mimetype == "text/json" || req.mimetype == "application/json") {
-					try {
-						ret = dj_eval("(" + text + ")");
-					}
-					catch (e) {
-						dojo.debug(e);
-						dojo.debug(text);
-						ret = false;
-					}
-				} else {
-					ret = text;
-				}
-			}
-		}
-		req.load("load", ret, req);
-	}
-	function connect(req) {
-		var content = req.content || {};
-		var query;
-		if (req.sendTransport) {
-			content["dojo.transport"] = "rhinohttp";
-		}
-		if (req.postContent) {
-			query = req.postContent;
-		} else {
-			query = dojo.io.argsFromMap(content, req.encoding);
-		}
-		var url_text = req.url;
-		if (req.method.toLowerCase() == "get" && query != "") {
-			url_text = url_text + "?" + query;
-		}
-		var url = new java.net.URL(url_text);
-		var conn = url.openConnection();
-		conn.setRequestMethod(req.method.toUpperCase());
-		if (req.headers) {
-			for (var header in req.headers) {
-				if (header.toLowerCase() == "content-type" && !req.contentType) {
-					req.contentType = req.headers[header];
-				} else {
-					conn.setRequestProperty(header, req.headers[header]);
-				}
-			}
-		}
-		if (req.contentType) {
-			conn.setRequestProperty("Content-Type", req.contentType);
-		}
-		if (req.method.toLowerCase() == "post") {
-			conn.setDoOutput(true);
-			var output_stream = conn.getOutputStream();
-			var byte_array = (new java.lang.String(query)).getBytes();
-			output_stream.write(byte_array, 0, byte_array.length);
-		}
-		conn.connect();
-		doLoad(req, conn);
-	}
-	this.bind = function (req) {
-		var async = req["sync"] ? false : true;
-		if (async) {
-			setTimeout(dojo.lang.hitch(this, function () {
-				connect(req);
-			}), 1);
-		} else {
-			connect(req);
-		}
-	};
-	dojo.io.transports.addTransport("RhinoHTTPTransport");
-};
-

http://git-wip-us.apache.org/repos/asf/struts/blob/17d73d21/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/ScriptSrcIO.js
----------------------------------------------------------------------
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/ScriptSrcIO.js b/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/ScriptSrcIO.js
deleted file mode 100644
index 55091c6..0000000
--- a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/ScriptSrcIO.js
+++ /dev/null
@@ -1,317 +0,0 @@
-/*
-	Copyright (c) 2004-2006, The Dojo Foundation
-	All Rights Reserved.
-
-	Licensed under the Academic Free License version 2.1 or above OR the
-	modified BSD license. For more information on Dojo licensing, see:
-
-		http://dojotoolkit.org/community/licensing.shtml
-*/
-
-
-
-dojo.provide("dojo.io.ScriptSrcIO");
-dojo.require("dojo.io.BrowserIO");
-dojo.require("dojo.undo.browser");
-dojo.io.ScriptSrcTransport = new function () {
-	this.preventCache = false;
-	this.maxUrlLength = 1000;
-	this.inFlightTimer = null;
-	this.DsrStatusCodes = {Continue:100, Ok:200, Error:500};
-	this.startWatchingInFlight = function () {
-		if (!this.inFlightTimer) {
-			this.inFlightTimer = setInterval("dojo.io.ScriptSrcTransport.watchInFlight();", 100);
-		}
-	};
-	this.watchInFlight = function () {
-		var totalCount = 0;
-		var doneCount = 0;
-		for (var param in this._state) {
-			totalCount++;
-			var currentState = this._state[param];
-			if (currentState.isDone) {
-				doneCount++;
-				delete this._state[param];
-			} else {
-				if (!currentState.isFinishing) {
-					var listener = currentState.kwArgs;
-					try {
-						if (currentState.checkString && eval("typeof(" + currentState.checkString + ") != 'undefined'")) {
-							currentState.isFinishing = true;
-							this._finish(currentState, "load");
-							doneCount++;
-							delete this._state[param];
-						} else {
-							if (listener.timeoutSeconds && listener.timeout) {
-								if (currentState.startTime + (listener.timeoutSeconds * 1000) < (new Date()).getTime()) {
-									currentState.isFinishing = true;
-									this._finish(currentState, "timeout");
-									doneCount++;
-									delete this._state[param];
-								}
-							} else {
-								if (!listener.timeoutSeconds) {
-									doneCount++;
-								}
-							}
-						}
-					}
-					catch (e) {
-						currentState.isFinishing = true;
-						this._finish(currentState, "error", {status:this.DsrStatusCodes.Error, response:e});
-					}
-				}
-			}
-		}
-		if (doneCount >= totalCount) {
-			clearInterval(this.inFlightTimer);
-			this.inFlightTimer = null;
-		}
-	};
-	this.canHandle = function (kwArgs) {
-		return dojo.lang.inArray(["text/javascript", "text/json", "application/json"], (kwArgs["mimetype"].toLowerCase())) && (kwArgs["method"].toLowerCase() == "get") && !(kwArgs["formNode"] && dojo.io.formHasFile(kwArgs["formNode"])) && (!kwArgs["sync"] || kwArgs["sync"] == false) && !kwArgs["file"] && !kwArgs["multipart"];
-	};
-	this.removeScripts = function () {
-		var scripts = document.getElementsByTagName("script");
-		for (var i = 0; scripts && i < scripts.length; i++) {
-			var scriptTag = scripts[i];
-			if (scriptTag.className == "ScriptSrcTransport") {
-				var parent = scriptTag.parentNode;
-				parent.removeChild(scriptTag);
-				i--;
-			}
-		}
-	};
-	this.bind = function (kwArgs) {
-		var url = kwArgs.url;
-		var query = "";
-		if (kwArgs["formNode"]) {
-			var ta = kwArgs.formNode.getAttribute("action");
-			if ((ta) && (!kwArgs["url"])) {
-				url = ta;
-			}
-			var tp = kwArgs.formNode.getAttribute("method");
-			if ((tp) && (!kwArgs["method"])) {
-				kwArgs.method = tp;
-			}
-			query += dojo.io.encodeForm(kwArgs.formNode, kwArgs.encoding, kwArgs["formFilter"]);
-		}
-		if (url.indexOf("#") > -1) {
-			dojo.debug("Warning: dojo.io.bind: stripping hash values from url:", url);
-			url = url.split("#")[0];
-		}
-		var urlParts = url.split("?");
-		if (urlParts && urlParts.length == 2) {
-			url = urlParts[0];
-			query += (query ? "&" : "") + urlParts[1];
-		}
-		if (kwArgs["backButton"] || kwArgs["back"] || kwArgs["changeUrl"]) {
-			dojo.undo.browser.addToHistory(kwArgs);
-		}
-		var id = kwArgs["apiId"] ? kwArgs["apiId"] : "id" + this._counter++;
-		var content = kwArgs["content"];
-		var jsonpName = kwArgs.jsonParamName;
-		if (kwArgs.sendTransport || jsonpName) {
-			if (!content) {
-				content = {};
-			}
-			if (kwArgs.sendTransport) {
-				content["dojo.transport"] = "scriptsrc";
-			}
-			if (jsonpName) {
-				content[jsonpName] = "dojo.io.ScriptSrcTransport._state." + id + ".jsonpCall";
-			}
-		}
-		if (kwArgs.postContent) {
-			query = kwArgs.postContent;
-		} else {
-			if (content) {
-				query += ((query) ? "&" : "") + dojo.io.argsFromMap(content, kwArgs.encoding, jsonpName);
-			}
-		}
-		if (kwArgs["apiId"]) {
-			kwArgs["useRequestId"] = true;
-		}
-		var state = {"id":id, "idParam":"_dsrid=" + id, "url":url, "query":query, "kwArgs":kwArgs, "startTime":(new Date()).getTime(), "isFinishing":false};
-		if (!url) {
-			this._finish(state, "error", {status:this.DsrStatusCodes.Error, statusText:"url.none"});
-			return;
-		}
-		if (content && content[jsonpName]) {
-			state.jsonp = content[jsonpName];
-			state.jsonpCall = function (data) {
-				if (data["Error"] || data["error"]) {
-					if (dojo["json"] && dojo["json"]["serialize"]) {
-						dojo.debug(dojo.json.serialize(data));
-					}
-					dojo.io.ScriptSrcTransport._finish(this, "error", data);
-				} else {
-					dojo.io.ScriptSrcTransport._finish(this, "load", data);
-				}
-			};
-		}
-		if (kwArgs["useRequestId"] || kwArgs["checkString"] || state["jsonp"]) {
-			this._state[id] = state;
-		}
-		if (kwArgs["checkString"]) {
-			state.checkString = kwArgs["checkString"];
-		}
-		state.constantParams = (kwArgs["constantParams"] == null ? "" : kwArgs["constantParams"]);
-		if (kwArgs["preventCache"] || (this.preventCache == true && kwArgs["preventCache"] != false)) {
-			state.nocacheParam = "dojo.preventCache=" + new Date().valueOf();
-		} else {
-			state.nocacheParam = "";
-		}
-		var urlLength = state.url.length + state.query.length + state.constantParams.length + state.nocacheParam.length + this._extraPaddingLength;
-		if (kwArgs["useRequestId"]) {
-			urlLength += state.idParam.length;
-		}
-		if (!kwArgs["checkString"] && kwArgs["useRequestId"] && !state["jsonp"] && !kwArgs["forceSingleRequest"] && urlLength > this.maxUrlLength) {
-			if (url > this.maxUrlLength) {
-				this._finish(state, "error", {status:this.DsrStatusCodes.Error, statusText:"url.tooBig"});
-				return;
-			} else {
-				this._multiAttach(state, 1);
-			}
-		} else {
-			var queryParams = [state.constantParams, state.nocacheParam, state.query];
-			if (kwArgs["useRequestId"] && !state["jsonp"]) {
-				queryParams.unshift(state.idParam);
-			}
-			var finalUrl = this._buildUrl(state.url, queryParams);
-			state.finalUrl = finalUrl;
-			this._attach(state.id, finalUrl);
-		}
-		this.startWatchingInFlight();
-	};
-	this._counter = 1;
-	this._state = {};
-	this._extraPaddingLength = 16;
-	this._buildUrl = function (url, nameValueArray) {
-		var finalUrl = url;
-		var joiner = "?";
-		for (var i = 0; i < nameValueArray.length; i++) {
-			if (nameValueArray[i]) {
-				finalUrl += joiner + nameValueArray[i];
-				joiner = "&";
-			}
-		}
-		return finalUrl;
-	};
-	this._attach = function (id, url) {
-		var element = document.createElement("script");
-		element.type = "text/javascript";
-		element.src = url;
-		element.id = id;
-		element.className = "ScriptSrcTransport";
-		document.getElementsByTagName("head")[0].appendChild(element);
-	};
-	this._multiAttach = function (state, part) {
-		if (state.query == null) {
-			this._finish(state, "error", {status:this.DsrStatusCodes.Error, statusText:"query.null"});
-			return;
-		}
-		if (!state.constantParams) {
-			state.constantParams = "";
-		}
-		var queryMax = this.maxUrlLength - state.idParam.length - state.constantParams.length - state.url.length - state.nocacheParam.length - this._extraPaddingLength;
-		var isDone = state.query.length < queryMax;
-		var currentQuery;
-		if (isDone) {
-			currentQuery = state.query;
-			state.query = null;
-		} else {
-			var ampEnd = state.query.lastIndexOf("&", queryMax - 1);
-			var eqEnd = state.query.lastIndexOf("=", queryMax - 1);
-			if (ampEnd > eqEnd || eqEnd == queryMax - 1) {
-				currentQuery = state.query.substring(0, ampEnd);
-				state.query = state.query.substring(ampEnd + 1, state.query.length);
-			} else {
-				currentQuery = state.query.substring(0, queryMax);
-				var queryName = currentQuery.substring((ampEnd == -1 ? 0 : ampEnd + 1), eqEnd);
-				state.query = queryName + "=" + state.query.substring(queryMax, state.query.length);
-			}
-		}
-		var queryParams = [currentQuery, state.idParam, state.constantParams, state.nocacheParam];
-		if (!isDone) {
-			queryParams.push("_part=" + part);
-		}
-		var url = this._buildUrl(state.url, queryParams);
-		this._attach(state.id + "_" + part, url);
-	};
-	this._finish = function (state, callback, event) {
-		if (callback != "partOk" && !state.kwArgs[callback] && !state.kwArgs["handle"]) {
-			if (callback == "error") {
-				state.isDone = true;
-				throw event;
-			}
-		} else {
-			switch (callback) {
-			  case "load":
-				var response = event ? event.response : null;
-				if (!response) {
-					response = event;
-				}
-				state.kwArgs[(typeof state.kwArgs.load == "function") ? "load" : "handle"]("load", response, event, state.kwArgs);
-				state.isDone = true;
-				break;
-			  case "partOk":
-				var part = parseInt(event.response.part, 10) + 1;
-				if (event.response.constantParams) {
-					state.constantParams = event.response.constantParams;
-				}
-				this._multiAttach(state, part);
-				state.isDone = false;
-				break;
-			  case "error":
-				state.kwArgs[(typeof state.kwArgs.error == "function") ? "error" : "handle"]("error", event.response, event, state.kwArgs);
-				state.isDone = true;
-				break;
-			  default:
-				state.kwArgs[(typeof state.kwArgs[callback] == "function") ? callback : "handle"](callback, event, event, state.kwArgs);
-				state.isDone = true;
-			}
-		}
-	};
-	dojo.io.transports.addTransport("ScriptSrcTransport");
-};
-window.onscriptload = function (event) {
-	var state = null;
-	var transport = dojo.io.ScriptSrcTransport;
-	if (transport._state[event.id]) {
-		state = transport._state[event.id];
-	} else {
-		var tempState;
-		for (var param in transport._state) {
-			tempState = transport._state[param];
-			if (tempState.finalUrl && tempState.finalUrl == event.id) {
-				state = tempState;
-				break;
-			}
-		}
-		if (state == null) {
-			var scripts = document.getElementsByTagName("script");
-			for (var i = 0; scripts && i < scripts.length; i++) {
-				var scriptTag = scripts[i];
-				if (scriptTag.getAttribute("class") == "ScriptSrcTransport" && scriptTag.src == event.id) {
-					state = transport._state[scriptTag.id];
-					break;
-				}
-			}
-		}
-		if (state == null) {
-			throw "No matching state for onscriptload event.id: " + event.id;
-		}
-	}
-	var callbackName = "error";
-	switch (event.status) {
-	  case dojo.io.ScriptSrcTransport.DsrStatusCodes.Continue:
-		callbackName = "partOk";
-		break;
-	  case dojo.io.ScriptSrcTransport.DsrStatusCodes.Ok:
-		callbackName = "load";
-		break;
-	}
-	transport._finish(state, callbackName, event);
-};
-

http://git-wip-us.apache.org/repos/asf/struts/blob/17d73d21/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/XhrIframeProxy.js
----------------------------------------------------------------------
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/XhrIframeProxy.js b/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/XhrIframeProxy.js
deleted file mode 100644
index 811cc4d..0000000
--- a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/XhrIframeProxy.js
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
-	Copyright (c) 2004-2006, The Dojo Foundation
-	All Rights Reserved.
-
-	Licensed under the Academic Free License version 2.1 or above OR the
-	modified BSD license. For more information on Dojo licensing, see:
-
-		http://dojotoolkit.org/community/licensing.shtml
-*/
-
-
-
-dojo.provide("dojo.io.XhrIframeProxy");
-dojo.require("dojo.experimental");
-dojo.experimental("dojo.io.XhrIframeProxy");
-dojo.require("dojo.io.IframeIO");
-dojo.require("dojo.dom");
-dojo.require("dojo.uri.Uri");
-dojo.io.XhrIframeProxy = {xipClientUrl:djConfig["xipClientUrl"] || dojo.uri.moduleUri("dojo.io", "xip_client.html"), _state:{}, _stateIdCounter:0, needFrameRecursion:function () {
-	return (true == dojo.render.html.ie70);
-}, send:function (facade) {
-	var stateId = "XhrIframeProxy" + (this._stateIdCounter++);
-	facade._stateId = stateId;
-	var frameUrl = this.xipClientUrl + "#0:init:id=" + stateId + "&server=" + encodeURIComponent(facade._ifpServerUrl) + "&fr=false";
-	if (this.needFrameRecursion()) {
-		var fullClientUrl = window.location.href;
-		if ((this.xipClientUrl + "").charAt(0) == "/") {
-			var endIndex = fullClientUrl.indexOf("://");
-			endIndex = fullClientUrl.indexOf("/", endIndex + 1);
-			fullClientUrl = fullClientUrl.substring(0, endIndex);
-		} else {
-			fullClientUrl = fullClientUrl.substring(0, fullClientUrl.lastIndexOf("/") + 1);
-		}
-		fullClientUrl += this.xipClientUrl;
-		var serverUrl = facade._ifpServerUrl + (facade._ifpServerUrl.indexOf("?") == -1 ? "?" : "&") + "dojo.fr=1";
-		frameUrl = serverUrl + "#0:init:id=" + stateId + "&client=" + encodeURIComponent(fullClientUrl) + "&fr=" + this.needFrameRecursion();
-	}
-	this._state[stateId] = {facade:facade, stateId:stateId, clientFrame:dojo.io.createIFrame(stateId, "", frameUrl)};
-	return stateId;
-}, receive:function (stateId, urlEncodedData) {
-	var response = {};
-	var nvPairs = urlEncodedData.split("&");
-	for (var i = 0; i < nvPairs.length; i++) {
-		if (nvPairs[i]) {
-			var nameValue = nvPairs[i].split("=");
-			response[decodeURIComponent(nameValue[0])] = decodeURIComponent(nameValue[1]);
-		}
-	}
-	var state = this._state[stateId];
-	var facade = state.facade;
-	facade._setResponseHeaders(response.responseHeaders);
-	if (response.status == 0 || response.status) {
-		facade.status = parseInt(response.status, 10);
-	}
-	if (response.statusText) {
-		facade.statusText = response.statusText;
-	}
-	if (response.responseText) {
-		facade.responseText = response.responseText;
-		var contentType = facade.getResponseHeader("Content-Type");
-		if (contentType && (contentType == "application/xml" || contentType == "text/xml")) {
-			facade.responseXML = dojo.dom.createDocumentFromText(response.responseText, contentType);
-		}
-	}
-	facade.readyState = 4;
-	this.destroyState(stateId);
-}, clientFrameLoaded:function (stateId) {
-	var state = this._state[stateId];
-	var facade = state.facade;
-	if (this.needFrameRecursion()) {
-		var clientWindow = window.open("", state.stateId + "_clientEndPoint");
-	} else {
-		var clientWindow = state.clientFrame.contentWindow;
-	}
-	var reqHeaders = [];
-	for (var param in facade._requestHeaders) {
-		reqHeaders.push(param + ": " + facade._requestHeaders[param]);
-	}
-	var requestData = {uri:facade._uri};
-	if (reqHeaders.length > 0) {
-		requestData.requestHeaders = reqHeaders.join("\r\n");
-	}
-	if (facade._method) {
-		requestData.method = facade._method;
-	}
-	if (facade._bodyData) {
-		requestData.data = facade._bodyData;
-	}
-	clientWindow.send(dojo.io.argsFromMap(requestData, "utf8"));
-}, destroyState:function (stateId) {
-	var state = this._state[stateId];
-	if (state) {
-		delete this._state[stateId];
-		var parentNode = state.clientFrame.parentNode;
-		parentNode.removeChild(state.clientFrame);
-		state.clientFrame = null;
-		state = null;
-	}
-}, createFacade:function () {
-	if (arguments && arguments[0] && arguments[0]["iframeProxyUrl"]) {
-		return new dojo.io.XhrIframeFacade(arguments[0]["iframeProxyUrl"]);
-	} else {
-		return dojo.io.XhrIframeProxy.oldGetXmlhttpObject.apply(dojo.hostenv, arguments);
-	}
-}};
-dojo.io.XhrIframeProxy.oldGetXmlhttpObject = dojo.hostenv.getXmlhttpObject;
-dojo.hostenv.getXmlhttpObject = dojo.io.XhrIframeProxy.createFacade;
-dojo.io.XhrIframeFacade = function (ifpServerUrl) {
-	this._requestHeaders = {};
-	this._allResponseHeaders = null;
-	this._responseHeaders = {};
-	this._method = null;
-	this._uri = null;
-	this._bodyData = null;
-	this.responseText = null;
-	this.responseXML = null;
-	this.status = null;
-	this.statusText = null;
-	this.readyState = 0;
-	this._ifpServerUrl = ifpServerUrl;
-	this._stateId = null;
-};
-dojo.lang.extend(dojo.io.XhrIframeFacade, {open:function (method, uri) {
-	this._method = method;
-	this._uri = uri;
-	this.readyState = 1;
-}, setRequestHeader:function (header, value) {
-	this._requestHeaders[header] = value;
-}, send:function (stringData) {
-	this._bodyData = stringData;
-	this._stateId = dojo.io.XhrIframeProxy.send(this);
-	this.readyState = 2;
-}, abort:function () {
-	dojo.io.XhrIframeProxy.destroyState(this._stateId);
-}, getAllResponseHeaders:function () {
-	return this._allResponseHeaders;
-}, getResponseHeader:function (header) {
-	return this._responseHeaders[header];
-}, _setResponseHeaders:function (allHeaders) {
-	if (allHeaders) {
-		this._allResponseHeaders = allHeaders;
-		allHeaders = allHeaders.replace(/\r/g, "");
-		var nvPairs = allHeaders.split("\n");
-		for (var i = 0; i < nvPairs.length; i++) {
-			if (nvPairs[i]) {
-				var nameValue = nvPairs[i].split(": ");
-				this._responseHeaders[nameValue[0]] = nameValue[1];
-			}
-		}
-	}
-}});
-

http://git-wip-us.apache.org/repos/asf/struts/blob/17d73d21/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/__package__.js
----------------------------------------------------------------------
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/__package__.js b/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/__package__.js
deleted file mode 100644
index 731980d..0000000
--- a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/__package__.js
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
-	Copyright (c) 2004-2006, The Dojo Foundation
-	All Rights Reserved.
-
-	Licensed under the Academic Free License version 2.1 or above OR the
-	modified BSD license. For more information on Dojo licensing, see:
-
-		http://dojotoolkit.org/community/licensing.shtml
-*/
-
-
-
-dojo.kwCompoundRequire({common:["dojo.io.common"], rhino:["dojo.io.RhinoIO"], browser:["dojo.io.BrowserIO", "dojo.io.cookie"], dashboard:["dojo.io.BrowserIO", "dojo.io.cookie"]});
-dojo.provide("dojo.io.*");
-

http://git-wip-us.apache.org/repos/asf/struts/blob/17d73d21/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/cometd.js
----------------------------------------------------------------------
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/cometd.js b/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/cometd.js
deleted file mode 100644
index d40d7ad..0000000
--- a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/cometd.js
+++ /dev/null
@@ -1,530 +0,0 @@
-/*
-	Copyright (c) 2004-2006, The Dojo Foundation
-	All Rights Reserved.
-
-	Licensed under the Academic Free License version 2.1 or above OR the
-	modified BSD license. For more information on Dojo licensing, see:
-
-		http://dojotoolkit.org/community/licensing.shtml
-*/
-
-
-
-dojo.require("dojo.io.common");
-dojo.provide("dojo.io.cometd");
-dojo.require("dojo.AdapterRegistry");
-dojo.require("dojo.json");
-dojo.require("dojo.io.BrowserIO");
-dojo.require("dojo.io.IframeIO");
-dojo.require("dojo.io.ScriptSrcIO");
-dojo.require("dojo.io.cookie");
-dojo.require("dojo.event.*");
-dojo.require("dojo.lang.common");
-dojo.require("dojo.lang.func");
-cometd = new function () {
-	this.initialized = false;
-	this.connected = false;
-	this.connectionTypes = new dojo.AdapterRegistry(true);
-	this.version = 0.1;
-	this.minimumVersion = 0.1;
-	this.clientId = null;
-	this._isXD = false;
-	this.handshakeReturn = null;
-	this.currentTransport = null;
-	this.url = null;
-	this.lastMessage = null;
-	this.globalTopicChannels = {};
-	this.backlog = [];
-	this.tunnelInit = function (childLocation, childDomain) {
-	};
-	this.tunnelCollapse = function () {
-		dojo.debug("tunnel collapsed!");
-	};
-	this.init = function (props, root, bargs) {
-		props = props || {};
-		props.version = this.version;
-		props.minimumVersion = this.minimumVersion;
-		props.channel = "/meta/handshake";
-		this.url = root || djConfig["cometdRoot"];
-		if (!this.url) {
-			dojo.debug("no cometd root specified in djConfig and no root passed");
-			return;
-		}
-		var bindArgs = {url:this.url, method:"POST", mimetype:"text/json", load:dojo.lang.hitch(this, "finishInit"), content:{"message":dojo.json.serialize([props])}};
-		var regexp = "^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$";
-		var r = ("" + window.location).match(new RegExp(regexp));
-		if (r[4]) {
-			var tmp = r[4].split(":");
-			var thisHost = tmp[0];
-			var thisPort = tmp[1] || "80";
-			r = this.url.match(new RegExp(regexp));
-			if (r[4]) {
-				tmp = r[4].split(":");
-				var urlHost = tmp[0];
-				var urlPort = tmp[1] || "80";
-				if ((urlHost != thisHost) || (urlPort != thisPort)) {
-					dojo.debug(thisHost, urlHost);
-					dojo.debug(thisPort, urlPort);
-					this._isXD = true;
-					bindArgs.transport = "ScriptSrcTransport";
-					bindArgs.jsonParamName = "jsonp";
-					bindArgs.method = "GET";
-				}
-			}
-		}
-		if (bargs) {
-			dojo.lang.mixin(bindArgs, bargs);
-		}
-		return dojo.io.bind(bindArgs);
-	};
-	this.finishInit = function (type, data, evt, request) {
-		data = data[0];
-		this.handshakeReturn = data;
-		if (data["authSuccessful"] == false) {
-			dojo.debug("cometd authentication failed");
-			return;
-		}
-		if (data.version < this.minimumVersion) {
-			dojo.debug("cometd protocol version mismatch. We wanted", this.minimumVersion, "but got", data.version);
-			return;
-		}
-		this.currentTransport = this.connectionTypes.match(data.supportedConnectionTypes, data.version, this._isXD);
-		this.currentTransport.version = data.version;
-		this.clientId = data.clientId;
-		this.tunnelInit = dojo.lang.hitch(this.currentTransport, "tunnelInit");
-		this.tunnelCollapse = dojo.lang.hitch(this.currentTransport, "tunnelCollapse");
-		this.initialized = true;
-		this.currentTransport.startup(data);
-		while (this.backlog.length != 0) {
-			var cur = this.backlog.shift();
-			var fn = cur.shift();
-			this[fn].apply(this, cur);
-		}
-	};
-	this._getRandStr = function () {
-		return Math.random().toString().substring(2, 10);
-	};
-	this.deliver = function (messages) {
-		dojo.lang.forEach(messages, this._deliver, this);
-	};
-	this._deliver = function (message) {
-		if (!message["channel"]) {
-			dojo.debug("cometd error: no channel for message!");
-			return;
-		}
-		if (!this.currentTransport) {
-			this.backlog.push(["deliver", message]);
-			return;
-		}
-		this.lastMessage = message;
-		if ((message.channel.length > 5) && (message.channel.substr(0, 5) == "/meta")) {
-			switch (message.channel) {
-			  case "/meta/subscribe":
-				if (!message.successful) {
-					dojo.debug("cometd subscription error for channel", message.channel, ":", message.error);
-					return;
-				}
-				this.subscribed(message.subscription, message);
-				break;
-			  case "/meta/unsubscribe":
-				if (!message.successful) {
-					dojo.debug("cometd unsubscription error for channel", message.channel, ":", message.error);
-					return;
-				}
-				this.unsubscribed(message.subscription, message);
-				break;
-			}
-		}
-		this.currentTransport.deliver(message);
-		if (message.data) {
-			var tname = (this.globalTopicChannels[message.channel]) ? message.channel : "/cometd" + message.channel;
-			dojo.event.topic.publish(tname, message);
-		}
-	};
-	this.disconnect = function () {
-		if (!this.currentTransport) {
-			dojo.debug("no current transport to disconnect from");
-			return;
-		}
-		this.currentTransport.disconnect();
-	};
-	this.publish = function (channel, data, properties) {
-		if (!this.currentTransport) {
-			this.backlog.push(["publish", channel, data, properties]);
-			return;
-		}
-		var message = {data:data, channel:channel};
-		if (properties) {
-			dojo.lang.mixin(message, properties);
-		}
-		return this.currentTransport.sendMessage(message);
-	};
-	this.subscribe = function (channel, useLocalTopics, objOrFunc, funcName) {
-		if (!this.currentTransport) {
-			this.backlog.push(["subscribe", channel, useLocalTopics, objOrFunc, funcName]);
-			return;
-		}
-		if (objOrFunc) {
-			var tname = (useLocalTopics) ? channel : "/cometd" + channel;
-			if (useLocalTopics) {
-				this.globalTopicChannels[channel] = true;
-			}
-			dojo.event.topic.subscribe(tname, objOrFunc, funcName);
-		}
-		return this.currentTransport.sendMessage({channel:"/meta/subscribe", subscription:channel});
-	};
-	this.subscribed = function (channel, message) {
-		dojo.debug(channel);
-		dojo.debugShallow(message);
-	};
-	this.unsubscribe = function (channel, useLocalTopics, objOrFunc, funcName) {
-		if (!this.currentTransport) {
-			this.backlog.push(["unsubscribe", channel, useLocalTopics, objOrFunc, funcName]);
-			return;
-		}
-		if (objOrFunc) {
-			var tname = (useLocalTopics) ? channel : "/cometd" + channel;
-			dojo.event.topic.unsubscribe(tname, objOrFunc, funcName);
-		}
-		return this.currentTransport.sendMessage({channel:"/meta/unsubscribe", subscription:channel});
-	};
-	this.unsubscribed = function (channel, message) {
-		dojo.debug(channel);
-		dojo.debugShallow(message);
-	};
-};
-cometd.iframeTransport = new function () {
-	this.connected = false;
-	this.connectionId = null;
-	this.rcvNode = null;
-	this.rcvNodeName = "";
-	this.phonyForm = null;
-	this.authToken = null;
-	this.lastTimestamp = null;
-	this.lastId = null;
-	this.backlog = [];
-	this.check = function (types, version, xdomain) {
-		return ((!xdomain) && (!dojo.render.html.safari) && (dojo.lang.inArray(types, "iframe")));
-	};
-	this.tunnelInit = function () {
-		this.postToIframe({message:dojo.json.serialize([{channel:"/meta/connect", clientId:cometd.clientId, connectionType:"iframe"}])});
-	};
-	this.tunnelCollapse = function () {
-		if (this.connected) {
-			this.connected = false;
-			this.postToIframe({message:dojo.json.serialize([{channel:"/meta/reconnect", clientId:cometd.clientId, connectionId:this.connectionId, timestamp:this.lastTimestamp, id:this.lastId}])});
-		}
-	};
-	this.deliver = function (message) {
-		if (message["timestamp"]) {
-			this.lastTimestamp = message.timestamp;
-		}
-		if (message["id"]) {
-			this.lastId = message.id;
-		}
-		if ((message.channel.length > 5) && (message.channel.substr(0, 5) == "/meta")) {
-			switch (message.channel) {
-			  case "/meta/connect":
-				if (!message.successful) {
-					dojo.debug("cometd connection error:", message.error);
-					return;
-				}
-				this.connectionId = message.connectionId;
-				this.connected = true;
-				this.processBacklog();
-				break;
-			  case "/meta/reconnect":
-				if (!message.successful) {
-					dojo.debug("cometd reconnection error:", message.error);
-					return;
-				}
-				this.connected = true;
-				break;
-			  case "/meta/subscribe":
-				if (!message.successful) {
-					dojo.debug("cometd subscription error for channel", message.channel, ":", message.error);
-					return;
-				}
-				dojo.debug(message.channel);
-				break;
-			}
-		}
-	};
-	this.widenDomain = function (domainStr) {
-		var cd = domainStr || document.domain;
-		if (cd.indexOf(".") == -1) {
-			return;
-		}
-		var dps = cd.split(".");
-		if (dps.length <= 2) {
-			return;
-		}
-		dps = dps.slice(dps.length - 2);
-		document.domain = dps.join(".");
-		return document.domain;
-	};
-	this.postToIframe = function (content, url) {
-		if (!this.phonyForm) {
-			if (dojo.render.html.ie) {
-				this.phonyForm = document.createElement("<form enctype='application/x-www-form-urlencoded' method='POST' style='display: none;'>");
-				dojo.body().appendChild(this.phonyForm);
-			} else {
-				this.phonyForm = document.createElement("form");
-				this.phonyForm.style.display = "none";
-				dojo.body().appendChild(this.phonyForm);
-				this.phonyForm.enctype = "application/x-www-form-urlencoded";
-				this.phonyForm.method = "POST";
-			}
-		}
-		this.phonyForm.action = url || cometd.url;
-		this.phonyForm.target = this.rcvNodeName;
-		this.phonyForm.setAttribute("target", this.rcvNodeName);
-		while (this.phonyForm.firstChild) {
-			this.phonyForm.removeChild(this.phonyForm.firstChild);
-		}
-		for (var x in content) {
-			var tn;
-			if (dojo.render.html.ie) {
-				tn = document.createElement("<input type='hidden' name='" + x + "' value='" + content[x] + "'>");
-				this.phonyForm.appendChild(tn);
-			} else {
-				tn = document.createElement("input");
-				this.phonyForm.appendChild(tn);
-				tn.type = "hidden";
-				tn.name = x;
-				tn.value = content[x];
-			}
-		}
-		this.phonyForm.submit();
-	};
-	this.processBacklog = function () {
-		while (this.backlog.length > 0) {
-			this.sendMessage(this.backlog.shift(), true);
-		}
-	};
-	this.sendMessage = function (message, bypassBacklog) {
-		if ((bypassBacklog) || (this.connected)) {
-			message.connectionId = this.connectionId;
-			message.clientId = cometd.clientId;
-			var bindArgs = {url:cometd.url || djConfig["cometdRoot"], method:"POST", mimetype:"text/json", content:{message:dojo.json.serialize([message])}};
-			return dojo.io.bind(bindArgs);
-		} else {
-			this.backlog.push(message);
-		}
-	};
-	this.startup = function (handshakeData) {
-		dojo.debug("startup!");
-		dojo.debug(dojo.json.serialize(handshakeData));
-		if (this.connected) {
-			return;
-		}
-		this.rcvNodeName = "cometdRcv_" + cometd._getRandStr();
-		var initUrl = cometd.url + "/?tunnelInit=iframe";
-		if (false && dojo.render.html.ie) {
-			this.rcvNode = new ActiveXObject("htmlfile");
-			this.rcvNode.open();
-			this.rcvNode.write("<html>");
-			this.rcvNode.write("<script>document.domain = '" + document.domain + "'");
-			this.rcvNode.write("</html>");
-			this.rcvNode.close();
-			var ifrDiv = this.rcvNode.createElement("div");
-			this.rcvNode.appendChild(ifrDiv);
-			this.rcvNode.parentWindow.dojo = dojo;
-			ifrDiv.innerHTML = "<iframe src='" + initUrl + "'></iframe>";
-		} else {
-			this.rcvNode = dojo.io.createIFrame(this.rcvNodeName, "", initUrl);
-		}
-	};
-};
-cometd.mimeReplaceTransport = new function () {
-	this.connected = false;
-	this.connectionId = null;
-	this.xhr = null;
-	this.authToken = null;
-	this.lastTimestamp = null;
-	this.lastId = null;
-	this.backlog = [];
-	this.check = function (types, version, xdomain) {
-		return ((!xdomain) && (dojo.render.html.mozilla) && (dojo.lang.inArray(types, "mime-message-block")));
-	};
-	this.tunnelInit = function () {
-		if (this.connected) {
-			return;
-		}
-		this.openTunnelWith({message:dojo.json.serialize([{channel:"/meta/connect", clientId:cometd.clientId, connectionType:"mime-message-block"}])});
-		this.connected = true;
-	};
-	this.tunnelCollapse = function () {
-		if (this.connected) {
-			this.connected = false;
-			this.openTunnelWith({message:dojo.json.serialize([{channel:"/meta/reconnect", clientId:cometd.clientId, connectionId:this.connectionId, timestamp:this.lastTimestamp, id:this.lastId}])});
-		}
-	};
-	this.deliver = cometd.iframeTransport.deliver;
-	this.handleOnLoad = function (resp) {
-		cometd.deliver(dojo.json.evalJson(this.xhr.responseText));
-	};
-	this.openTunnelWith = function (content, url) {
-		this.xhr = dojo.hostenv.getXmlhttpObject();
-		this.xhr.multipart = true;
-		if (dojo.render.html.mozilla) {
-			this.xhr.addEventListener("load", dojo.lang.hitch(this, "handleOnLoad"), false);
-		} else {
-			if (dojo.render.html.safari) {
-				dojo.debug("Webkit is broken with multipart responses over XHR = (");
-				this.xhr.onreadystatechange = dojo.lang.hitch(this, "handleOnLoad");
-			} else {
-				this.xhr.onload = dojo.lang.hitch(this, "handleOnLoad");
-			}
-		}
-		this.xhr.open("POST", (url || cometd.url), true);
-		this.xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
-		dojo.debug(dojo.json.serialize(content));
-		this.xhr.send(dojo.io.argsFromMap(content, "utf8"));
-	};
-	this.processBacklog = function () {
-		while (this.backlog.length > 0) {
-			this.sendMessage(this.backlog.shift(), true);
-		}
-	};
-	this.sendMessage = function (message, bypassBacklog) {
-		if ((bypassBacklog) || (this.connected)) {
-			message.connectionId = this.connectionId;
-			message.clientId = cometd.clientId;
-			var bindArgs = {url:cometd.url || djConfig["cometdRoot"], method:"POST", mimetype:"text/json", content:{message:dojo.json.serialize([message])}};
-			return dojo.io.bind(bindArgs);
-		} else {
-			this.backlog.push(message);
-		}
-	};
-	this.startup = function (handshakeData) {
-		dojo.debugShallow(handshakeData);
-		if (this.connected) {
-			return;
-		}
-		this.tunnelInit();
-	};
-};
-cometd.longPollTransport = new function () {
-	this.connected = false;
-	this.connectionId = null;
-	this.authToken = null;
-	this.lastTimestamp = null;
-	this.lastId = null;
-	this.backlog = [];
-	this.check = function (types, version, xdomain) {
-		return ((!xdomain) && (dojo.lang.inArray(types, "long-polling")));
-	};
-	this.tunnelInit = function () {
-		if (this.connected) {
-			return;
-		}
-		this.openTunnelWith({message:dojo.json.serialize([{channel:"/meta/connect", clientId:cometd.clientId, connectionType:"long-polling"}])});
-		this.connected = true;
-	};
-	this.tunnelCollapse = function () {
-		if (!this.connected) {
-			this.connected = false;
-			dojo.debug("clientId:", cometd.clientId);
-			this.openTunnelWith({message:dojo.json.serialize([{channel:"/meta/reconnect", connectionType:"long-polling", clientId:cometd.clientId, connectionId:this.connectionId, timestamp:this.lastTimestamp, id:this.lastId}])});
-		}
-	};
-	this.deliver = cometd.iframeTransport.deliver;
-	this.openTunnelWith = function (content, url) {
-		dojo.io.bind({url:(url || cometd.url), method:"post", content:content, mimetype:"text/json", load:dojo.lang.hitch(this, function (type, data, evt, args) {
-			cometd.deliver(data);
-			this.connected = false;
-			this.tunnelCollapse();
-		}), error:function () {
-			dojo.debug("tunnel opening failed");
-		}});
-		this.connected = true;
-	};
-	this.processBacklog = function () {
-		while (this.backlog.length > 0) {
-			this.sendMessage(this.backlog.shift(), true);
-		}
-	};
-	this.sendMessage = function (message, bypassBacklog) {
-		if ((bypassBacklog) || (this.connected)) {
-			message.connectionId = this.connectionId;
-			message.clientId = cometd.clientId;
-			var bindArgs = {url:cometd.url || djConfig["cometdRoot"], method:"post", mimetype:"text/json", content:{message:dojo.json.serialize([message])}, load:dojo.lang.hitch(this, function (type, data, evt, args) {
-				cometd.deliver(data);
-			})};
-			return dojo.io.bind(bindArgs);
-		} else {
-			this.backlog.push(message);
-		}
-	};
-	this.startup = function (handshakeData) {
-		if (this.connected) {
-			return;
-		}
-		this.tunnelInit();
-	};
-};
-cometd.callbackPollTransport = new function () {
-	this.connected = false;
-	this.connectionId = null;
-	this.authToken = null;
-	this.lastTimestamp = null;
-	this.lastId = null;
-	this.backlog = [];
-	this.check = function (types, version, xdomain) {
-		return dojo.lang.inArray(types, "callback-polling");
-	};
-	this.tunnelInit = function () {
-		if (this.connected) {
-			return;
-		}
-		this.openTunnelWith({message:dojo.json.serialize([{channel:"/meta/connect", clientId:cometd.clientId, connectionType:"callback-polling"}])});
-		this.connected = true;
-	};
-	this.tunnelCollapse = function () {
-		if (!this.connected) {
-			this.connected = false;
-			this.openTunnelWith({message:dojo.json.serialize([{channel:"/meta/reconnect", connectionType:"long-polling", clientId:cometd.clientId, connectionId:this.connectionId, timestamp:this.lastTimestamp, id:this.lastId}])});
-		}
-	};
-	this.deliver = cometd.iframeTransport.deliver;
-	this.openTunnelWith = function (content, url) {
-		var req = dojo.io.bind({url:(url || cometd.url), content:content, mimetype:"text/json", transport:"ScriptSrcTransport", jsonParamName:"jsonp", load:dojo.lang.hitch(this, function (type, data, evt, args) {
-			cometd.deliver(data);
-			this.connected = false;
-			this.tunnelCollapse();
-		}), error:function () {
-			dojo.debug("tunnel opening failed");
-		}});
-		this.connected = true;
-	};
-	this.processBacklog = function () {
-		while (this.backlog.length > 0) {
-			this.sendMessage(this.backlog.shift(), true);
-		}
-	};
-	this.sendMessage = function (message, bypassBacklog) {
-		if ((bypassBacklog) || (this.connected)) {
-			message.connectionId = this.connectionId;
-			message.clientId = cometd.clientId;
-			var bindArgs = {url:cometd.url || djConfig["cometdRoot"], mimetype:"text/json", transport:"ScriptSrcTransport", jsonParamName:"jsonp", content:{message:dojo.json.serialize([message])}, load:dojo.lang.hitch(this, function (type, data, evt, args) {
-				cometd.deliver(data);
-			})};
-			return dojo.io.bind(bindArgs);
-		} else {
-			this.backlog.push(message);
-		}
-	};
-	this.startup = function (handshakeData) {
-		if (this.connected) {
-			return;
-		}
-		this.tunnelInit();
-	};
-};
-cometd.connectionTypes.register("mime-message-block", cometd.mimeReplaceTransport.check, cometd.mimeReplaceTransport);
-cometd.connectionTypes.register("long-polling", cometd.longPollTransport.check, cometd.longPollTransport);
-cometd.connectionTypes.register("callback-polling", cometd.callbackPollTransport.check, cometd.callbackPollTransport);
-cometd.connectionTypes.register("iframe", cometd.iframeTransport.check, cometd.iframeTransport);
-dojo.io.cometd = cometd;
-

http://git-wip-us.apache.org/repos/asf/struts/blob/17d73d21/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/common.js
----------------------------------------------------------------------
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/common.js b/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/common.js
deleted file mode 100644
index 3923793..0000000
--- a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/common.js
+++ /dev/null
@@ -1,232 +0,0 @@
-/*
-	Copyright (c) 2004-2006, The Dojo Foundation
-	All Rights Reserved.
-
-	Licensed under the Academic Free License version 2.1 or above OR the
-	modified BSD license. For more information on Dojo licensing, see:
-
-		http://dojotoolkit.org/community/licensing.shtml
-*/
-
-
-
-dojo.provide("dojo.io.common");
-dojo.require("dojo.string");
-dojo.require("dojo.lang.extras");
-dojo.io.transports = [];
-dojo.io.hdlrFuncNames = ["load", "error", "timeout"];
-dojo.io.Request = function (url, mimetype, transport, changeUrl) {
-	if ((arguments.length == 1) && (arguments[0].constructor == Object)) {
-		this.fromKwArgs(arguments[0]);
-	} else {
-		this.url = url;
-		if (mimetype) {
-			this.mimetype = mimetype;
-		}
-		if (transport) {
-			this.transport = transport;
-		}
-		if (arguments.length >= 4) {
-			this.changeUrl = changeUrl;
-		}
-	}
-};
-dojo.lang.extend(dojo.io.Request, {url:"", mimetype:"text/plain", method:"GET", content:undefined, transport:undefined, changeUrl:undefined, formNode:undefined, sync:false, bindSuccess:false, useCache:false, preventCache:false, jsonFilter:function (value) {
-	if ((this.mimetype == "text/json-comment-filtered") || (this.mimetype == "application/json-comment-filtered")) {
-		var cStartIdx = value.indexOf("/*");
-		var cEndIdx = value.lastIndexOf("*/");
-		if ((cStartIdx == -1) || (cEndIdx == -1)) {
-			dojo.debug("your JSON wasn't comment filtered!");
-			return "";
-		}
-		return value.substring(cStartIdx + 2, cEndIdx);
-	}
-	dojo.debug("please consider using a mimetype of text/json-comment-filtered to avoid potential security issues with JSON endpoints");
-	return value;
-}, load:function (type, data, transportImplementation, kwArgs) {
-}, error:function (type, error, transportImplementation, kwArgs) {
-}, timeout:function (type, empty, transportImplementation, kwArgs) {
-}, handle:function (type, data, transportImplementation, kwArgs) {
-}, timeoutSeconds:0, abort:function () {
-}, fromKwArgs:function (kwArgs) {
-	if (kwArgs["url"]) {
-		kwArgs.url = kwArgs.url.toString();
-	}
-	if (kwArgs["formNode"]) {
-		kwArgs.formNode = dojo.byId(kwArgs.formNode);
-	}
-	if (!kwArgs["method"] && kwArgs["formNode"] && kwArgs["formNode"].method) {
-		kwArgs.method = kwArgs["formNode"].method;
-	}
-	if (!kwArgs["handle"] && kwArgs["handler"]) {
-		kwArgs.handle = kwArgs.handler;
-	}
-	if (!kwArgs["load"] && kwArgs["loaded"]) {
-		kwArgs.load = kwArgs.loaded;
-	}
-	if (!kwArgs["changeUrl"] && kwArgs["changeURL"]) {
-		kwArgs.changeUrl = kwArgs.changeURL;
-	}
-	kwArgs.encoding = dojo.lang.firstValued(kwArgs["encoding"], djConfig["bindEncoding"], "");
-	kwArgs.sendTransport = dojo.lang.firstValued(kwArgs["sendTransport"], djConfig["ioSendTransport"], false);
-	var isFunction = dojo.lang.isFunction;
-	for (var x = 0; x < dojo.io.hdlrFuncNames.length; x++) {
-		var fn = dojo.io.hdlrFuncNames[x];
-		if (kwArgs[fn] && isFunction(kwArgs[fn])) {
-			continue;
-		}
-		if (kwArgs["handle"] && isFunction(kwArgs["handle"])) {
-			kwArgs[fn] = kwArgs.handle;
-		}
-	}
-	dojo.lang.mixin(this, kwArgs);
-}});
-dojo.io.Error = function (msg, type, num) {
-	this.message = msg;
-	this.type = type || "unknown";
-	this.number = num || 0;
-};
-dojo.io.transports.addTransport = function (name) {
-	this.push(name);
-	this[name] = dojo.io[name];
-};
-dojo.io.bind = function (request) {
-	if (!(request instanceof dojo.io.Request)) {
-		try {
-			request = new dojo.io.Request(request);
-		}
-		catch (e) {
-			dojo.debug(e);
-		}
-	}
-	var tsName = "";
-	if (request["transport"]) {
-		tsName = request["transport"];
-		if (!this[tsName]) {
-			dojo.io.sendBindError(request, "No dojo.io.bind() transport with name '" + request["transport"] + "'.");
-			return request;
-		}
-		if (!this[tsName].canHandle(request)) {
-			dojo.io.sendBindError(request, "dojo.io.bind() transport with name '" + request["transport"] + "' cannot handle this type of request.");
-			return request;
-		}
-	} else {
-		for (var x = 0; x < dojo.io.transports.length; x++) {
-			var tmp = dojo.io.transports[x];
-			if ((this[tmp]) && (this[tmp].canHandle(request))) {
-				tsName = tmp;
-				break;
-			}
-		}
-		if (tsName == "") {
-			dojo.io.sendBindError(request, "None of the loaded transports for dojo.io.bind()" + " can handle the request.");
-			return request;
-		}
-	}
-	this[tsName].bind(request);
-	request.bindSuccess = true;
-	return request;
-};
-dojo.io.sendBindError = function (request, message) {
-	if ((typeof request.error == "function" || typeof request.handle == "function") && (typeof setTimeout == "function" || typeof setTimeout == "object")) {
-		var errorObject = new dojo.io.Error(message);
-		setTimeout(function () {
-			request[(typeof request.error == "function") ? "error" : "handle"]("error", errorObject, null, request);
-		}, 50);
-	} else {
-		dojo.raise(message);
-	}
-};
-dojo.io.queueBind = function (request) {
-	if (!(request instanceof dojo.io.Request)) {
-		try {
-			request = new dojo.io.Request(request);
-		}
-		catch (e) {
-			dojo.debug(e);
-		}
-	}
-	var oldLoad = request.load;
-	request.load = function () {
-		dojo.io._queueBindInFlight = false;
-		var ret = oldLoad.apply(this, arguments);
-		dojo.io._dispatchNextQueueBind();
-		return ret;
-	};
-	var oldErr = request.error;
-	request.error = function () {
-		dojo.io._queueBindInFlight = false;
-		var ret = oldErr.apply(this, arguments);
-		dojo.io._dispatchNextQueueBind();
-		return ret;
-	};
-	dojo.io._bindQueue.push(request);
-	dojo.io._dispatchNextQueueBind();
-	return request;
-};
-dojo.io._dispatchNextQueueBind = function () {
-	if (!dojo.io._queueBindInFlight) {
-		dojo.io._queueBindInFlight = true;
-		if (dojo.io._bindQueue.length > 0) {
-			dojo.io.bind(dojo.io._bindQueue.shift());
-		} else {
-			dojo.io._queueBindInFlight = false;
-		}
-	}
-};
-dojo.io._bindQueue = [];
-dojo.io._queueBindInFlight = false;
-dojo.io.argsFromMap = function (map, encoding, last) {
-	var enc = /utf/i.test(encoding || "") ? encodeURIComponent : dojo.string.encodeAscii;
-	var mapped = [];
-	var control = new Object();
-	for (var name in map) {
-		var domap = function (elt) {
-			var val = enc(name) + "=" + enc(elt);
-			mapped[(last == name) ? "push" : "unshift"](val);
-		};
-		if (!control[name]) {
-			var value = map[name];
-			if (dojo.lang.isArray(value)) {
-				dojo.lang.forEach(value, domap);
-			} else {
-				domap(value);
-			}
-		}
-	}
-	return mapped.join("&");
-};
-dojo.io.setIFrameSrc = function (iframe, src, replace) {
-	try {
-		var r = dojo.render.html;
-		if (!replace) {
-			if (r.safari) {
-				iframe.location = src;
-			} else {
-				frames[iframe.name].location = src;
-			}
-		} else {
-			var idoc;
-			if (r.ie) {
-				idoc = iframe.contentWindow.document;
-			} else {
-				if (r.safari) {
-					idoc = iframe.document;
-				} else {
-					idoc = iframe.contentWindow;
-				}
-			}
-			if (!idoc) {
-				iframe.location = src;
-				return;
-			} else {
-				idoc.location.replace(src);
-			}
-		}
-	}
-	catch (e) {
-		dojo.debug(e);
-		dojo.debug("setIFrameSrc: " + e);
-	}
-};
-

http://git-wip-us.apache.org/repos/asf/struts/blob/17d73d21/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/cookie.js
----------------------------------------------------------------------
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/cookie.js b/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/cookie.js
deleted file mode 100644
index 91205f6..0000000
--- a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/cookie.js
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
-	Copyright (c) 2004-2006, The Dojo Foundation
-	All Rights Reserved.
-
-	Licensed under the Academic Free License version 2.1 or above OR the
-	modified BSD license. For more information on Dojo licensing, see:
-
-		http://dojotoolkit.org/community/licensing.shtml
-*/
-
-
-
-dojo.provide("dojo.io.cookie");
-dojo.io.cookie.setCookie = function (name, value, days, path, domain, secure) {
-	var expires = -1;
-	if ((typeof days == "number") && (days >= 0)) {
-		var d = new Date();
-		d.setTime(d.getTime() + (days * 24 * 60 * 60 * 1000));
-		expires = d.toGMTString();
-	}
-	value = escape(value);
-	document.cookie = name + "=" + value + ";" + (expires != -1 ? " expires=" + expires + ";" : "") + (path ? "path=" + path : "") + (domain ? "; domain=" + domain : "") + (secure ? "; secure" : "");
-};
-dojo.io.cookie.set = dojo.io.cookie.setCookie;
-dojo.io.cookie.getCookie = function (name) {
-	var idx = document.cookie.lastIndexOf(name + "=");
-	if (idx == -1) {
-		return null;
-	}
-	var value = document.cookie.substring(idx + name.length + 1);
-	var end = value.indexOf(";");
-	if (end == -1) {
-		end = value.length;
-	}
-	value = value.substring(0, end);
-	value = unescape(value);
-	return value;
-};
-dojo.io.cookie.get = dojo.io.cookie.getCookie;
-dojo.io.cookie.deleteCookie = function (name) {
-	dojo.io.cookie.setCookie(name, "-", 0);
-};
-dojo.io.cookie.setObjectCookie = function (name, obj, days, path, domain, secure, clearCurrent) {
-	if (arguments.length == 5) {
-		clearCurrent = domain;
-		domain = null;
-		secure = null;
-	}
-	var pairs = [], cookie, value = "";
-	if (!clearCurrent) {
-		cookie = dojo.io.cookie.getObjectCookie(name);
-	}
-	if (days >= 0) {
-		if (!cookie) {
-			cookie = {};
-		}
-		for (var prop in obj) {
-			if (obj[prop] == null) {
-				delete cookie[prop];
-			} else {
-				if ((typeof obj[prop] == "string") || (typeof obj[prop] == "number")) {
-					cookie[prop] = obj[prop];
-				}
-			}
-		}
-		prop = null;
-		for (var prop in cookie) {
-			pairs.push(escape(prop) + "=" + escape(cookie[prop]));
-		}
-		value = pairs.join("&");
-	}
-	dojo.io.cookie.setCookie(name, value, days, path, domain, secure);
-};
-dojo.io.cookie.getObjectCookie = function (name) {
-	var values = null, cookie = dojo.io.cookie.getCookie(name);
-	if (cookie) {
-		values = {};
-		var pairs = cookie.split("&");
-		for (var i = 0; i < pairs.length; i++) {
-			var pair = pairs[i].split("=");
-			var value = pair[1];
-			if (isNaN(value)) {
-				value = unescape(pair[1]);
-			}
-			values[unescape(pair[0])] = value;
-		}
-	}
-	return values;
-};
-dojo.io.cookie.isSupported = function () {
-	if (typeof navigator.cookieEnabled != "boolean") {
-		dojo.io.cookie.setCookie("__TestingYourBrowserForCookieSupport__", "CookiesAllowed", 90, null);
-		var cookieVal = dojo.io.cookie.getCookie("__TestingYourBrowserForCookieSupport__");
-		navigator.cookieEnabled = (cookieVal == "CookiesAllowed");
-		if (navigator.cookieEnabled) {
-			this.deleteCookie("__TestingYourBrowserForCookieSupport__");
-		}
-	}
-	return navigator.cookieEnabled;
-};
-if (!dojo.io.cookies) {
-	dojo.io.cookies = dojo.io.cookie;
-}
-

http://git-wip-us.apache.org/repos/asf/struts/blob/17d73d21/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/xip_client.html
----------------------------------------------------------------------
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/xip_client.html b/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/xip_client.html
deleted file mode 100644
index 1ed6ea4..0000000
--- a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/xip_client.html
+++ /dev/null
@@ -1,267 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-	<title></title>
-	<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>
-	<!-- Security protection: uncomment the script tag to enable. -->
-	<!-- script type="text/javascript" -->
-	// <!--
-	/*
-	This file is really focused on just sending one message to the server, and
-	receiving one response. The code does not expect to be re-used for multiple messages.
-	This might be reworked later if performance indicates a need for it.
-	
-	xip fragment identifier/hash values have the form:
-	#id:cmd:realEncodedMessage
-
-	id: some ID that should be unique among messages. No inherent meaning,
-	        just something to make sure the hash value is unique so the message
-	        receiver knows a new message is available.
-	        
-	cmd: command to the receiver. Valid values are:
-	         - init: message used to init the frame. Sent as the first URL when loading
-	                 the page. Contains some config parameters.
-	         - loaded: the remote frame is loaded. Only sent from server to client.
-	         - ok: the message that this page sent was received OK. The next message may
-	               now be sent.
-	         - start: the start message of a block of messages (a complete message may
-	                  need to be segmented into many messages to get around the limitiations
-	                  of the size of an URL that a browser accepts.
-	         - part: indicates this is a part of a message.
-	         - end: the end message of a block of messages. The message can now be acted upon.
-	                If the message is small enough that it doesn't need to be segmented, then
-	                just one hash value message can be sent with "end" as the command.
-	
-	To reassemble a segmented message, the realEncodedMessage parts just have to be concatenated
-	together.
-	*/
-
-	//MSIE has the lowest limit for URLs with fragment identifiers,
-	//at around 4K. Choosing a slightly smaller number for good measure.
-	xipUrlLimit = 4000;
-	xipIdCounter = 1;
-
-	function xipInit(){
-		xipStateId = "";
-		xipIsSending = false;
-		xipServerUrl = null;
-		xipStateId = null;
-		xipRequestData = null;
-		xipCurrentHash = "";
-		xipResponseMessage = "";
-		xipRequestParts = [];
-		xipPartIndex = 0;
-		xipServerWindow = null;
-		xipUseFrameRecursion = false;
-	}
-	xipInit();
-	
-	function send(encodedData){
-		if(xipUseFrameRecursion == "true"){
-			var clientEndPoint = window.open(xipStateId + "_clientEndPoint");
-			clientEndPoint.send(encodedData);
-		}else{
-			if(!xipIsSending){
-				xipIsSending = true;
-	
-				xipRequestData = encodedData || "";
-
-				//Get a handle to the server iframe.
-				xipServerWindow = frames[xipStateId + "_frame"];
-				if (!xipServerWindow){
-					xipServerWindow = document.getElementById(xipStateId + "_frame").contentWindow;
-				}
-	
-				sendRequestStart();
-			}
-		}
-	}
-
-	//Modify the server URL if it is a local path and 
-	//This is done for local/same domain testing.
-	function fixServerUrl(ifpServerUrl){
-		if(ifpServerUrl.indexOf("..") == 0){
-			var parts = ifpServerUrl.split("/");
-			ifpServerUrl = parts[parts.length - 1];
-		}
-		return ifpServerUrl;
-	}
-	
-	
-	function pollHash(){
-		//Can't use location.hash because at least Firefox does a decodeURIComponent on it.
-		var urlParts = window.location.href.split("#");
-		if(urlParts.length == 2){
-			var newHash = urlParts[1];
-			if(newHash != xipCurrentHash){
-				try{
-					messageReceived(newHash);
-				}catch(e){
-					//Make sure to not keep processing the error hash value.
-					xipCurrentHash = newHash;
-					throw e;
-				}
-				xipCurrentHash = newHash;
-			}
-		}
-	}
-
-	function messageReceived(encodedData){
-		var msg = unpackMessage(encodedData);
-
-		switch(msg.command){
-			case "loaded":
-				xipMasterFrame.dojo.io.XhrIframeProxy.clientFrameLoaded(xipStateId);
-				break;
-			case "ok":
-				sendRequestPart();
-				break;
-			case "start":
-				xipResponseMessage = "";
-				xipResponseMessage += msg.message;
-				setServerUrl("ok");
-				break;
-			case "part":
-				xipResponseMessage += msg.message;			
-				setServerUrl("ok");
-				break;
-			case "end":
-				setServerUrl("ok");
-				xipResponseMessage += msg.message;
-				xipMasterFrame.dojo.io.XhrIframeProxy.receive(xipStateId, xipResponseMessage);
-				break;
-		}
-	}
-	
-	function sendRequestStart(){
-		//Break the message into parts, if necessary.
-		xipRequestParts = [];
-		var reqData = xipRequestData;
-		var urlLength = xipServerUrl.length;
-		var partLength = xipUrlLimit - urlLength;
-		var reqIndex = 0;
-
-		while((reqData.length - reqIndex) + urlLength > xipUrlLimit){
-			var part = reqData.substring(reqIndex, reqIndex + partLength);
-			//Safari will do some extra hex escaping unless we keep the original hex
-			//escaping complete.
-			var percentIndex = part.lastIndexOf("%");
-			if(percentIndex == part.length - 1 || percentIndex == part.length - 2){
-				part = part.substring(0, percentIndex);
-			}
-			xipRequestParts.push(part);
-			reqIndex += part.length;
-		}
-		xipRequestParts.push(reqData.substring(reqIndex, reqData.length));
-		
-		xipPartIndex = 0;
-		sendRequestPart();
-		
-	}
-	
-	function sendRequestPart(){
-		if(xipPartIndex < xipRequestParts.length){
-			//Get the message part.
-			var partData = xipRequestParts[xipPartIndex];
-
-			//Get the command.
-			var cmd = "part";
-			if(xipPartIndex + 1 == xipRequestParts.length){
-				cmd = "end";
-			}else if (xipPartIndex == 0){
-				cmd = "start";
-			}
-			
-			setServerUrl(cmd, partData);
-			xipPartIndex++;
-		}
-	}
-	
-	function setServerUrl(cmd, message){
-		var serverUrl = makeServerUrl(cmd, message);
-
-		//Safari won't let us replace across domains.
-		if(navigator.userAgent.indexOf("Safari") == -1){
-			xipServerWindow.location.replace(serverUrl);
-		}else{
-			xipServerWindow.location = serverUrl;
-		}
-	}
-	
-	function makeServerUrl(cmd, message){
-		var serverUrl = xipServerUrl + "#" + (xipIdCounter++) + ":" + cmd;
-		if(message){
-			serverUrl += ":" + message;
-		}
-		return serverUrl;
-	}
-
-	function unpackMessage(encodedMessage){
-		var parts = encodedMessage.split(":");
-		var command = parts[1];
-		encodedMessage = parts[2] || "";
-
-		var config = null;
-		if(command == "init"){
-			var configParts = encodedMessage.split("&");
-			config = {};
-			for(var i = 0; i < configParts.length; i++){
-				var nameValue = configParts[i].split("=");
-				config[decodeURIComponent(nameValue[0])] = decodeURIComponent(nameValue[1]);
-			}
-		}
-		return {command: command, message: encodedMessage, config: config};
-	}
-
-	function onClientLoad(){
-		//Decode the init params
-		var config = unpackMessage(window.location.href.split("#")[1]).config;
-
-		xipStateId = config.id;
-
-		//Remove the query param for the IE7 recursive case.
-		xipServerUrl = fixServerUrl(config.server).replace(/(\?|\&)dojo\.fr\=1/, "");
-		
-		//Make sure we don't have a javascript: url, just for good measure.
-		if(xipServerUrl.split(":")[0].match(/javascript/i)){
-			throw "Invalid server URL";
-		}
-
-		xipUseFrameRecursion = config["fr"];
-		
-		if(xipUseFrameRecursion == "endpoint"){
-			xipMasterFrame = parent.parent;
-		}else{
-			xipMasterFrame = parent;
-		}
-		
-		//Start counter to inspect hash value.
-		setInterval(pollHash, 10);
-
-		var clientUrl = window.location.href.split("#")[0];
-		var iframeNode = document.getElementsByTagName("iframe")[0];
-		iframeNode.id = xipStateId + "_frame";
-		iframeNode.src = makeServerUrl("init", 'id=' + xipStateId + '&client='
-			+ encodeURIComponent(clientUrl) + '&fr=' + xipUseFrameRecursion);
-	}
-
-	if(typeof(window.addEventListener) == "undefined"){
-		window.attachEvent("onload", onClientLoad);
-	}else{
-		window.addEventListener('load', onClientLoad, false);
-	}
-	
-	// -->
-	</script>
-</head>
-<body>
-	<h4>The Dojo Toolkit -- xip_client.html</h4>
-
-	<p>This file is used for Dojo's XMLHttpRequest Iframe Proxy. This is the "client" file used
-	internally by dojo.io.XhrIframeProxy.</p>
-	
-	<iframe src="javascript:false"></iframe>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/struts/blob/17d73d21/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/xip_server.html
----------------------------------------------------------------------
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/xip_server.html b/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/xip_server.html
deleted file mode 100644
index d5b3fcd..0000000
--- a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/xip_server.html
+++ /dev/null
@@ -1,386 +0,0 @@
-<!--
-	/*
-		Copyright (c) 2004-2006, The Dojo Foundation
-		All Rights Reserved.
-	
-		Licensed under the Academic Free License version 2.1 or above OR the
-		modified BSD license. For more information on Dojo licensing, see:
-	
-			http://dojotoolkit.org/community/licensing.shtml
-	*/
-	Pieces taken from Dojo source to make this file stand-alone
--->
-<html>
-<head>
-	<title></title>
-	<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>
-	<script type="text/javascript" src="isAllowed.js"></script>
-	<!--
-	BY DEFAULT THIS FILE DOES NOT WORK SO THAT YOU DON'T ACCIDENTALLY EXPOSE
-	ALL OF YOUR XHR-ENABLED SERVICES ON YOUR SITE. 
-	
-	In order for this file to work, you need to uncomment the script element,
-	and you should define a function with the following signature:
-	
-	function isAllowedRequest(request){
-		return false;	
-	}
-	
-	Return true out of the function if you want to allow the cross-domain request.
-	
-	DON'T DEFINE THIS FUNCTION IN THIS FILE! Define it in a separate file called isAllowed.js
-	and include it in this page with a script tag that has a src attribute pointing to the file.
-	See the very first script tag in this file for an example. You do not have to place the
-	script file in the same directory as this file, just update the path above if you move it
-	somewhere else.
-	
-	Customize the isAllowedRequest function to restrict what types of requests are allowed
-	for this server. The request object has the following properties:
-	- requestHeaders: an object with the request headers that are to be added to
-	                  the XHR request.
-	- method: the HTTP method (GET, POST, etc...)
-	- uri: The URI for the request.
-	- data: The URL-encoded data for the request. For a GET request, this would
-	        be the querystring parameters. For a POST request, it wll be the
-	        body data.
-	        
-	See xip_client.html for more info on the xip fragment identifier protocol.	
-	-->
-	
-	<!-- Security protection: uncomment the script tag to enable. -->
-	<!-- script type="text/javascript" -->
-	// <!--
-		//Core XHR handling taken from Dojo IO code.
-		dojo = {};
-		dojo.hostenv = {};
-		// These are in order of decreasing likelihood; this will change in time.
-		dojo.hostenv._XMLHTTP_PROGIDS = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0'];
-		
-		dojo.hostenv.getXmlhttpObject = function(){
-				var http = null;
-			var last_e = null;
-			try{ http = new XMLHttpRequest(); }catch(e){}
-				if(!http){
-				for(var i=0; i<3; ++i){
-					var progid = dojo.hostenv._XMLHTTP_PROGIDS[i];
-					try{
-						http = new ActiveXObject(progid);
-					}catch(e){
-						last_e = e;
-					}
-		
-					if(http){
-						dojo.hostenv._XMLHTTP_PROGIDS = [progid];  // so faster next time
-						break;
-					}
-				}
-		
-				/*if(http && !http.toString) {
-					http.toString = function() { "[object XMLHttpRequest]"; }
-				}*/
-			}
-		
-			if(!http){
-				throw "xip_server.html: XMLHTTP not available: " + last_e;
-			}
-		
-			return http;
-		}
-
-		dojo.setHeaders = function(http, headers){
-			if(headers) {
-				for(var header in headers) {
-					var headerValue = headers[header];
-					http.setRequestHeader(header, headerValue);
-				}
-			}
-		}
-
-	//MSIE has the lowest limit for URLs with fragment identifiers,
-	//at around 4K. Choosing a slightly smaller number for good measure.
-	xipUrlLimit = 4000;
-	xipIdCounter = 1;
-
-	function xipServerInit(){
-		xipStateId = "";
-		xipCurrentHash = "";
-		xipRequestMessage = "";
-		xipResponseParts = [];
-		xipPartIndex = 0;
-	}
-
-	function pollHash(){
-		//Can't use location.hash because at least Firefox does a decodeURIComponent on it.
-		var urlParts = window.location.href.split("#");
-		if(urlParts.length == 2){
-			var newHash = urlParts[1];
-			if(newHash != xipCurrentHash){
-				try{
-					messageReceived(newHash);
-				}catch(e){
-					//Make sure to not keep processing the error hash value.
-					xipCurrentHash = newHash;
-					throw e;
-				}
-				xipCurrentHash = newHash;
-			}
-		}
-	}
-
-	function messageReceived(encodedData){
-		var msg = unpackMessage(encodedData);
-		
-		switch(msg.command){
-			case "ok":
-				sendResponsePart();
-				break;
-			case "start":
-				xipRequestMessage = "";
-				xipRequestMessage += msg.message;
-				setClientUrl("ok");
-				break;
-			case "part":
-				xipRequestMessage += msg.message;			
-				setClientUrl("ok");
-				break;
-			case "end":
-				setClientUrl("ok");
-				xipRequestMessage += msg.message;
-				sendXhr();
-				break;
-		}
-	}
-
-	function sendResponse(encodedData){
-		//Break the message into parts, if necessary.
-		xipResponseParts = [];
-		var resData = encodedData;
-		var urlLength = xipClientUrl.length;
-		var partLength = xipUrlLimit - urlLength;
-		var resIndex = 0;
-
-		while((resData.length - resIndex) + urlLength > xipUrlLimit){
-			var part = resData.substring(resIndex, resIndex + partLength);
-			//Safari will do some extra hex escaping unless we keep the original hex
-			//escaping complete.
-			var percentIndex = part.lastIndexOf("%");
-			if(percentIndex == part.length - 1 || percentIndex == part.length - 2){
-				part = part.substring(0, percentIndex);
-			}
-			xipResponseParts.push(part);
-			resIndex += part.length;
-		}
-		xipResponseParts.push(resData.substring(resIndex, resData.length));
-		
-		xipPartIndex = 0;
-		sendResponsePart();
-	}
-	
-	function sendResponsePart(){
-		if(xipPartIndex < xipResponseParts.length){
-			//Get the message part.
-			var partData = xipResponseParts[xipPartIndex];
-			
-			//Get the command.
-			var cmd = "part";
-			if(xipPartIndex + 1 == xipResponseParts.length){
-				cmd = "end";
-			}else if (xipPartIndex == 0){
-				cmd = "start";
-			}
-
-			setClientUrl(cmd, partData);
-			xipPartIndex++;
-		}else{
-			xipServerInit();
-		}
-	}
-
-	function setClientUrl(cmd, message){
-		var clientUrl = makeClientUrl(cmd, message);
-		//Safari won't let us replace across domains.
-		if(navigator.userAgent.indexOf("Safari") == -1){
-			parent.location.replace(clientUrl);
-		}else{
-			parent.location = clientUrl;
-		}
-	}
-
-	function makeClientUrl(cmd, message){
-		var clientUrl = xipClientUrl + "#" + (xipIdCounter++) + ":" + cmd;
-		if(message){
-			clientUrl += ":" + message;
-		}
-		return clientUrl
-	}
-
-	function xhrDone(xhr){
-		/* Need to pull off and return the following data:
-			- responseHeaders
-			- status
-			- statusText
-			- responseText
-		*/
-		var response = {};
-	
-		if(typeof(xhr.getAllResponseHeaders) != "undefined"){
-			var allHeaders = xhr.getAllResponseHeaders();
-			if(allHeaders){
-				response.responseHeaders = allHeaders;
-			}
-		}
-		
-		if(xhr.status == 0 || xhr.status){
-			response.status = xhr.status;
-		}
-		
-		if(xhr.statusText){
-			response.statusText = xhr.statusText;
-		}
-		
-		if(xhr.responseText){
-			response.responseText = xhr.responseText;
-		}
-	
-		//Build a string of the response object.
-		var result = "";
-		var isFirst = true;
-		for (var param in response){
-			if(isFirst){
-				isFirst = false;
-			}else{
-				result += "&";
-			}
-			result += param + "=" + encodeURIComponent(response[param]);
-		}
-		sendResponse(result);
-	}
-
-	function sendXhr(){
-		var request = {};
-		var nvPairs = xipRequestMessage.split("&");
-		var i = 0;
-		var nameValue = null;
-		for(i = 0; i < nvPairs.length; i++){
-			if(nvPairs[i]){
-				var nameValue = nvPairs[i].split("=");
-				request[decodeURIComponent(nameValue[0])] = decodeURIComponent(nameValue[1]);
-			}
-		}
-
-		//Split up the request headers, if any.
-		var headers = {};
-		if(request.requestHeaders){
-			nvPairs = request.requestHeaders.split("\r\n");
-			for(i = 0; i < nvPairs.length; i++){
-				if(nvPairs[i]){
-					nameValue = nvPairs[i].split(": ");
-					headers[decodeURIComponent(nameValue[0])] = decodeURIComponent(nameValue[1]);
-				}
-			}
-
-			request.requestHeaders = headers;
-		}
-		
-		if(isAllowedRequest(request)){
-		
-			//The request is allowed, so set up the XHR object.
-			var xhr = dojo.hostenv.getXmlhttpObject();
-			
-			//Start timer to look for readyState.
-			var xhrIntervalId = setInterval(function(){
-			
-				if(xhr.readyState == 4){
-					clearInterval(xhrIntervalId);
-					xhrDone(xhr);
-				}
-			}, 10);
-
-			//Actually start up the XHR request.
-			xhr.open(request.method, request.uri, true);
-			dojo.setHeaders(xhr, request.requestHeaders);
-			
-			var content = "";
-			if(request.data){
-				content = request.data;
-			}
-
-			try{
-				xhr.send(content);
-			}catch(e){
-				if(typeof xhr.abort == "function"){
-					xhr.abort();
-					xhrDone({status: 404, statusText: "xip_server.html error: " + e});
-				}
-			}
-		}
-	}
-
-	function unpackMessage(encodedMessage){
-		var parts = encodedMessage.split(":");
-		var command = parts[1];
-		encodedMessage = parts[2] || "";
-
-		var config = null;
-		if(command == "init"){
-			var configParts = encodedMessage.split("&");
-			config = {};
-			for(var i = 0; i < configParts.length; i++){
-				var nameValue = configParts[i].split("=");
-				config[decodeURIComponent(nameValue[0])] = decodeURIComponent(nameValue[1]);
-			}
-		}
-		return {command: command, message: encodedMessage, config: config};
-	}
-
-	function onServerLoad(){
-		xipServerInit();
-
-		//Decode the init params
-		var config = unpackMessage(window.location.href.split("#")[1]).config;
-
-		xipStateId = config.id;
-		xipClientUrl = config.client;
-		
-		//Make sure we don't have a javascript: url, just for good measure.
-		if(xipClientUrl.split(":")[0].match(/javascript/i)){
-			throw "Invalid client URL";
-		}
-		if(!xipStateId.match(/^XhrIframeProxy[0-9]+$/)){
-			throw "Invalid state ID";
-		}
-
-		xipUseFrameRecursion = config["fr"];
-
-		setInterval(pollHash, 10);
-		
-		if(xipUseFrameRecursion == "true"){
-			var serverUrl = window.location.href.split("#")[0];
-			document.getElementById("iframeHolder").innerHTML = '<iframe name="'
-				+ xipStateId + '_clientEndPoint'
-				+ '" src="javascript:false">'
-				+ '</iframe>';
-			var iframeNode = document.getElementsByTagName("iframe")[0];
-			iframeNode.src = makeClientUrl("init", 'id=' + xipStateId + '&server='
-				+ encodeURIComponent(serverUrl) + '&fr=endpoint');
-		}else{
-			setClientUrl("loaded");
-		}
-	}
-
-	if(typeof(window.addEventListener) == "undefined"){
-		window.attachEvent("onload", onServerLoad);
-	}else{
-		window.addEventListener('load', onServerLoad, false);
-	}
-	// -->
-	</script>
-</head>
-<body>
-	<h4>The Dojo Toolkit -- xip_server.html</h4>
-
-	<p>This file is used for Dojo's XMLHttpRequest Iframe Proxy. This is the the file
-	that should go on the server that will actually be doing the XHR request.</p>
-	<div id="iframeHolder"></div>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/struts/blob/17d73d21/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/json.js
----------------------------------------------------------------------
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/json.js b/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/json.js
deleted file mode 100644
index 95ac539..0000000
--- a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/json.js
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
-	Copyright (c) 2004-2006, The Dojo Foundation
-	All Rights Reserved.
-
-	Licensed under the Academic Free License version 2.1 or above OR the
-	modified BSD license. For more information on Dojo licensing, see:
-
-		http://dojotoolkit.org/community/licensing.shtml
-*/
-
-
-
-dojo.provide("dojo.json");
-dojo.require("dojo.lang.func");
-dojo.require("dojo.string.extras");
-dojo.require("dojo.AdapterRegistry");
-dojo.json = {jsonRegistry:new dojo.AdapterRegistry(), register:function (name, check, wrap, override) {
-	dojo.json.jsonRegistry.register(name, check, wrap, override);
-}, evalJson:function (json) {
-	try {
-		return eval("(" + json + ")");
-	}
-	catch (e) {
-		dojo.debug(e);
-		return json;
-	}
-}, serialize:function (o) {
-	var objtype = typeof (o);
-	if (objtype == "undefined") {
-		return "undefined";
-	} else {
-		if ((objtype == "number") || (objtype == "boolean")) {
-			return o + "";
-		} else {
-			if (o === null) {
-				return "null";
-			}
-		}
-	}
-	if (objtype == "string") {
-		return dojo.string.escapeString(o);
-	}
-	var me = arguments.callee;
-	var newObj;
-	if (typeof (o.__json__) == "function") {
-		newObj = o.__json__();
-		if (o !== newObj) {
-			return me(newObj);
-		}
-	}
-	if (typeof (o.json) == "function") {
-		newObj = o.json();
-		if (o !== newObj) {
-			return me(newObj);
-		}
-	}
-	if (objtype != "function" && typeof (o.length) == "number") {
-		var res = [];
-		for (var i = 0; i < o.length; i++) {
-			var val = me(o[i]);
-			if (typeof (val) != "string") {
-				val = "undefined";
-			}
-			res.push(val);
-		}
-		return "[" + res.join(",") + "]";
-	}
-	try {
-		window.o = o;
-		newObj = dojo.json.jsonRegistry.match(o);
-		return me(newObj);
-	}
-	catch (e) {
-	}
-	if (objtype == "function") {
-		return null;
-	}
-	res = [];
-	for (var k in o) {
-		var useKey;
-		if (typeof (k) == "number") {
-			useKey = "\"" + k + "\"";
-		} else {
-			if (typeof (k) == "string") {
-				useKey = dojo.string.escapeString(k);
-			} else {
-				continue;
-			}
-		}
-		val = me(o[k]);
-		if (typeof (val) != "string") {
-			continue;
-		}
-		res.push(useKey + ":" + val);
-	}
-	return "{" + res.join(",") + "}";
-}};
-

http://git-wip-us.apache.org/repos/asf/struts/blob/17d73d21/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lang.js
----------------------------------------------------------------------
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lang.js b/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lang.js
deleted file mode 100644
index a7c8220..0000000
--- a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lang.js
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
-	Copyright (c) 2004-2006, The Dojo Foundation
-	All Rights Reserved.
-
-	Licensed under the Academic Free License version 2.1 or above OR the
-	modified BSD license. For more information on Dojo licensing, see:
-
-		http://dojotoolkit.org/community/licensing.shtml
-*/
-
-
-
-dojo.provide("dojo.lang");
-dojo.require("dojo.lang.common");
-dojo.deprecated("dojo.lang", "replaced by dojo.lang.common", "0.5");
-

http://git-wip-us.apache.org/repos/asf/struts/blob/17d73d21/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lang/__package__.js
----------------------------------------------------------------------
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lang/__package__.js b/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lang/__package__.js
deleted file mode 100644
index 33e6d56..0000000
--- a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lang/__package__.js
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
-	Copyright (c) 2004-2006, The Dojo Foundation
-	All Rights Reserved.
-
-	Licensed under the Academic Free License version 2.1 or above OR the
-	modified BSD license. For more information on Dojo licensing, see:
-
-		http://dojotoolkit.org/community/licensing.shtml
-*/
-
-
-
-dojo.kwCompoundRequire({common:["dojo.lang.common", "dojo.lang.assert", "dojo.lang.array", "dojo.lang.type", "dojo.lang.func", "dojo.lang.extras", "dojo.lang.repr", "dojo.lang.declare"]});
-dojo.provide("dojo.lang.*");
-

http://git-wip-us.apache.org/repos/asf/struts/blob/17d73d21/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lang/array.js
----------------------------------------------------------------------
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lang/array.js b/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lang/array.js
deleted file mode 100644
index 7ac66d5..0000000
--- a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lang/array.js
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
-	Copyright (c) 2004-2006, The Dojo Foundation
-	All Rights Reserved.
-
-	Licensed under the Academic Free License version 2.1 or above OR the
-	modified BSD license. For more information on Dojo licensing, see:
-
-		http://dojotoolkit.org/community/licensing.shtml
-*/
-
-
-
-dojo.provide("dojo.lang.array");
-dojo.require("dojo.lang.common");
-dojo.lang.mixin(dojo.lang, {has:function (obj, name) {
-	try {
-		return typeof obj[name] != "undefined";
-	}
-	catch (e) {
-		return false;
-	}
-}, isEmpty:function (obj) {
-	if (dojo.lang.isObject(obj)) {
-		var tmp = {};
-		var count = 0;
-		for (var x in obj) {
-			if (obj[x] && (!tmp[x])) {
-				count++;
-				break;
-			}
-		}
-		return count == 0;
-	} else {
-		if (dojo.lang.isArrayLike(obj) || dojo.lang.isString(obj)) {
-			return obj.length == 0;
-		}
-	}
-}, map:function (arr, obj, unary_func) {
-	var isString = dojo.lang.isString(arr);
-	if (isString) {
-		arr = arr.split("");
-	}
-	if (dojo.lang.isFunction(obj) && (!unary_func)) {
-		unary_func = obj;
-		obj = dj_global;
-	} else {
-		if (dojo.lang.isFunction(obj) && unary_func) {
-			var tmpObj = obj;
-			obj = unary_func;
-			unary_func = tmpObj;
-		}
-	}
-	if (Array.map) {
-		var outArr = Array.map(arr, unary_func, obj);
-	} else {
-		var outArr = [];
-		for (var i = 0; i < arr.length; ++i) {
-			outArr.push(unary_func.call(obj, arr[i]));
-		}
-	}
-	if (isString) {
-		return outArr.join("");
-	} else {
-		return outArr;
-	}
-}, reduce:function (arr, initialValue, obj, binary_func) {
-	var reducedValue = initialValue;
-	if (arguments.length == 2) {
-		binary_func = initialValue;
-		reducedValue = arr[0];
-		arr = arr.slice(1);
-	} else {
-		if (arguments.length == 3) {
-			if (dojo.lang.isFunction(obj)) {
-				binary_func = obj;
-				obj = null;
-			}
-		} else {
-			if (dojo.lang.isFunction(obj)) {
-				var tmp = binary_func;
-				binary_func = obj;
-				obj = tmp;
-			}
-		}
-	}
-	var ob = obj || dj_global;
-	dojo.lang.map(arr, function (val) {
-		reducedValue = binary_func.call(ob, reducedValue, val);
-	});
-	return reducedValue;
-}, forEach:function (anArray, callback, thisObject) {
-	if (dojo.lang.isString(anArray)) {
-		anArray = anArray.split("");
-	}
-	if (Array.forEach) {
-		Array.forEach(anArray, callback, thisObject);
-	} else {
-		if (!thisObject) {
-			thisObject = dj_global;
-		}
-		for (var i = 0, l = anArray.length; i < l; i++) {
-			callback.call(thisObject, anArray[i], i, anArray);
-		}
-	}
-}, _everyOrSome:function (every, arr, callback, thisObject) {
-	if (dojo.lang.isString(arr)) {
-		arr = arr.split("");
-	}
-	if (Array.every) {
-		return Array[every ? "every" : "some"](arr, callback, thisObject);
-	} else {
-		if (!thisObject) {
-			thisObject = dj_global;
-		}
-		for (var i = 0, l = arr.length; i < l; i++) {
-			var result = callback.call(thisObject, arr[i], i, arr);
-			if (every && !result) {
-				return false;
-			} else {
-				if ((!every) && (result)) {
-					return true;
-				}
-			}
-		}
-		return Boolean(every);
-	}
-}, every:function (arr, callback, thisObject) {
-	return this._everyOrSome(true, arr, callback, thisObject);
-}, some:function (arr, callback, thisObject) {
-	return this._everyOrSome(false, arr, callback, thisObject);
-}, filter:function (arr, callback, thisObject) {
-	var isString = dojo.lang.isString(arr);
-	if (isString) {
-		arr = arr.split("");
-	}
-	var outArr;
-	if (Array.filter) {
-		outArr = Array.filter(arr, callback, thisObject);
-	} else {
-		if (!thisObject) {
-			if (arguments.length >= 3) {
-				dojo.raise("thisObject doesn't exist!");
-			}
-			thisObject = dj_global;
-		}
-		outArr = [];
-		for (var i = 0; i < arr.length; i++) {
-			if (callback.call(thisObject, arr[i], i, arr)) {
-				outArr.push(arr[i]);
-			}
-		}
-	}
-	if (isString) {
-		return outArr.join("");
-	} else {
-		return outArr;
-	}
-}, unnest:function () {
-	var out = [];
-	for (var i = 0; i < arguments.length; i++) {
-		if (dojo.lang.isArrayLike(arguments[i])) {
-			var add = dojo.lang.unnest.apply(this, arguments[i]);
-			out = out.concat(add);
-		} else {
-			out.push(arguments[i]);
-		}
-	}
-	return out;
-}, toArray:function (arrayLike, startOffset) {
-	var array = [];
-	for (var i = startOffset || 0; i < arrayLike.length; i++) {
-		array.push(arrayLike[i]);
-	}
-	return array;
-}});
-

http://git-wip-us.apache.org/repos/asf/struts/blob/17d73d21/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lang/assert.js
----------------------------------------------------------------------
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lang/assert.js b/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lang/assert.js
deleted file mode 100644
index e55c86c..0000000
--- a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lang/assert.js
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
-	Copyright (c) 2004-2006, The Dojo Foundation
-	All Rights Reserved.
-
-	Licensed under the Academic Free License version 2.1 or above OR the
-	modified BSD license. For more information on Dojo licensing, see:
-
-		http://dojotoolkit.org/community/licensing.shtml
-*/
-
-
-
-dojo.provide("dojo.lang.assert");
-dojo.require("dojo.lang.common");
-dojo.require("dojo.lang.array");
-dojo.require("dojo.lang.type");
-dojo.lang.assert = function (booleanValue, message) {
-	if (!booleanValue) {
-		var errorMessage = "An assert statement failed.\n" + "The method dojo.lang.assert() was called with a 'false' value.\n";
-		if (message) {
-			errorMessage += "Here's the assert message:\n" + message + "\n";
-		}
-		throw new Error(errorMessage);
-	}
-};
-dojo.lang.assertType = function (value, type, keywordParameters) {
-	if (dojo.lang.isString(keywordParameters)) {
-		dojo.deprecated("dojo.lang.assertType(value, type, \"message\")", "use dojo.lang.assertType(value, type) instead", "0.5");
-	}
-	if (!dojo.lang.isOfType(value, type, keywordParameters)) {
-		if (!dojo.lang.assertType._errorMessage) {
-			dojo.lang.assertType._errorMessage = "Type mismatch: dojo.lang.assertType() failed.";
-		}
-		dojo.lang.assert(false, dojo.lang.assertType._errorMessage);
-	}
-};
-dojo.lang.assertValidKeywords = function (object, expectedProperties, message) {
-	var key;
-	if (!message) {
-		if (!dojo.lang.assertValidKeywords._errorMessage) {
-			dojo.lang.assertValidKeywords._errorMessage = "In dojo.lang.assertValidKeywords(), found invalid keyword:";
-		}
-		message = dojo.lang.assertValidKeywords._errorMessage;
-	}
-	if (dojo.lang.isArray(expectedProperties)) {
-		for (key in object) {
-			if (!dojo.lang.inArray(expectedProperties, key)) {
-				dojo.lang.assert(false, message + " " + key);
-			}
-		}
-	} else {
-		for (key in object) {
-			if (!(key in expectedProperties)) {
-				dojo.lang.assert(false, message + " " + key);
-			}
-		}
-	}
-};
-