http://git-wip-us.apache.org/repos/asf/jena/blob/2fb788d3/jena-fuseki2/src/main/webapp/js/lib/mode/javascript/javascript.js
----------------------------------------------------------------------
diff --git a/jena-fuseki2/src/main/webapp/js/lib/mode/javascript/javascript.js 
b/jena-fuseki2/src/main/webapp/js/lib/mode/javascript/javascript.js
deleted file mode 100644
index 315674b..0000000
--- a/jena-fuseki2/src/main/webapp/js/lib/mode/javascript/javascript.js
+++ /dev/null
@@ -1,683 +0,0 @@
-// CodeMirror, copyright (c) by Marijn Haverbeke and others
-// Distributed under an MIT license: http://codemirror.net/LICENSE
-
-// TODO actually recognize syntax of TypeScript constructs
-
-(function(mod) {
-  if (typeof exports == "object" && typeof module == "object") // CommonJS
-    mod(require("../../lib/codemirror"));
-  else if (typeof define == "function" && define.amd) // AMD
-    define(["../../lib/codemirror"], mod);
-  else // Plain browser env
-    mod(CodeMirror);
-})(function(CodeMirror) {
-"use strict";
-
-CodeMirror.defineMode("javascript", function(config, parserConfig) {
-  var indentUnit = config.indentUnit;
-  var statementIndent = parserConfig.statementIndent;
-  var jsonldMode = parserConfig.jsonld;
-  var jsonMode = parserConfig.json || jsonldMode;
-  var isTS = parserConfig.typescript;
-
-  // Tokenizer
-
-  var keywords = function(){
-    function kw(type) {return {type: type, style: "keyword"};}
-    var A = kw("keyword a"), B = kw("keyword b"), C = kw("keyword c");
-    var operator = kw("operator"), atom = {type: "atom", style: "atom"};
-
-    var jsKeywords = {
-      "if": kw("if"), "while": A, "with": A, "else": B, "do": B, "try": B, 
"finally": B,
-      "return": C, "break": C, "continue": C, "new": C, "delete": C, "throw": 
C, "debugger": C,
-      "var": kw("var"), "const": kw("var"), "let": kw("var"),
-      "function": kw("function"), "catch": kw("catch"),
-      "for": kw("for"), "switch": kw("switch"), "case": kw("case"), "default": 
kw("default"),
-      "in": operator, "typeof": operator, "instanceof": operator,
-      "true": atom, "false": atom, "null": atom, "undefined": atom, "NaN": 
atom, "Infinity": atom,
-      "this": kw("this"), "module": kw("module"), "class": kw("class"), 
"super": kw("atom"),
-      "yield": C, "export": kw("export"), "import": kw("import"), "extends": C
-    };
-
-    // Extend the 'normal' keywords with the TypeScript language extensions
-    if (isTS) {
-      var type = {type: "variable", style: "variable-3"};
-      var tsKeywords = {
-        // object-like things
-        "interface": kw("interface"),
-        "extends": kw("extends"),
-        "constructor": kw("constructor"),
-
-        // scope modifiers
-        "public": kw("public"),
-        "private": kw("private"),
-        "protected": kw("protected"),
-        "static": kw("static"),
-
-        // types
-        "string": type, "number": type, "bool": type, "any": type
-      };
-
-      for (var attr in tsKeywords) {
-        jsKeywords[attr] = tsKeywords[attr];
-      }
-    }
-
-    return jsKeywords;
-  }();
-
-  var isOperatorChar = /[+\-*&%=<>!?|~^]/;
-  var isJsonldKeyword = 
/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;
-
-  function readRegexp(stream) {
-    var escaped = false, next, inSet = false;
-    while ((next = stream.next()) != null) {
-      if (!escaped) {
-        if (next == "/" && !inSet) return;
-        if (next == "[") inSet = true;
-        else if (inSet && next == "]") inSet = false;
-      }
-      escaped = !escaped && next == "\\";
-    }
-  }
-
-  // Used as scratch variables to communicate multiple values without
-  // consing up tons of objects.
-  var type, content;
-  function ret(tp, style, cont) {
-    type = tp; content = cont;
-    return style;
-  }
-  function tokenBase(stream, state) {
-    var ch = stream.next();
-    if (ch == '"' || ch == "'") {
-      state.tokenize = tokenString(ch);
-      return state.tokenize(stream, state);
-    } else if (ch == "." && stream.match(/^\d+(?:[eE][+\-]?\d+)?/)) {
-      return ret("number", "number");
-    } else if (ch == "." && stream.match("..")) {
-      return ret("spread", "meta");
-    } else if (/[\[\]{}\(\),;\:\.]/.test(ch)) {
-      return ret(ch);
-    } else if (ch == "=" && stream.eat(">")) {
-      return ret("=>", "operator");
-    } else if (ch == "0" && stream.eat(/x/i)) {
-      stream.eatWhile(/[\da-f]/i);
-      return ret("number", "number");
-    } else if (/\d/.test(ch)) {
-      stream.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/);
-      return ret("number", "number");
-    } else if (ch == "/") {
-      if (stream.eat("*")) {
-        state.tokenize = tokenComment;
-        return tokenComment(stream, state);
-      } else if (stream.eat("/")) {
-        stream.skipToEnd();
-        return ret("comment", "comment");
-      } else if (state.lastType == "operator" || state.lastType == "keyword c" 
||
-               state.lastType == "sof" || 
/^[\[{}\(,;:]$/.test(state.lastType)) {
-        readRegexp(stream);
-        stream.eatWhile(/[gimy]/); // 'y' is "sticky" option in Mozilla
-        return ret("regexp", "string-2");
-      } else {
-        stream.eatWhile(isOperatorChar);
-        return ret("operator", "operator", stream.current());
-      }
-    } else if (ch == "`") {
-      state.tokenize = tokenQuasi;
-      return tokenQuasi(stream, state);
-    } else if (ch == "#") {
-      stream.skipToEnd();
-      return ret("error", "error");
-    } else if (isOperatorChar.test(ch)) {
-      stream.eatWhile(isOperatorChar);
-      return ret("operator", "operator", stream.current());
-    } else {
-      stream.eatWhile(/[\w\$_]/);
-      var word = stream.current(), known = keywords.propertyIsEnumerable(word) 
&& keywords[word];
-      return (known && state.lastType != ".") ? ret(known.type, known.style, 
word) :
-                     ret("variable", "variable", word);
-    }
-  }
-
-  function tokenString(quote) {
-    return function(stream, state) {
-      var escaped = false, next;
-      if (jsonldMode && stream.peek() == "@" && stream.match(isJsonldKeyword)){
-        state.tokenize = tokenBase;
-        return ret("jsonld-keyword", "meta");
-      }
-      while ((next = stream.next()) != null) {
-        if (next == quote && !escaped) break;
-        escaped = !escaped && next == "\\";
-      }
-      if (!escaped) state.tokenize = tokenBase;
-      return ret("string", "string");
-    };
-  }
-
-  function tokenComment(stream, state) {
-    var maybeEnd = false, ch;
-    while (ch = stream.next()) {
-      if (ch == "/" && maybeEnd) {
-        state.tokenize = tokenBase;
-        break;
-      }
-      maybeEnd = (ch == "*");
-    }
-    return ret("comment", "comment");
-  }
-
-  function tokenQuasi(stream, state) {
-    var escaped = false, next;
-    while ((next = stream.next()) != null) {
-      if (!escaped && (next == "`" || next == "$" && stream.eat("{"))) {
-        state.tokenize = tokenBase;
-        break;
-      }
-      escaped = !escaped && next == "\\";
-    }
-    return ret("quasi", "string-2", stream.current());
-  }
-
-  var brackets = "([{}])";
-  // This is a crude lookahead trick to try and notice that we're
-  // parsing the argument patterns for a fat-arrow function before we
-  // actually hit the arrow token. It only works if the arrow is on
-  // the same line as the arguments and there's no strange noise
-  // (comments) in between. Fallback is to only notice when we hit the
-  // arrow, and not declare the arguments as locals for the arrow
-  // body.
-  function findFatArrow(stream, state) {
-    if (state.fatArrowAt) state.fatArrowAt = null;
-    var arrow = stream.string.indexOf("=>", stream.start);
-    if (arrow < 0) return;
-
-    var depth = 0, sawSomething = false;
-    for (var pos = arrow - 1; pos >= 0; --pos) {
-      var ch = stream.string.charAt(pos);
-      var bracket = brackets.indexOf(ch);
-      if (bracket >= 0 && bracket < 3) {
-        if (!depth) { ++pos; break; }
-        if (--depth == 0) break;
-      } else if (bracket >= 3 && bracket < 6) {
-        ++depth;
-      } else if (/[$\w]/.test(ch)) {
-        sawSomething = true;
-      } else if (sawSomething && !depth) {
-        ++pos;
-        break;
-      }
-    }
-    if (sawSomething && !depth) state.fatArrowAt = pos;
-  }
-
-  // Parser
-
-  var atomicTypes = {"atom": true, "number": true, "variable": true, "string": 
true, "regexp": true, "this": true, "jsonld-keyword": true};
-
-  function JSLexical(indented, column, type, align, prev, info) {
-    this.indented = indented;
-    this.column = column;
-    this.type = type;
-    this.prev = prev;
-    this.info = info;
-    if (align != null) this.align = align;
-  }
-
-  function inScope(state, varname) {
-    for (var v = state.localVars; v; v = v.next)
-      if (v.name == varname) return true;
-    for (var cx = state.context; cx; cx = cx.prev) {
-      for (var v = cx.vars; v; v = v.next)
-        if (v.name == varname) return true;
-    }
-  }
-
-  function parseJS(state, style, type, content, stream) {
-    var cc = state.cc;
-    // Communicate our context to the combinators.
-    // (Less wasteful than consing up a hundred closures on every call.)
-    cx.state = state; cx.stream = stream; cx.marked = null, cx.cc = cc; 
cx.style = style;
-
-    if (!state.lexical.hasOwnProperty("align"))
-      state.lexical.align = true;
-
-    while(true) {
-      var combinator = cc.length ? cc.pop() : jsonMode ? expression : 
statement;
-      if (combinator(type, content)) {
-        while(cc.length && cc[cc.length - 1].lex)
-          cc.pop()();
-        if (cx.marked) return cx.marked;
-        if (type == "variable" && inScope(state, content)) return "variable-2";
-        return style;
-      }
-    }
-  }
-
-  // Combinator utils
-
-  var cx = {state: null, column: null, marked: null, cc: null};
-  function pass() {
-    for (var i = arguments.length - 1; i >= 0; i--) cx.cc.push(arguments[i]);
-  }
-  function cont() {
-    pass.apply(null, arguments);
-    return true;
-  }
-  function register(varname) {
-    function inList(list) {
-      for (var v = list; v; v = v.next)
-        if (v.name == varname) return true;
-      return false;
-    }
-    var state = cx.state;
-    if (state.context) {
-      cx.marked = "def";
-      if (inList(state.localVars)) return;
-      state.localVars = {name: varname, next: state.localVars};
-    } else {
-      if (inList(state.globalVars)) return;
-      if (parserConfig.globalVars)
-        state.globalVars = {name: varname, next: state.globalVars};
-    }
-  }
-
-  // Combinators
-
-  var defaultVars = {name: "this", next: {name: "arguments"}};
-  function pushcontext() {
-    cx.state.context = {prev: cx.state.context, vars: cx.state.localVars};
-    cx.state.localVars = defaultVars;
-  }
-  function popcontext() {
-    cx.state.localVars = cx.state.context.vars;
-    cx.state.context = cx.state.context.prev;
-  }
-  function pushlex(type, info) {
-    var result = function() {
-      var state = cx.state, indent = state.indented;
-      if (state.lexical.type == "stat") indent = state.lexical.indented;
-      state.lexical = new JSLexical(indent, cx.stream.column(), type, null, 
state.lexical, info);
-    };
-    result.lex = true;
-    return result;
-  }
-  function poplex() {
-    var state = cx.state;
-    if (state.lexical.prev) {
-      if (state.lexical.type == ")")
-        state.indented = state.lexical.indented;
-      state.lexical = state.lexical.prev;
-    }
-  }
-  poplex.lex = true;
-
-  function expect(wanted) {
-    function exp(type) {
-      if (type == wanted) return cont();
-      else if (wanted == ";") return pass();
-      else return cont(exp);
-    };
-    return exp;
-  }
-
-  function statement(type, value) {
-    if (type == "var") return cont(pushlex("vardef", value.length), vardef, 
expect(";"), poplex);
-    if (type == "keyword a") return cont(pushlex("form"), expression, 
statement, poplex);
-    if (type == "keyword b") return cont(pushlex("form"), statement, poplex);
-    if (type == "{") return cont(pushlex("}"), block, poplex);
-    if (type == ";") return cont();
-    if (type == "if") {
-      if (cx.state.lexical.info == "else" && cx.state.cc[cx.state.cc.length - 
1] == poplex)
-        cx.state.cc.pop()();
-      return cont(pushlex("form"), expression, statement, poplex, maybeelse);
-    }
-    if (type == "function") return cont(functiondef);
-    if (type == "for") return cont(pushlex("form"), forspec, statement, 
poplex);
-    if (type == "variable") return cont(pushlex("stat"), maybelabel);
-    if (type == "switch") return cont(pushlex("form"), expression, 
pushlex("}", "switch"), expect("{"),
-                                      block, poplex, poplex);
-    if (type == "case") return cont(expression, expect(":"));
-    if (type == "default") return cont(expect(":"));
-    if (type == "catch") return cont(pushlex("form"), pushcontext, 
expect("("), funarg, expect(")"),
-                                     statement, poplex, popcontext);
-    if (type == "module") return cont(pushlex("form"), pushcontext, 
afterModule, popcontext, poplex);
-    if (type == "class") return cont(pushlex("form"), className, poplex);
-    if (type == "export") return cont(pushlex("form"), afterExport, poplex);
-    if (type == "import") return cont(pushlex("form"), afterImport, poplex);
-    return pass(pushlex("stat"), expression, expect(";"), poplex);
-  }
-  function expression(type) {
-    return expressionInner(type, false);
-  }
-  function expressionNoComma(type) {
-    return expressionInner(type, true);
-  }
-  function expressionInner(type, noComma) {
-    if (cx.state.fatArrowAt == cx.stream.start) {
-      var body = noComma ? arrowBodyNoComma : arrowBody;
-      if (type == "(") return cont(pushcontext, pushlex(")"), 
commasep(pattern, ")"), poplex, expect("=>"), body, popcontext);
-      else if (type == "variable") return pass(pushcontext, pattern, 
expect("=>"), body, popcontext);
-    }
-
-    var maybeop = noComma ? maybeoperatorNoComma : maybeoperatorComma;
-    if (atomicTypes.hasOwnProperty(type)) return cont(maybeop);
-    if (type == "function") return cont(functiondef, maybeop);
-    if (type == "keyword c") return cont(noComma ? maybeexpressionNoComma : 
maybeexpression);
-    if (type == "(") return cont(pushlex(")"), maybeexpression, comprehension, 
expect(")"), poplex, maybeop);
-    if (type == "operator" || type == "spread") return cont(noComma ? 
expressionNoComma : expression);
-    if (type == "[") return cont(pushlex("]"), arrayLiteral, poplex, maybeop);
-    if (type == "{") return contCommasep(objprop, "}", null, maybeop);
-    if (type == "quasi") { return pass(quasi, maybeop); }
-    return cont();
-  }
-  function maybeexpression(type) {
-    if (type.match(/[;\}\)\],]/)) return pass();
-    return pass(expression);
-  }
-  function maybeexpressionNoComma(type) {
-    if (type.match(/[;\}\)\],]/)) return pass();
-    return pass(expressionNoComma);
-  }
-
-  function maybeoperatorComma(type, value) {
-    if (type == ",") return cont(expression);
-    return maybeoperatorNoComma(type, value, false);
-  }
-  function maybeoperatorNoComma(type, value, noComma) {
-    var me = noComma == false ? maybeoperatorComma : maybeoperatorNoComma;
-    var expr = noComma == false ? expression : expressionNoComma;
-    if (value == "=>") return cont(pushcontext, noComma ? arrowBodyNoComma : 
arrowBody, popcontext);
-    if (type == "operator") {
-      if (/\+\+|--/.test(value)) return cont(me);
-      if (value == "?") return cont(expression, expect(":"), expr);
-      return cont(expr);
-    }
-    if (type == "quasi") { return pass(quasi, me); }
-    if (type == ";") return;
-    if (type == "(") return contCommasep(expressionNoComma, ")", "call", me);
-    if (type == ".") return cont(property, me);
-    if (type == "[") return cont(pushlex("]"), maybeexpression, expect("]"), 
poplex, me);
-  }
-  function quasi(type, value) {
-    if (type != "quasi") return pass();
-    if (value.slice(value.length - 2) != "${") return cont(quasi);
-    return cont(expression, continueQuasi);
-  }
-  function continueQuasi(type) {
-    if (type == "}") {
-      cx.marked = "string-2";
-      cx.state.tokenize = tokenQuasi;
-      return cont(quasi);
-    }
-  }
-  function arrowBody(type) {
-    findFatArrow(cx.stream, cx.state);
-    if (type == "{") return pass(statement);
-    return pass(expression);
-  }
-  function arrowBodyNoComma(type) {
-    findFatArrow(cx.stream, cx.state);
-    if (type == "{") return pass(statement);
-    return pass(expressionNoComma);
-  }
-  function maybelabel(type) {
-    if (type == ":") return cont(poplex, statement);
-    return pass(maybeoperatorComma, expect(";"), poplex);
-  }
-  function property(type) {
-    if (type == "variable") {cx.marked = "property"; return cont();}
-  }
-  function objprop(type, value) {
-    if (type == "variable" || cx.style == "keyword") {
-      cx.marked = "property";
-      if (value == "get" || value == "set") return cont(getterSetter);
-      return cont(afterprop);
-    } else if (type == "number" || type == "string") {
-      cx.marked = jsonldMode ? "property" : (cx.style + " property");
-      return cont(afterprop);
-    } else if (type == "jsonld-keyword") {
-      return cont(afterprop);
-    } else if (type == "[") {
-      return cont(expression, expect("]"), afterprop);
-    }
-  }
-  function getterSetter(type) {
-    if (type != "variable") return pass(afterprop);
-    cx.marked = "property";
-    return cont(functiondef);
-  }
-  function afterprop(type) {
-    if (type == ":") return cont(expressionNoComma);
-    if (type == "(") return pass(functiondef);
-  }
-  function commasep(what, end) {
-    function proceed(type) {
-      if (type == ",") {
-        var lex = cx.state.lexical;
-        if (lex.info == "call") lex.pos = (lex.pos || 0) + 1;
-        return cont(what, proceed);
-      }
-      if (type == end) return cont();
-      return cont(expect(end));
-    }
-    return function(type) {
-      if (type == end) return cont();
-      return pass(what, proceed);
-    };
-  }
-  function contCommasep(what, end, info) {
-    for (var i = 3; i < arguments.length; i++)
-      cx.cc.push(arguments[i]);
-    return cont(pushlex(end, info), commasep(what, end), poplex);
-  }
-  function block(type) {
-    if (type == "}") return cont();
-    return pass(statement, block);
-  }
-  function maybetype(type) {
-    if (isTS && type == ":") return cont(typedef);
-  }
-  function typedef(type) {
-    if (type == "variable"){cx.marked = "variable-3"; return cont();}
-  }
-  function vardef() {
-    return pass(pattern, maybetype, maybeAssign, vardefCont);
-  }
-  function pattern(type, value) {
-    if (type == "variable") { register(value); return cont(); }
-    if (type == "[") return contCommasep(pattern, "]");
-    if (type == "{") return contCommasep(proppattern, "}");
-  }
-  function proppattern(type, value) {
-    if (type == "variable" && !cx.stream.match(/^\s*:/, false)) {
-      register(value);
-      return cont(maybeAssign);
-    }
-    if (type == "variable") cx.marked = "property";
-    return cont(expect(":"), pattern, maybeAssign);
-  }
-  function maybeAssign(_type, value) {
-    if (value == "=") return cont(expressionNoComma);
-  }
-  function vardefCont(type) {
-    if (type == ",") return cont(vardef);
-  }
-  function maybeelse(type, value) {
-    if (type == "keyword b" && value == "else") return cont(pushlex("form", 
"else"), statement, poplex);
-  }
-  function forspec(type) {
-    if (type == "(") return cont(pushlex(")"), forspec1, expect(")"), poplex);
-  }
-  function forspec1(type) {
-    if (type == "var") return cont(vardef, expect(";"), forspec2);
-    if (type == ";") return cont(forspec2);
-    if (type == "variable") return cont(formaybeinof);
-    return pass(expression, expect(";"), forspec2);
-  }
-  function formaybeinof(_type, value) {
-    if (value == "in" || value == "of") { cx.marked = "keyword"; return 
cont(expression); }
-    return cont(maybeoperatorComma, forspec2);
-  }
-  function forspec2(type, value) {
-    if (type == ";") return cont(forspec3);
-    if (value == "in" || value == "of") { cx.marked = "keyword"; return 
cont(expression); }
-    return pass(expression, expect(";"), forspec3);
-  }
-  function forspec3(type) {
-    if (type != ")") cont(expression);
-  }
-  function functiondef(type, value) {
-    if (value == "*") {cx.marked = "keyword"; return cont(functiondef);}
-    if (type == "variable") {register(value); return cont(functiondef);}
-    if (type == "(") return cont(pushcontext, pushlex(")"), commasep(funarg, 
")"), poplex, statement, popcontext);
-  }
-  function funarg(type) {
-    if (type == "spread") return cont(funarg);
-    return pass(pattern, maybetype);
-  }
-  function className(type, value) {
-    if (type == "variable") {register(value); return cont(classNameAfter);}
-  }
-  function classNameAfter(type, value) {
-    if (value == "extends") return cont(expression, classNameAfter);
-    if (type == "{") return cont(pushlex("}"), classBody, poplex);
-  }
-  function classBody(type, value) {
-    if (type == "variable" || cx.style == "keyword") {
-      cx.marked = "property";
-      if (value == "get" || value == "set") return cont(classGetterSetter, 
functiondef, classBody);
-      return cont(functiondef, classBody);
-    }
-    if (value == "*") {
-      cx.marked = "keyword";
-      return cont(classBody);
-    }
-    if (type == ";") return cont(classBody);
-    if (type == "}") return cont();
-  }
-  function classGetterSetter(type) {
-    if (type != "variable") return pass();
-    cx.marked = "property";
-    return cont();
-  }
-  function afterModule(type, value) {
-    if (type == "string") return cont(statement);
-    if (type == "variable") { register(value); return cont(maybeFrom); }
-  }
-  function afterExport(_type, value) {
-    if (value == "*") { cx.marked = "keyword"; return cont(maybeFrom, 
expect(";")); }
-    if (value == "default") { cx.marked = "keyword"; return cont(expression, 
expect(";")); }
-    return pass(statement);
-  }
-  function afterImport(type) {
-    if (type == "string") return cont();
-    return pass(importSpec, maybeFrom);
-  }
-  function importSpec(type, value) {
-    if (type == "{") return contCommasep(importSpec, "}");
-    if (type == "variable") register(value);
-    return cont();
-  }
-  function maybeFrom(_type, value) {
-    if (value == "from") { cx.marked = "keyword"; return cont(expression); }
-  }
-  function arrayLiteral(type) {
-    if (type == "]") return cont();
-    return pass(expressionNoComma, maybeArrayComprehension);
-  }
-  function maybeArrayComprehension(type) {
-    if (type == "for") return pass(comprehension, expect("]"));
-    if (type == ",") return cont(commasep(expressionNoComma, "]"));
-    return pass(commasep(expressionNoComma, "]"));
-  }
-  function comprehension(type) {
-    if (type == "for") return cont(forspec, comprehension);
-    if (type == "if") return cont(expression, comprehension);
-  }
-
-  // Interface
-
-  return {
-    startState: function(basecolumn) {
-      var state = {
-        tokenize: tokenBase,
-        lastType: "sof",
-        cc: [],
-        lexical: new JSLexical((basecolumn || 0) - indentUnit, 0, "block", 
false),
-        localVars: parserConfig.localVars,
-        context: parserConfig.localVars && {vars: parserConfig.localVars},
-        indented: 0
-      };
-      if (parserConfig.globalVars && typeof parserConfig.globalVars == 
"object")
-        state.globalVars = parserConfig.globalVars;
-      return state;
-    },
-
-    token: function(stream, state) {
-      if (stream.sol()) {
-        if (!state.lexical.hasOwnProperty("align"))
-          state.lexical.align = false;
-        state.indented = stream.indentation();
-        findFatArrow(stream, state);
-      }
-      if (state.tokenize != tokenComment && stream.eatSpace()) return null;
-      var style = state.tokenize(stream, state);
-      if (type == "comment") return style;
-      state.lastType = type == "operator" && (content == "++" || content == 
"--") ? "incdec" : type;
-      return parseJS(state, style, type, content, stream);
-    },
-
-    indent: function(state, textAfter) {
-      if (state.tokenize == tokenComment) return CodeMirror.Pass;
-      if (state.tokenize != tokenBase) return 0;
-      var firstChar = textAfter && textAfter.charAt(0), lexical = 
state.lexical;
-      // Kludge to prevent 'maybelse' from blocking lexical scope pops
-      if (!/^\s*else\b/.test(textAfter)) for (var i = state.cc.length - 1; i 
>= 0; --i) {
-        var c = state.cc[i];
-        if (c == poplex) lexical = lexical.prev;
-        else if (c != maybeelse) break;
-      }
-      if (lexical.type == "stat" && firstChar == "}") lexical = lexical.prev;
-      if (statementIndent && lexical.type == ")" && lexical.prev.type == 
"stat")
-        lexical = lexical.prev;
-      var type = lexical.type, closing = firstChar == type;
-
-      if (type == "vardef") return lexical.indented + (state.lastType == 
"operator" || state.lastType == "," ? lexical.info + 1 : 0);
-      else if (type == "form" && firstChar == "{") return lexical.indented;
-      else if (type == "form") return lexical.indented + indentUnit;
-      else if (type == "stat")
-        return lexical.indented + (state.lastType == "operator" || 
state.lastType == "," ? statementIndent || indentUnit : 0);
-      else if (lexical.info == "switch" && !closing && 
parserConfig.doubleIndentSwitch != false)
-        return lexical.indented + (/^(?:case|default)\b/.test(textAfter) ? 
indentUnit : 2 * indentUnit);
-      else if (lexical.align) return lexical.column + (closing ? 0 : 1);
-      else return lexical.indented + (closing ? 0 : indentUnit);
-    },
-
-    electricChars: ":{}",
-    blockCommentStart: jsonMode ? null : "/*",
-    blockCommentEnd: jsonMode ? null : "*/",
-    lineComment: jsonMode ? null : "//",
-    fold: "brace",
-
-    helperType: jsonMode ? "json" : "javascript",
-    jsonldMode: jsonldMode,
-    jsonMode: jsonMode
-  };
-});
-
-CodeMirror.registerHelper("wordChars", "javascript", /[\\w$]/);
-
-CodeMirror.defineMIME("text/javascript", "javascript");
-CodeMirror.defineMIME("text/ecmascript", "javascript");
-CodeMirror.defineMIME("application/javascript", "javascript");
-CodeMirror.defineMIME("application/x-javascript", "javascript");
-CodeMirror.defineMIME("application/ecmascript", "javascript");
-CodeMirror.defineMIME("application/json", {name: "javascript", json: true});
-CodeMirror.defineMIME("application/x-json", {name: "javascript", json: true});
-CodeMirror.defineMIME("application/ld+json", {name: "javascript", jsonld: 
true});
-CodeMirror.defineMIME("text/typescript", { name: "javascript", typescript: 
true });
-CodeMirror.defineMIME("application/typescript", { name: "javascript", 
typescript: true });
-
-});

http://git-wip-us.apache.org/repos/asf/jena/blob/2fb788d3/jena-fuseki2/src/main/webapp/js/lib/mode/sparql/sparql.js
----------------------------------------------------------------------
diff --git a/jena-fuseki2/src/main/webapp/js/lib/mode/sparql/sparql.js 
b/jena-fuseki2/src/main/webapp/js/lib/mode/sparql/sparql.js
deleted file mode 100644
index 64dbb61..0000000
--- a/jena-fuseki2/src/main/webapp/js/lib/mode/sparql/sparql.js
+++ /dev/null
@@ -1,160 +0,0 @@
-// CodeMirror, copyright (c) by Marijn Haverbeke and others
-// Distributed under an MIT license: http://codemirror.net/LICENSE
-
-(function(mod) {
-  if (typeof exports == "object" && typeof module == "object") // CommonJS
-    mod(require("../../lib/codemirror"));
-  else if (typeof define == "function" && define.amd) // AMD
-    define(["../../lib/codemirror"], mod);
-  else // Plain browser env
-    mod(CodeMirror);
-})(function(CodeMirror) {
-"use strict";
-
-CodeMirror.defineMode("sparql", function(config) {
-  var indentUnit = config.indentUnit;
-  var curPunc;
-
-  function wordRegexp(words) {
-    return new RegExp("^(?:" + words.join("|") + ")$", "i");
-  }
-  var ops = wordRegexp(["str", "lang", "langmatches", "datatype", "bound", 
"sameterm", "isiri", "isuri",
-                        "isblank", "isliteral", "a"]);
-  var keywords = wordRegexp(["base", "prefix", "select", "distinct", 
"reduced", "construct", "describe",
-                             "ask", "from", "named", "where", "order", 
"limit", "offset", "filter", "optional",
-                             "graph", "by", "asc", "desc", "as", "having", 
"undef", "values", "group",
-                             "minus", "in", "not", "service", "silent", 
"using", "insert", "delete", "union",
-                             "data", "copy", "to", "move", "add", "create", 
"drop", "clear", "load"]);
-  var operatorChars = /[*+\-<>=&|]/;
-
-  function tokenBase(stream, state) {
-    var ch = stream.next();
-    curPunc = null;
-    if (ch == "$" || ch == "?") {
-      stream.match(/^[\w\d]*/);
-      return "variable-2";
-    }
-    else if (ch == "<" && !stream.match(/^[\s\u00a0=]/, false)) {
-      stream.match(/^[^\s\u00a0>]*>?/);
-      return "atom";
-    }
-    else if (ch == "\"" || ch == "'") {
-      state.tokenize = tokenLiteral(ch);
-      return state.tokenize(stream, state);
-    }
-    else if (/[{}\(\),\.;\[\]]/.test(ch)) {
-      curPunc = ch;
-      return null;
-    }
-    else if (ch == "#") {
-      stream.skipToEnd();
-      return "comment";
-    }
-    else if (operatorChars.test(ch)) {
-      stream.eatWhile(operatorChars);
-      return null;
-    }
-    else if (ch == ":") {
-      stream.eatWhile(/[\w\d\._\-]/);
-      return "atom";
-    }
-    else {
-      stream.eatWhile(/[_\w\d]/);
-      if (stream.eat(":")) {
-        stream.eatWhile(/[\w\d_\-]/);
-        return "atom";
-      }
-      var word = stream.current();
-      if (ops.test(word))
-        return null;
-      else if (keywords.test(word))
-        return "keyword";
-      else
-        return "variable";
-    }
-  }
-
-  function tokenLiteral(quote) {
-    return function(stream, state) {
-      var escaped = false, ch;
-      while ((ch = stream.next()) != null) {
-        if (ch == quote && !escaped) {
-          state.tokenize = tokenBase;
-          break;
-        }
-        escaped = !escaped && ch == "\\";
-      }
-      return "string";
-    };
-  }
-
-  function pushContext(state, type, col) {
-    state.context = {prev: state.context, indent: state.indent, col: col, 
type: type};
-  }
-  function popContext(state) {
-    state.indent = state.context.indent;
-    state.context = state.context.prev;
-  }
-
-  return {
-    startState: function() {
-      return {tokenize: tokenBase,
-              context: null,
-              indent: 0,
-              col: 0};
-    },
-
-    token: function(stream, state) {
-      if (stream.sol()) {
-        if (state.context && state.context.align == null) state.context.align 
= false;
-        state.indent = stream.indentation();
-      }
-      if (stream.eatSpace()) return null;
-      var style = state.tokenize(stream, state);
-
-      if (style != "comment" && state.context && state.context.align == null 
&& state.context.type != "pattern") {
-        state.context.align = true;
-      }
-
-      if (curPunc == "(") pushContext(state, ")", stream.column());
-      else if (curPunc == "[") pushContext(state, "]", stream.column());
-      else if (curPunc == "{") pushContext(state, "}", stream.column());
-      else if (/[\]\}\)]/.test(curPunc)) {
-        while (state.context && state.context.type == "pattern") 
popContext(state);
-        if (state.context && curPunc == state.context.type) popContext(state);
-      }
-      else if (curPunc == "." && state.context && state.context.type == 
"pattern") popContext(state);
-      else if (/atom|string|variable/.test(style) && state.context) {
-        if (/[\}\]]/.test(state.context.type))
-          pushContext(state, "pattern", stream.column());
-        else if (state.context.type == "pattern" && !state.context.align) {
-          state.context.align = true;
-          state.context.col = stream.column();
-        }
-      }
-
-      return style;
-    },
-
-    indent: function(state, textAfter) {
-      var firstChar = textAfter && textAfter.charAt(0);
-      var context = state.context;
-      if (/[\]\}]/.test(firstChar))
-        while (context && context.type == "pattern") context = context.prev;
-
-      var closing = context && firstChar == context.type;
-      if (!context)
-        return 0;
-      else if (context.type == "pattern")
-        return context.col;
-      else if (context.align)
-        return context.col + (closing ? 0 : 1);
-      else
-        return context.indent + (closing ? 0 : indentUnit);
-    }
-  };
-});
-
-CodeMirror.defineMIME("application/x-sparql-query", "sparql");
-
-});

http://git-wip-us.apache.org/repos/asf/jena/blob/2fb788d3/jena-fuseki2/src/main/webapp/js/lib/mode/turtle/turtle.js
----------------------------------------------------------------------
diff --git a/jena-fuseki2/src/main/webapp/js/lib/mode/turtle/turtle.js 
b/jena-fuseki2/src/main/webapp/js/lib/mode/turtle/turtle.js
deleted file mode 100644
index a4727ed..0000000
--- a/jena-fuseki2/src/main/webapp/js/lib/mode/turtle/turtle.js
+++ /dev/null
@@ -1,160 +0,0 @@
-// CodeMirror, copyright (c) by Marijn Haverbeke and others
-// Distributed under an MIT license: http://codemirror.net/LICENSE
-
-(function(mod) {
-  if (typeof exports == "object" && typeof module == "object") // CommonJS
-    mod(require("../../lib/codemirror"));
-  else if (typeof define == "function" && define.amd) // AMD
-    define(["../../lib/codemirror"], mod);
-  else // Plain browser env
-    mod(CodeMirror);
-})(function(CodeMirror) {
-"use strict";
-
-CodeMirror.defineMode("turtle", function(config) {
-  var indentUnit = config.indentUnit;
-  var curPunc;
-
-  function wordRegexp(words) {
-    return new RegExp("^(?:" + words.join("|") + ")$", "i");
-  }
-  var ops = wordRegexp([]);
-  var keywords = wordRegexp(["@prefix", "@base", "a"]);
-  var operatorChars = /[*+\-<>=&|]/;
-
-  function tokenBase(stream, state) {
-    var ch = stream.next();
-    curPunc = null;
-    if (ch == "<" && !stream.match(/^[\s\u00a0=]/, false)) {
-      stream.match(/^[^\s\u00a0>]*>?/);
-      return "atom";
-    }
-    else if (ch == "\"" || ch == "'") {
-      state.tokenize = tokenLiteral(ch);
-      return state.tokenize(stream, state);
-    }
-    else if (/[{}\(\),\.;\[\]]/.test(ch)) {
-      curPunc = ch;
-      return null;
-    }
-    else if (ch == "#") {
-      stream.skipToEnd();
-      return "comment";
-    }
-    else if (operatorChars.test(ch)) {
-      stream.eatWhile(operatorChars);
-      return null;
-    }
-    else if (ch == ":") {
-          return "operator";
-        } else {
-      stream.eatWhile(/[_\w\d]/);
-      if(stream.peek() == ":") {
-        return "variable-3";
-      } else {
-             var word = stream.current();
-
-             if(keywords.test(word)) {
-                        return "meta";
-             }
-
-             if(ch >= "A" && ch <= "Z") {
-                    return "comment";
-                 } else {
-                        return "keyword";
-                 }
-      }
-      var word = stream.current();
-      if (ops.test(word))
-        return null;
-      else if (keywords.test(word))
-        return "meta";
-      else
-        return "variable";
-    }
-  }
-
-  function tokenLiteral(quote) {
-    return function(stream, state) {
-      var escaped = false, ch;
-      while ((ch = stream.next()) != null) {
-        if (ch == quote && !escaped) {
-          state.tokenize = tokenBase;
-          break;
-        }
-        escaped = !escaped && ch == "\\";
-      }
-      return "string";
-    };
-  }
-
-  function pushContext(state, type, col) {
-    state.context = {prev: state.context, indent: state.indent, col: col, 
type: type};
-  }
-  function popContext(state) {
-    state.indent = state.context.indent;
-    state.context = state.context.prev;
-  }
-
-  return {
-    startState: function() {
-      return {tokenize: tokenBase,
-              context: null,
-              indent: 0,
-              col: 0};
-    },
-
-    token: function(stream, state) {
-      if (stream.sol()) {
-        if (state.context && state.context.align == null) state.context.align 
= false;
-        state.indent = stream.indentation();
-      }
-      if (stream.eatSpace()) return null;
-      var style = state.tokenize(stream, state);
-
-      if (style != "comment" && state.context && state.context.align == null 
&& state.context.type != "pattern") {
-        state.context.align = true;
-      }
-
-      if (curPunc == "(") pushContext(state, ")", stream.column());
-      else if (curPunc == "[") pushContext(state, "]", stream.column());
-      else if (curPunc == "{") pushContext(state, "}", stream.column());
-      else if (/[\]\}\)]/.test(curPunc)) {
-        while (state.context && state.context.type == "pattern") 
popContext(state);
-        if (state.context && curPunc == state.context.type) popContext(state);
-      }
-      else if (curPunc == "." && state.context && state.context.type == 
"pattern") popContext(state);
-      else if (/atom|string|variable/.test(style) && state.context) {
-        if (/[\}\]]/.test(state.context.type))
-          pushContext(state, "pattern", stream.column());
-        else if (state.context.type == "pattern" && !state.context.align) {
-          state.context.align = true;
-          state.context.col = stream.column();
-        }
-      }
-
-      return style;
-    },
-
-    indent: function(state, textAfter) {
-      var firstChar = textAfter && textAfter.charAt(0);
-      var context = state.context;
-      if (/[\]\}]/.test(firstChar))
-        while (context && context.type == "pattern") context = context.prev;
-
-      var closing = context && firstChar == context.type;
-      if (!context)
-        return 0;
-      else if (context.type == "pattern")
-        return context.col;
-      else if (context.align)
-        return context.col + (closing ? 0 : 1);
-      else
-        return context.indent + (closing ? 0 : indentUnit);
-    }
-  };
-});
-
-CodeMirror.defineMIME("text/turtle", "turtle");
-
-});

http://git-wip-us.apache.org/repos/asf/jena/blob/2fb788d3/jena-fuseki2/src/main/webapp/js/lib/mode/xml/xml.js
----------------------------------------------------------------------
diff --git a/jena-fuseki2/src/main/webapp/js/lib/mode/xml/xml.js 
b/jena-fuseki2/src/main/webapp/js/lib/mode/xml/xml.js
deleted file mode 100644
index 786507d..0000000
--- a/jena-fuseki2/src/main/webapp/js/lib/mode/xml/xml.js
+++ /dev/null
@@ -1,384 +0,0 @@
-// CodeMirror, copyright (c) by Marijn Haverbeke and others
-// Distributed under an MIT license: http://codemirror.net/LICENSE
-
-(function(mod) {
-  if (typeof exports == "object" && typeof module == "object") // CommonJS
-    mod(require("../../lib/codemirror"));
-  else if (typeof define == "function" && define.amd) // AMD
-    define(["../../lib/codemirror"], mod);
-  else // Plain browser env
-    mod(CodeMirror);
-})(function(CodeMirror) {
-"use strict";
-
-CodeMirror.defineMode("xml", function(config, parserConfig) {
-  var indentUnit = config.indentUnit;
-  var multilineTagIndentFactor = parserConfig.multilineTagIndentFactor || 1;
-  var multilineTagIndentPastTag = parserConfig.multilineTagIndentPastTag;
-  if (multilineTagIndentPastTag == null) multilineTagIndentPastTag = true;
-
-  var Kludges = parserConfig.htmlMode ? {
-    autoSelfClosers: {'area': true, 'base': true, 'br': true, 'col': true, 
'command': true,
-                      'embed': true, 'frame': true, 'hr': true, 'img': true, 
'input': true,
-                      'keygen': true, 'link': true, 'meta': true, 'param': 
true, 'source': true,
-                      'track': true, 'wbr': true},
-    implicitlyClosed: {'dd': true, 'li': true, 'optgroup': true, 'option': 
true, 'p': true,
-                       'rp': true, 'rt': true, 'tbody': true, 'td': true, 
'tfoot': true,
-                       'th': true, 'tr': true},
-    contextGrabbers: {
-      'dd': {'dd': true, 'dt': true},
-      'dt': {'dd': true, 'dt': true},
-      'li': {'li': true},
-      'option': {'option': true, 'optgroup': true},
-      'optgroup': {'optgroup': true},
-      'p': {'address': true, 'article': true, 'aside': true, 'blockquote': 
true, 'dir': true,
-            'div': true, 'dl': true, 'fieldset': true, 'footer': true, 'form': 
true,
-            'h1': true, 'h2': true, 'h3': true, 'h4': true, 'h5': true, 'h6': 
true,
-            'header': true, 'hgroup': true, 'hr': true, 'menu': true, 'nav': 
true, 'ol': true,
-            'p': true, 'pre': true, 'section': true, 'table': true, 'ul': 
true},
-      'rp': {'rp': true, 'rt': true},
-      'rt': {'rp': true, 'rt': true},
-      'tbody': {'tbody': true, 'tfoot': true},
-      'td': {'td': true, 'th': true},
-      'tfoot': {'tbody': true},
-      'th': {'td': true, 'th': true},
-      'thead': {'tbody': true, 'tfoot': true},
-      'tr': {'tr': true}
-    },
-    doNotIndent: {"pre": true},
-    allowUnquoted: true,
-    allowMissing: true,
-    caseFold: true
-  } : {
-    autoSelfClosers: {},
-    implicitlyClosed: {},
-    contextGrabbers: {},
-    doNotIndent: {},
-    allowUnquoted: false,
-    allowMissing: false,
-    caseFold: false
-  };
-  var alignCDATA = parserConfig.alignCDATA;
-
-  // Return variables for tokenizers
-  var type, setStyle;
-
-  function inText(stream, state) {
-    function chain(parser) {
-      state.tokenize = parser;
-      return parser(stream, state);
-    }
-
-    var ch = stream.next();
-    if (ch == "<") {
-      if (stream.eat("!")) {
-        if (stream.eat("[")) {
-          if (stream.match("CDATA[")) return chain(inBlock("atom", "]]>"));
-          else return null;
-        } else if (stream.match("--")) {
-          return chain(inBlock("comment", "-->"));
-        } else if (stream.match("DOCTYPE", true, true)) {
-          stream.eatWhile(/[\w\._\-]/);
-          return chain(doctype(1));
-        } else {
-          return null;
-        }
-      } else if (stream.eat("?")) {
-        stream.eatWhile(/[\w\._\-]/);
-        state.tokenize = inBlock("meta", "?>");
-        return "meta";
-      } else {
-        type = stream.eat("/") ? "closeTag" : "openTag";
-        state.tokenize = inTag;
-        return "tag bracket";
-      }
-    } else if (ch == "&") {
-      var ok;
-      if (stream.eat("#")) {
-        if (stream.eat("x")) {
-          ok = stream.eatWhile(/[a-fA-F\d]/) && stream.eat(";");
-        } else {
-          ok = stream.eatWhile(/[\d]/) && stream.eat(";");
-        }
-      } else {
-        ok = stream.eatWhile(/[\w\.\-:]/) && stream.eat(";");
-      }
-      return ok ? "atom" : "error";
-    } else {
-      stream.eatWhile(/[^&<]/);
-      return null;
-    }
-  }
-
-  function inTag(stream, state) {
-    var ch = stream.next();
-    if (ch == ">" || (ch == "/" && stream.eat(">"))) {
-      state.tokenize = inText;
-      type = ch == ">" ? "endTag" : "selfcloseTag";
-      return "tag bracket";
-    } else if (ch == "=") {
-      type = "equals";
-      return null;
-    } else if (ch == "<") {
-      state.tokenize = inText;
-      state.state = baseState;
-      state.tagName = state.tagStart = null;
-      var next = state.tokenize(stream, state);
-      return next ? next + " tag error" : "tag error";
-    } else if (/[\'\"]/.test(ch)) {
-      state.tokenize = inAttribute(ch);
-      state.stringStartCol = stream.column();
-      return state.tokenize(stream, state);
-    } else {
-      stream.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/);
-      return "word";
-    }
-  }
-
-  function inAttribute(quote) {
-    var closure = function(stream, state) {
-      while (!stream.eol()) {
-        if (stream.next() == quote) {
-          state.tokenize = inTag;
-          break;
-        }
-      }
-      return "string";
-    };
-    closure.isInAttribute = true;
-    return closure;
-  }
-
-  function inBlock(style, terminator) {
-    return function(stream, state) {
-      while (!stream.eol()) {
-        if (stream.match(terminator)) {
-          state.tokenize = inText;
-          break;
-        }
-        stream.next();
-      }
-      return style;
-    };
-  }
-  function doctype(depth) {
-    return function(stream, state) {
-      var ch;
-      while ((ch = stream.next()) != null) {
-        if (ch == "<") {
-          state.tokenize = doctype(depth + 1);
-          return state.tokenize(stream, state);
-        } else if (ch == ">") {
-          if (depth == 1) {
-            state.tokenize = inText;
-            break;
-          } else {
-            state.tokenize = doctype(depth - 1);
-            return state.tokenize(stream, state);
-          }
-        }
-      }
-      return "meta";
-    };
-  }
-
-  function Context(state, tagName, startOfLine) {
-    this.prev = state.context;
-    this.tagName = tagName;
-    this.indent = state.indented;
-    this.startOfLine = startOfLine;
-    if (Kludges.doNotIndent.hasOwnProperty(tagName) || (state.context && 
state.context.noIndent))
-      this.noIndent = true;
-  }
-  function popContext(state) {
-    if (state.context) state.context = state.context.prev;
-  }
-  function maybePopContext(state, nextTagName) {
-    var parentTagName;
-    while (true) {
-      if (!state.context) {
-        return;
-      }
-      parentTagName = state.context.tagName;
-      if (!Kludges.contextGrabbers.hasOwnProperty(parentTagName) ||
-          !Kludges.contextGrabbers[parentTagName].hasOwnProperty(nextTagName)) 
{
-        return;
-      }
-      popContext(state);
-    }
-  }
-
-  function baseState(type, stream, state) {
-    if (type == "openTag") {
-      state.tagStart = stream.column();
-      return tagNameState;
-    } else if (type == "closeTag") {
-      return closeTagNameState;
-    } else {
-      return baseState;
-    }
-  }
-  function tagNameState(type, stream, state) {
-    if (type == "word") {
-      state.tagName = stream.current();
-      setStyle = "tag";
-      return attrState;
-    } else {
-      setStyle = "error";
-      return tagNameState;
-    }
-  }
-  function closeTagNameState(type, stream, state) {
-    if (type == "word") {
-      var tagName = stream.current();
-      if (state.context && state.context.tagName != tagName &&
-          Kludges.implicitlyClosed.hasOwnProperty(state.context.tagName))
-        popContext(state);
-      if (state.context && state.context.tagName == tagName) {
-        setStyle = "tag";
-        return closeState;
-      } else {
-        setStyle = "tag error";
-        return closeStateErr;
-      }
-    } else {
-      setStyle = "error";
-      return closeStateErr;
-    }
-  }
-
-  function closeState(type, _stream, state) {
-    if (type != "endTag") {
-      setStyle = "error";
-      return closeState;
-    }
-    popContext(state);
-    return baseState;
-  }
-  function closeStateErr(type, stream, state) {
-    setStyle = "error";
-    return closeState(type, stream, state);
-  }
-
-  function attrState(type, _stream, state) {
-    if (type == "word") {
-      setStyle = "attribute";
-      return attrEqState;
-    } else if (type == "endTag" || type == "selfcloseTag") {
-      var tagName = state.tagName, tagStart = state.tagStart;
-      state.tagName = state.tagStart = null;
-      if (type == "selfcloseTag" ||
-          Kludges.autoSelfClosers.hasOwnProperty(tagName)) {
-        maybePopContext(state, tagName);
-      } else {
-        maybePopContext(state, tagName);
-        state.context = new Context(state, tagName, tagStart == 
state.indented);
-      }
-      return baseState;
-    }
-    setStyle = "error";
-    return attrState;
-  }
-  function attrEqState(type, stream, state) {
-    if (type == "equals") return attrValueState;
-    if (!Kludges.allowMissing) setStyle = "error";
-    return attrState(type, stream, state);
-  }
-  function attrValueState(type, stream, state) {
-    if (type == "string") return attrContinuedState;
-    if (type == "word" && Kludges.allowUnquoted) {setStyle = "string"; return 
attrState;}
-    setStyle = "error";
-    return attrState(type, stream, state);
-  }
-  function attrContinuedState(type, stream, state) {
-    if (type == "string") return attrContinuedState;
-    return attrState(type, stream, state);
-  }
-
-  return {
-    startState: function() {
-      return {tokenize: inText,
-              state: baseState,
-              indented: 0,
-              tagName: null, tagStart: null,
-              context: null};
-    },
-
-    token: function(stream, state) {
-      if (!state.tagName && stream.sol())
-        state.indented = stream.indentation();
-
-      if (stream.eatSpace()) return null;
-      type = null;
-      var style = state.tokenize(stream, state);
-      if ((style || type) && style != "comment") {
-        setStyle = null;
-        state.state = state.state(type || style, stream, state);
-        if (setStyle)
-          style = setStyle == "error" ? style + " error" : setStyle;
-      }
-      return style;
-    },
-
-    indent: function(state, textAfter, fullLine) {
-      var context = state.context;
-      // Indent multi-line strings (e.g. css).
-      if (state.tokenize.isInAttribute) {
-        if (state.tagStart == state.indented)
-          return state.stringStartCol + 1;
-        else
-          return state.indented + indentUnit;
-      }
-      if (context && context.noIndent) return CodeMirror.Pass;
-      if (state.tokenize != inTag && state.tokenize != inText)
-        return fullLine ? fullLine.match(/^(\s*)/)[0].length : 0;
-      // Indent the starts of attribute names.
-      if (state.tagName) {
-        if (multilineTagIndentPastTag)
-          return state.tagStart + state.tagName.length + 2;
-        else
-          return state.tagStart + indentUnit * multilineTagIndentFactor;
-      }
-      if (alignCDATA && /<!\[CDATA\[/.test(textAfter)) return 0;
-      var tagAfter = textAfter && /^<(\/)?([\w_:\.-]*)/.exec(textAfter);
-      if (tagAfter && tagAfter[1]) { // Closing tag spotted
-        while (context) {
-          if (context.tagName == tagAfter[2]) {
-            context = context.prev;
-            break;
-          } else if (Kludges.implicitlyClosed.hasOwnProperty(context.tagName)) 
{
-            context = context.prev;
-          } else {
-            break;
-          }
-        }
-      } else if (tagAfter) { // Opening tag spotted
-        while (context) {
-          var grabbers = Kludges.contextGrabbers[context.tagName];
-          if (grabbers && grabbers.hasOwnProperty(tagAfter[2]))
-            context = context.prev;
-          else
-            break;
-        }
-      }
-      while (context && !context.startOfLine)
-        context = context.prev;
-      if (context) return context.indent + indentUnit;
-      else return 0;
-    },
-
-    electricInput: /<\/[\s\w:]+>$/,
-    blockCommentStart: "<!--",
-    blockCommentEnd: "-->",
-
-    configuration: parserConfig.htmlMode ? "html" : "xml",
-    helperType: parserConfig.htmlMode ? "html" : "xml"
-  };
-});
-
-CodeMirror.defineMIME("text/xml", "xml");
-CodeMirror.defineMIME("application/xml", "xml");
-if (!CodeMirror.mimeModes.hasOwnProperty("text/html"))
-  CodeMirror.defineMIME("text/html", {name: "xml", htmlMode: true});
-
-});

http://git-wip-us.apache.org/repos/asf/jena/blob/2fb788d3/jena-fuseki2/src/main/webapp/js/lib/plugins/text.js
----------------------------------------------------------------------
diff --git a/jena-fuseki2/src/main/webapp/js/lib/plugins/text.js 
b/jena-fuseki2/src/main/webapp/js/lib/plugins/text.js
deleted file mode 100644
index 1e4fc96..0000000
--- a/jena-fuseki2/src/main/webapp/js/lib/plugins/text.js
+++ /dev/null
@@ -1,386 +0,0 @@
-/**
- * @license RequireJS text 2.0.10 Copyright (c) 2010-2012, The Dojo Foundation 
All Rights Reserved.
- * Available via the MIT or new BSD license.
- * see: http://github.com/requirejs/text for details
- */
-/*jslint regexp: true */
-/*global require, XMLHttpRequest, ActiveXObject,
-  define, window, process, Packages,
-  java, location, Components, FileUtils */
-
-define(['module'], function (module) {
-    'use strict';
-
-    var text, fs, Cc, Ci, xpcIsWindows,
-        progIds = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 
'Msxml2.XMLHTTP.4.0'],
-        xmlRegExp = /^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im,
-        bodyRegExp = /<body[^>]*>\s*([\s\S]+)\s*<\/body>/im,
-        hasLocation = typeof location !== 'undefined' && location.href,
-        defaultProtocol = hasLocation && location.protocol && 
location.protocol.replace(/\:/, ''),
-        defaultHostName = hasLocation && location.hostname,
-        defaultPort = hasLocation && (location.port || undefined),
-        buildMap = {},
-        masterConfig = (module.config && module.config()) || {};
-
-    text = {
-        version: '2.0.10',
-
-        strip: function (content) {
-            //Strips <?xml ...?> declarations so that external SVG and XML
-            //documents can be added to a document without worry. Also, if the 
string
-            //is an HTML document, only the part inside the body tag is 
returned.
-            if (content) {
-                content = content.replace(xmlRegExp, "");
-                var matches = content.match(bodyRegExp);
-                if (matches) {
-                    content = matches[1];
-                }
-            } else {
-                content = "";
-            }
-            return content;
-        },
-
-        jsEscape: function (content) {
-            return content.replace(/(['\\])/g, '\\$1')
-                .replace(/[\f]/g, "\\f")
-                .replace(/[\b]/g, "\\b")
-                .replace(/[\n]/g, "\\n")
-                .replace(/[\t]/g, "\\t")
-                .replace(/[\r]/g, "\\r")
-                .replace(/[\u2028]/g, "\\u2028")
-                .replace(/[\u2029]/g, "\\u2029");
-        },
-
-        createXhr: masterConfig.createXhr || function () {
-            //Would love to dump the ActiveX crap in here. Need IE 6 to die 
first.
-            var xhr, i, progId;
-            if (typeof XMLHttpRequest !== "undefined") {
-                return new XMLHttpRequest();
-            } else if (typeof ActiveXObject !== "undefined") {
-                for (i = 0; i < 3; i += 1) {
-                    progId = progIds[i];
-                    try {
-                        xhr = new ActiveXObject(progId);
-                    } catch (e) {}
-
-                    if (xhr) {
-                        progIds = [progId];  // so faster next time
-                        break;
-                    }
-                }
-            }
-
-            return xhr;
-        },
-
-        /**
-         * Parses a resource name into its component parts. Resource names
-         * look like: module/name.ext!strip, where the !strip part is
-         * optional.
-         * @param {String} name the resource name
-         * @returns {Object} with properties "moduleName", "ext" and "strip"
-         * where strip is a boolean.
-         */
-        parseName: function (name) {
-            var modName, ext, temp,
-                strip = false,
-                index = name.indexOf("."),
-                isRelative = name.indexOf('./') === 0 ||
-                             name.indexOf('../') === 0;
-
-            if (index !== -1 && (!isRelative || index > 1)) {
-                modName = name.substring(0, index);
-                ext = name.substring(index + 1, name.length);
-            } else {
-                modName = name;
-            }
-
-            temp = ext || modName;
-            index = temp.indexOf("!");
-            if (index !== -1) {
-                //Pull off the strip arg.
-                strip = temp.substring(index + 1) === "strip";
-                temp = temp.substring(0, index);
-                if (ext) {
-                    ext = temp;
-                } else {
-                    modName = temp;
-                }
-            }
-
-            return {
-                moduleName: modName,
-                ext: ext,
-                strip: strip
-            };
-        },
-
-        xdRegExp: /^((\w+)\:)?\/\/([^\/\\]+)/,
-
-        /**
-         * Is an URL on another domain. Only works for browser use, returns
-         * false in non-browser environments. Only used to know if an
-         * optimized .js version of a text resource should be loaded
-         * instead.
-         * @param {String} url
-         * @returns Boolean
-         */
-        useXhr: function (url, protocol, hostname, port) {
-            var uProtocol, uHostName, uPort,
-                match = text.xdRegExp.exec(url);
-            if (!match) {
-                return true;
-            }
-            uProtocol = match[2];
-            uHostName = match[3];
-
-            uHostName = uHostName.split(':');
-            uPort = uHostName[1];
-            uHostName = uHostName[0];
-
-            return (!uProtocol || uProtocol === protocol) &&
-                   (!uHostName || uHostName.toLowerCase() === 
hostname.toLowerCase()) &&
-                   ((!uPort && !uHostName) || uPort === port);
-        },
-
-        finishLoad: function (name, strip, content, onLoad) {
-            content = strip ? text.strip(content) : content;
-            if (masterConfig.isBuild) {
-                buildMap[name] = content;
-            }
-            onLoad(content);
-        },
-
-        load: function (name, req, onLoad, config) {
-            //Name has format: some.module.filext!strip
-            //The strip part is optional.
-            //if strip is present, then that means only get the string contents
-            //inside a body tag in an HTML string. For XML/SVG content it means
-            //removing the <?xml ...?> declarations so the content can be 
inserted
-            //into the current doc without problems.
-
-            // Do not bother with the work if a build and text will
-            // not be inlined.
-            if (config.isBuild && !config.inlineText) {
-                onLoad();
-                return;
-            }
-
-            masterConfig.isBuild = config.isBuild;
-
-            var parsed = text.parseName(name),
-                nonStripName = parsed.moduleName +
-                    (parsed.ext ? '.' + parsed.ext : ''),
-                url = req.toUrl(nonStripName),
-                useXhr = (masterConfig.useXhr) ||
-                         text.useXhr;
-
-            // Do not load if it is an empty: url
-            if (url.indexOf('empty:') === 0) {
-                onLoad();
-                return;
-            }
-
-            //Load the text. Use XHR if possible and in a browser.
-            if (!hasLocation || useXhr(url, defaultProtocol, defaultHostName, 
defaultPort)) {
-                text.get(url, function (content) {
-                    text.finishLoad(name, parsed.strip, content, onLoad);
-                }, function (err) {
-                    if (onLoad.error) {
-                        onLoad.error(err);
-                    }
-                });
-            } else {
-                //Need to fetch the resource across domains. Assume
-                //the resource has been optimized into a JS module. Fetch
-                //by the module name + extension, but do not include the
-                //!strip part to avoid file system issues.
-                req([nonStripName], function (content) {
-                    text.finishLoad(parsed.moduleName + '.' + parsed.ext,
-                                    parsed.strip, content, onLoad);
-                });
-            }
-        },
-
-        write: function (pluginName, moduleName, write, config) {
-            if (buildMap.hasOwnProperty(moduleName)) {
-                var content = text.jsEscape(buildMap[moduleName]);
-                write.asModule(pluginName + "!" + moduleName,
-                               "define(function () { return '" +
-                                   content +
-                               "';});\n");
-            }
-        },
-
-        writeFile: function (pluginName, moduleName, req, write, config) {
-            var parsed = text.parseName(moduleName),
-                extPart = parsed.ext ? '.' + parsed.ext : '',
-                nonStripName = parsed.moduleName + extPart,
-                //Use a '.js' file name so that it indicates it is a
-                //script that can be loaded across domains.
-                fileName = req.toUrl(parsed.moduleName + extPart) + '.js';
-
-            //Leverage own load() method to load plugin value, but only
-            //write out values that do not have the strip argument,
-            //to avoid any potential issues with ! in file names.
-            text.load(nonStripName, req, function (value) {
-                //Use own write() method to construct full module value.
-                //But need to create shell that translates writeFile's
-                //write() to the right interface.
-                var textWrite = function (contents) {
-                    return write(fileName, contents);
-                };
-                textWrite.asModule = function (moduleName, contents) {
-                    return write.asModule(moduleName, fileName, contents);
-                };
-
-                text.write(pluginName, nonStripName, textWrite, config);
-            }, config);
-        }
-    };
-
-    if (masterConfig.env === 'node' || (!masterConfig.env &&
-            typeof process !== "undefined" &&
-            process.versions &&
-            !!process.versions.node &&
-            !process.versions['node-webkit'])) {
-        //Using special require.nodeRequire, something added by r.js.
-        fs = require.nodeRequire('fs');
-
-        text.get = function (url, callback, errback) {
-            try {
-                var file = fs.readFileSync(url, 'utf8');
-                //Remove BOM (Byte Mark Order) from utf8 files if it is there.
-                if (file.indexOf('\uFEFF') === 0) {
-                    file = file.substring(1);
-                }
-                callback(file);
-            } catch (e) {
-                errback(e);
-            }
-        };
-    } else if (masterConfig.env === 'xhr' || (!masterConfig.env &&
-            text.createXhr())) {
-        text.get = function (url, callback, errback, headers) {
-            var xhr = text.createXhr(), header;
-            xhr.open('GET', url, true);
-
-            //Allow plugins direct access to xhr headers
-            if (headers) {
-                for (header in headers) {
-                    if (headers.hasOwnProperty(header)) {
-                        xhr.setRequestHeader(header.toLowerCase(), 
headers[header]);
-                    }
-                }
-            }
-
-            //Allow overrides specified in config
-            if (masterConfig.onXhr) {
-                masterConfig.onXhr(xhr, url);
-            }
-
-            xhr.onreadystatechange = function (evt) {
-                var status, err;
-                //Do not explicitly handle errors, those should be
-                //visible via console output in the browser.
-                if (xhr.readyState === 4) {
-                    status = xhr.status;
-                    if (status > 399 && status < 600) {
-                        //An http 4xx or 5xx error. Signal an error.
-                        err = new Error(url + ' HTTP status: ' + status);
-                        err.xhr = xhr;
-                        errback(err);
-                    } else {
-                        callback(xhr.responseText);
-                    }
-
-                    if (masterConfig.onXhrComplete) {
-                        masterConfig.onXhrComplete(xhr, url);
-                    }
-                }
-            };
-            xhr.send(null);
-        };
-    } else if (masterConfig.env === 'rhino' || (!masterConfig.env &&
-            typeof Packages !== 'undefined' && typeof java !== 'undefined')) {
-        //Why Java, why is this so awkward?
-        text.get = function (url, callback) {
-            var stringBuffer, line,
-                encoding = "utf-8",
-                file = new java.io.File(url),
-                lineSeparator = java.lang.System.getProperty("line.separator"),
-                input = new java.io.BufferedReader(new 
java.io.InputStreamReader(new java.io.FileInputStream(file), encoding)),
-                content = '';
-            try {
-                stringBuffer = new java.lang.StringBuffer();
-                line = input.readLine();
-
-                // Byte Order Mark (BOM) - The Unicode Standard, version 3.0, 
page 324
-                // http://www.unicode.org/faq/utf_bom.html
-
-                // Note that when we use utf-8, the BOM should appear as "EF 
BB BF", but it doesn't due to this bug in the JDK:
-                // http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4508058
-                if (line && line.length() && line.charAt(0) === 0xfeff) {
-                    // Eat the BOM, since we've already found the encoding on 
this file,
-                    // and we plan to concatenating this buffer with others; 
the BOM should
-                    // only appear at the top of a file.
-                    line = line.substring(1);
-                }
-
-                if (line !== null) {
-                    stringBuffer.append(line);
-                }
-
-                while ((line = input.readLine()) !== null) {
-                    stringBuffer.append(lineSeparator);
-                    stringBuffer.append(line);
-                }
-                //Make sure we return a JavaScript string and not a Java 
string.
-                content = String(stringBuffer.toString()); //String
-            } finally {
-                input.close();
-            }
-            callback(content);
-        };
-    } else if (masterConfig.env === 'xpconnect' || (!masterConfig.env &&
-            typeof Components !== 'undefined' && Components.classes &&
-            Components.interfaces)) {
-        //Avert your gaze!
-        Cc = Components.classes,
-        Ci = Components.interfaces;
-        Components.utils['import']('resource://gre/modules/FileUtils.jsm');
-        xpcIsWindows = ('@mozilla.org/windows-registry-key;1' in Cc);
-
-        text.get = function (url, callback) {
-            var inStream, convertStream, fileObj,
-                readData = {};
-
-            if (xpcIsWindows) {
-                url = url.replace(/\//g, '\\');
-            }
-
-            fileObj = new FileUtils.File(url);
-
-            //XPCOM, you so crazy
-            try {
-                inStream = Cc['@mozilla.org/network/file-input-stream;1']
-                           .createInstance(Ci.nsIFileInputStream);
-                inStream.init(fileObj, 1, 0, false);
-
-                convertStream = 
Cc['@mozilla.org/intl/converter-input-stream;1']
-                                .createInstance(Ci.nsIConverterInputStream);
-                convertStream.init(inStream, "utf-8", inStream.available(),
-                Ci.nsIConverterInputStream.DEFAULT_REPLACEMENT_CHARACTER);
-
-                convertStream.readString(inStream.available(), readData);
-                convertStream.close();
-                inStream.close();
-                callback(readData.value);
-            } catch (e) {
-                throw new Error((fileObj && fileObj.path || '') + ': ' + e);
-            }
-        };
-    }
-    return text;
-});

http://git-wip-us.apache.org/repos/asf/jena/blob/2fb788d3/jena-fuseki2/src/main/webapp/js/lib/qonsole.js
----------------------------------------------------------------------
diff --git a/jena-fuseki2/src/main/webapp/js/lib/qonsole.js 
b/jena-fuseki2/src/main/webapp/js/lib/qonsole.js
deleted file mode 100644
index 20238ac..0000000
--- a/jena-fuseki2/src/main/webapp/js/lib/qonsole.js
+++ /dev/null
@@ -1,582 +0,0 @@
-/* Copyright (c) 2012-2013 Epimorphics Ltd. Released under Apache License 2.0 
http://www.apache.org/licenses/ */
-
-var qonsole = function( CodeMirror ) {
-  "use strict";
-
-  /* JsLint */
-  /*global sprintf, testCSS, loadConfig, bindEvents, $, onConfigLoaded, 
updatePrefixDeclaration, _,
-    showCurrentQuery, setCurrentEndpoint, setCurrentFormat, elementVisible, 
runQuery, onLookupPrefix,
-    startTimingResults, onAddPrefix, initQuery, CodeMirror, onQuerySuccess,
-    onQueryFail, ajaxDataType, resetResults, XMLSerializer,
-    showTableResult, showCodeMirrorResult
-   */
-
-  /* --- module vars --- */
-  /** The loaded configuration */
-  var _config = {};
-  var _query_editor = null;
-  var _startTime = 0;
-  var _outstandingQueries = 0;
-
-  /* --- utils --- */
-
-  /** Return the string representation of the given XML value, which may be a 
string or a DOM object */
-  var xmlToString = function( xmlData ) {
-    var xs = _.isString( xmlData ) ? xmlData : null;
-
-    if (!xs && window.ActiveXObject && xmlData.xml) {
-      xs = xmlData.xml;
-    }
-
-    if (!xs) {
-      xs = new XMLSerializer().serializeToString( xmlData );
-    }
-
-    return xs;
-  };
-
-  /** Browser sniffing */
-  var isOpera = function() {return !!(window.opera && window.opera.version);}; 
 // Opera 8.0+
-  var isFirefox = function() {return testCSS('MozBoxSizing');};                
 // FF 0.8+
-  var isSafari = function() {return 
Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 
0;};    // At least Safari 3+: "[object HTMLElementConstructor]"
-  var isChrome = function() {return !isSafari() && 
testCSS('WebkitTransform');};  // Chrome 1+
-  var isIE = function() {return /*@cc_on!@*/false || testCSS('msTransform');}; 
 // At least IE6
-
-  var testCSS =  function(prop) {
-    return document.documentElement.style.hasOwnProperty( prop );
-  };
-
-  /* --- application code --- */
-
-  /** Initialisation - only called once */
-  var init = function( config ) {
-    loadConfig( config );
-    bindEvents();
-
-    $.ajaxSetup( {
-      converters: {"script json": true}
-    } );
-  };
-
-  /** Load the configuration definition */
-  var loadConfig = function( config ) {
-    if (config.configURL) {
-      $.getJSON( config.configURL, onConfigLoaded );
-    }
-    else {
-      onConfigLoaded( config );
-    }
-  };
-
-  /** Return the current config object */
-  var config = function() {
-    return _config;
-  };
-
-  /** Bind events that we want to manage */
-  var bindEvents = function() {
-    $("ul.prefixes").on( "click", "a.btn", function( e ) {
-      var elem = $(e.currentTarget);
-      updatePrefixDeclaration( $.trim( elem.text() ), elem.data( "uri" ), 
!elem.is(".active") );
-    } );
-    $("ul.examples").on( "click", "a", function( e ) {
-      var elem = $(e.currentTarget);
-      $("ul.examples a").removeClass( "active" );
-      _.defer( function() {showCurrentQuery();} );
-    } );
-    $(".endpoints").on( "click", "a", function( e ) {
-      var elem = $(e.currentTarget);
-      setCurrentEndpoint( $.trim( elem.text() ) );
-    } );
-    $("ul.formats").on( "click", "a", function( e ) {
-      var elem = $(e.currentTarget);
-      setCurrentFormat( elem.data( "value" ), $.trim( elem.text() ) );
-    } );
-
-    $("a.run-query").on( "click", runQuery );
-
-    $(document)
-      .ajaxStart(function() {
-        elementVisible( ".loadingSpinner", true );
-        startTimingResults();
-        disableSubmit( true );
-      })
-      .ajaxStop(function() {
-        elementVisible( ".loadingSpinner", false );
-        disableSubmit( false );
-      });
-
-    // dialogue events
-    $("#prefixEditor").on( "click", "#lookupPrefix", onLookupPrefix )
-                      .on( "keyup", "#inputPrefix", function( e ) {
-                        var elem = $(e.currentTarget);
-                        $("#lookupPrefix span").text( sprintf( "'%s'", 
elem.val() ));
-                      } );
-    $("#addPrefix").on( "click", onAddPrefix );
-  };
-
-  /** List the current defined prefixes from the config */
-  var initPrefixes = function( config ) {
-    var prefixAdd = $("ul.prefixes li:last" );
-    $.each( config.prefixes, function( key, value ) {
-      var html = sprintf( "<li><a class='btn btn-custom2 btn-sm active' 
data-toggle='button' data-uri='%s'>%s</a></li>", value, key );
-      $(html).insertBefore( prefixAdd);
-    } );
-  };
-
-  /** List the example queries from the config */
-  var initExamples = function( config ) {
-    var examples = $("ul.examples");
-
-    examples.empty();
-
-    $.each( config.queries, function( i, queryDesc ) {
-      var html = sprintf( "<li><a class='btn btn-custom2 btn-sm' 
data-toggle='button'>%s</a></li>",
-                          queryDesc.name );
-      examples.append( html );
-
-      if (queryDesc.queryURL) {
-        loadRemoteQuery( queryDesc.name, queryDesc.queryURL );
-      }
-    } );
-
-    setFirstQueryActive();
-  };
-
-  /** Set the default active query */
-  var setFirstQueryActive = function() {
-    if (_outstandingQueries === 0) {
-      $("ul.examples").find("a").first().addClass( "active" );
-      showCurrentQuery();
-    }
-  };
-
-  /** Load a remote query */
-  var loadRemoteQuery = function( name, url ) {
-    _outstandingQueries++;
-
-    var options = {
-      success: function( data, xhr ) {
-        namedExample( name ).query = data;
-
-        _outstandingQueries--;
-        setFirstQueryActive();
-      },
-      failure: function() {
-        namedExample( name ).query = "Not found: " + url;
-
-        _outstandingQueries--;
-        setFirstQueryActive();
-      },
-      dataType: "text"
-    };
-
-    $.ajax( url, options );
-  };
-
-  /** Set up the drop-down list of end-points */
-  var initEndpoints = function( config ) {
-    var endpoints = $("ul.endpoints");
-    endpoints.empty();
-
-    if (config.endpoints) {
-      $.each( config.endpoints, function( key, url ) {
-        var html = sprintf( "<li role='presentation'><a role='menuitem' 
tabindex='-1' href='#'>%s</a></li>",
-                            url );
-        endpoints.append( html );
-      } );
-
-      setCurrentEndpoint( config.endpoints["default"] );
-    }
-  };
-
-  /** Successfully loaded the configuration */
-  var onConfigLoaded = function( config, status, jqXHR ) {
-    _config = config;
-    initPrefixes( config );
-    initExamples( config );
-    initEndpoints( config );
-  };
-
-  /** Set the current endpoint text */
-  var setCurrentEndpoint = function( url ) {
-    $("[id=sparqlEndpoint]").val( url );
-  };
-
-  /** Return the current endpoint text */
-  var currentEndpoint = function( url ) {
-    return $("[id=sparqlEndpoint]").val();
-  };
-
-  /** Return the query definition with the given name */
-  var namedExample = function( name ) {
-    return _.find( config().queries, function( ex ) {return ex.name === name;} 
);
-  };
-
-  /** Return the currently active named example */
-  var currentNamedExample = function() {
-    return namedExample( $.trim( $("ul.examples a.active").first().text() ) );
-  };
-
-  /** Return the DOM node representing the query editor */
-  var queryEditor = function() {
-    if (!_query_editor) {
-      _query_editor = new CodeMirror( $("#query-edit-cm").get(0), {
-        lineNumbers: true,
-        mode: "sparql"
-      } );
-    }
-    return _query_editor;
-  };
-
-  /** Return the current value of the query edit area */
-  var currentQueryText = function() {
-    return queryEditor().getValue();
-  };
-
-  /** Set the value of the query edit area */
-  var setCurrentQueryText = function( text ) {
-    queryEditor().setValue( text );
-  };
-
-  /** Display the given query, with the currently defined prefixes */
-  var showCurrentQuery = function() {
-    var query = currentNamedExample();
-    displayQuery( query );
-  };
-
-  /** Display the given query */
-  var displayQuery = function( query ) {
-    if (query) {
-      var queryBody = query.query ? query.query : query;
-      var prefixes = assemblePrefixes( queryBody, query.prefixes )
-
-      var q = sprintf( "%s\n\n%s", renderPrefixes( prefixes ), stripLeader( 
queryBody ) );
-      setCurrentQueryText( q );
-
-      syncPrefixButtonState( prefixes );
-    }
-  };
-
-  /** Return the currenty selected output format */
-  var selectedFormat = function() {
-    return $("a.display-format").data( "value" );
-  };
-
-  /** Update the user's format selection */
-  var setCurrentFormat = function( val, label ) {
-    $("a.display-format").data( "value", val ).find("span").text( label );
-  };
-
-  /** Assemble the set of prefixes to use when initially rendering the query */
-  var assemblePrefixes = function( queryBody, queryDefinitionPrefixes ) {
-    if (queryBody.match( /^prefix/ )) {
-      // strategy 1: there are prefixes encoded in the query body
-      return assemblePrefixesFromQuery( queryBody );
-    }
-    else if (queryDefinitionPrefixes) {
-      // strategy 2: prefixes given in query def
-      return _.map( queryDefinitionPrefixes, function( prefixName ) {
-        return {name: prefixName, uri: config().prefixes[prefixName] };
-      } );
-    }
-    else {
-      return assembleCurrentPrefixes();
-    }
-  };
-
-  /** Return an array comprising the currently selected prefixes */
-  var assembleCurrentPrefixes = function() {
-    var l = $("ul.prefixes a.active" ).map( function( i, elt ) {
-      return {name: $.trim( $(elt).text() ),
-              uri: $(elt).data( "uri" )};
-    } );
-    return $.makeArray(l);
-  };
-
-  /** Return an array of the prefixes parsed from the given query body */
-  var assemblePrefixesFromQuery = function( queryBody ) {
-    var leader = queryLeader( queryBody )[0].trim();
-    var pairs = _.compact( leader.split( "prefix" ) );
-    var prefixes = [];
-
-    _.each( pairs, function( pair ) {
-      var m = pair.match( "^\\s*(\\w+)\\s*:\\s*<([^>]*)>\\s*$" );
-      prefixes.push( {name: m[1], uri: m[2]} );
-    } );
-
-    return prefixes;
-  };
-
-  /** Ensure that the prefix buttons are in sync with the prefixes used in a 
new query */
-  var syncPrefixButtonState = function( prefixes ) {
-    $("ul.prefixes a" ).each( function( i, elt ) {
-      var name = $.trim( $(elt).text() );
-
-      if (_.find( prefixes, function(p) {return p.name === name;} )) {
-        $(elt).addClass( "active" );
-      }
-      else {
-        $(elt).removeClass( "active" );
-      }
-    } );
-  };
-
-  /** Split a query into leader (prefixes and leading blank lines) and body */
-  var queryLeader = function( query ) {
-    var pattern = /(prefix [^>]+>[\s\n]*)/;
-    var queryBody = query;
-    var i = 0;
-    var m = queryBody.match( pattern );
-
-    while (m) {
-      i += m[1].length;
-      queryBody = queryBody.substring( i );
-      m = queryBody.match( pattern );
-    }
-
-    return [query.substring( 0, query.length - queryBody.length), queryBody];
-  };
-
-  /** Remove the query leader */
-  var stripLeader = function( query ) {
-    return queryLeader( query )[1];
-  };
-
-  /** Return a string comprising the given prefixes */
-  var renderPrefixes = function( prefixes ) {
-    return _.map( prefixes, function( p ) {
-      return sprintf( "prefix %s: <%s>", p.name, p.uri );
-    } ).join( "\n" );
-  };
-
-  /** Add or remove the given prefix declaration from the current query */
-  var updatePrefixDeclaration = function( prefix, uri, added ) {
-    var query = currentQueryText();
-    var lines = query.split( "\n" );
-    var pattern = new RegExp( "^prefix +" + prefix + ":");
-    var found = false;
-    var i;
-
-    for (i = 0; !found && i < lines.length; i++) {
-      found = lines[i].match( pattern );
-      if (found && !added) {
-        lines.splice( i, 1 );
-      }
-    }
-
-    if (!found && added) {
-      for (i = 0; i < lines.length; i++) {
-        if (!lines[i].match( /^prefix/ )) {
-          lines.splice( i, 0, sprintf( "prefix %s: <%s>", prefix, uri ) );
-          break;
-        }
-      }
-    }
-
-    setCurrentQueryText( lines.join( "\n" ) );
-  };
-
-  /** Return the sparql service we're querying against */
-  var sparqlService = function() {
-    var service = config().service;
-    if (!service) {
-      // default is the remote service
-      config().service = new RemoteSparqlService();
-      service = config().service;
-    }
-
-    return service;
-  };
-
-  /** Perform the query */
-  var runQuery = function( e ) {
-    e.preventDefault();
-    resetResults();
-
-    var format = selectedFormat();
-    var query = currentQueryText();
-
-    var options = {
-      url: currentEndpoint(),
-      format: format,
-      success: function( data ) {
-        onQuerySuccess( data, format );
-      },
-      error: onQueryFail
-    };
-
-    sparqlService().execute( query, options );
-  };
-
-
-  /** Hide or reveal an element using Bootstrap .hidden class */
-  var elementVisible = function( elem, visible ) {
-    if (visible) {
-      $(elem).removeClass( "hidden" );
-    }
-    else {
-      $(elem).addClass( "hidden" );
-    }
-  };
-
-  /** Prepare to show query time taken */
-  var startTimingResults = function() {
-    _startTime = new Date().getTime();
-    elementVisible( ".timeTaken" );
-  };
-
-  /** Show results count and time */
-  var showResultsTimeAndCount = function( count ) {
-    var duration = new Date().getTime() - _startTime;
-    var ms = duration % 1000;
-    duration = Math.floor( duration / 1000 );
-    var s = duration % 60;
-    var m = Math.floor( duration / 60 );
-    var suffix = (count !== 1) ? "s" : "";
-
-    var html = sprintf( "%s result%s in %d min %d.%03d s", count, suffix, m, 
s, ms );
-
-    $(".timeTaken").html( html );
-    elementVisible( ".timeTaken", true );
-  };
-
-  /** Reset the results display */
-  var resetResults = function() {
-    $("#results").empty();
-    elementVisible( ".timeTaken", false );
-  };
-
-  /** Report query failure */
-  var onQueryFail = function( jqXHR, textStatus, errorThrown ) {
-    showResultsTimeAndCount( 0 );
-    var text = jqXHR.valueOf().responseText || sprintf( "Sorry, that didn't 
work because: '%s'", jqXHR.valueOf().statusText );
-    $("#results").html( sprintf( "<pre class='text-danger'>%s</pre>", 
_.escape(text) ) );
-  };
-
-  /** Query succeeded - use display type to determine how to render */
-  var onQuerySuccess = function( data, format ) {
-    var options = data.asFormat( format, config() );
-
-    if (options && !options.table) {
-      showCodeMirrorResult( options );
-    }
-    else if (options && options.table) {
-      showTableResult( options );
-    }
-  };
-
-  /** Show the given text value in a CodeMirror block with the given language 
mode */
-  var showCodeMirrorResult = function( options ) {
-    showResultsTimeAndCount( options.count );
-
-    var editor = new CodeMirror( $("#results").get(0), {
-      value: options.data,
-      mode: options.mime,
-      lineNumbers: true,
-      extraKeys: {"Ctrl-Q": function(cm){ cm.foldCode(cm.getCursor()); }},
-      gutters: ["CodeMirror-linenumbers", "CodeMirror-foldgutter"],
-      foldGutter: true,
-      readOnly: true
-    } );
-  };
-
-  /** Show the result using jQuery dataTables */
-  var showTableResult = function( options ) {
-    showResultsTimeAndCount( options.count );
-
-    options.oLanguage = {
-      "sEmptyTable": "Query did not return any results."
-    };
-
-    $("#results").empty()
-                 .append( '<div class="auto-overflow"></div>')
-                 .children()
-                 .append( '<table cellpadding="0" cellspacing="0" border="0" 
class="display"></table>' )
-                 .children()
-                 .dataTable( options );
-  };
-
-  /** Lookup a prefix on prefix.cc */
-  var onLookupPrefix = function( e ) {
-    e.preventDefault();
-
-    var prefix = $.trim( $("#inputPrefix").val() );
-    $("#inputURI").val("");
-
-    if (prefix) {
-      $.getJSON( sprintf( "http://prefix.cc/%s.file.json";, prefix ),
-                function( data ) {
-                  $("#inputURI").val( data[prefix] );
-                }
-            );
-    }
-  };
-
-  /** User wishes to add the prefix */
-  var onAddPrefix = function( e ) {
-    var prefix = $.trim( $("#inputPrefix").val() );
-    var uri = $.trim( $("#inputURI").val() );
-
-    if (uri) {
-      _config.prefixes[prefix] = uri;
-    }
-    else {
-      delete _config.prefixes[prefix];
-    }
-
-    // remember the state of current user selections, then re-create the list
-    var selections = {};
-    $("ul.prefixes a.btn").each( function( i, a ) {selections[$(a).text()] = 
$(a).hasClass("active");} );
-
-    $("ul.prefixes li[class!=keep]").remove();
-    initPrefixes( _config );
-
-    // restore selections state
-    $.each( selections, function( k, v ) {
-      if (!v) {
-        $(sprintf("ul.prefixes a.btn:contains('%s')", 
k)).removeClass("active");
-      }
-    } );
-
-    var lines = currentQueryText().split("\n");
-    lines = _.reject( lines, function( line ) {return line.match( /^prefix/ 
);} );
-    var q = sprintf( "%s\n%s", renderPrefixes( assembleCurrentPrefixes() ), 
lines.join( "\n" ) );
-    setCurrentQueryText( q );
-  };
-
-  /** Disable or enable the button to submit a query */
-  var disableSubmit = function( disable ) {
-    var elem = $("a.run-query");
-    elem.prop( 'disabled', disable );
-    if (disable) {
-      elem.addClass( "disabled" );
-    }
-    else {
-      elem.removeClass( "disabled" );
-    }
-  };
-
-  return {
-    init: init
-  };
-}(
-  function() {
-    if (typeof CodeMirror != "undefined") {
-      return CodeMirror;
-    }
-    else if (typeof define == "function" && define.amd) {
-      // AMD
-      return require( "lib/codemirror" );
-    }
-  }(),
-  function() {
-    if (typeof RemoteSparqlService != "undefined") {
-      return RemoteSparqlService;
-    }
-    else if (typeof define == "function" && define.amd) {
-      // AMD
-      return require( "remote-sparql-service" );
-    }
-  }()
-);

http://git-wip-us.apache.org/repos/asf/jena/blob/2fb788d3/jena-fuseki2/src/main/webapp/js/lib/refresh.sh
----------------------------------------------------------------------
diff --git a/jena-fuseki2/src/main/webapp/js/lib/refresh.sh 
b/jena-fuseki2/src/main/webapp/js/lib/refresh.sh
deleted file mode 100644
index 06239b3..0000000
--- a/jena-fuseki2/src/main/webapp/js/lib/refresh.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-mkdir -p addon/fold
-mkdir -p mode/javascript
-mkdir -p mode/xml
-mkdir -p mode/turtle
-mkdir -p mode/sparql
-
-cp ~/dev/js/codemirror-4.3/lib/codemirror.js .
-cp ~/dev/js/codemirror-4.3/lib/codemirror.css ../../css
-cp ~/dev/js/codemirror-4.3/addon/fold/brace-fold.js ./addon/fold
-cp ~/dev/js/codemirror-4.3/addon/fold/comment-fold.js ./addon/fold
-cp ~/dev/js/codemirror-4.3/addon/fold/foldcode.js ./addon/fold
-cp ~/dev/js/codemirror-4.3/addon/fold/foldgutter.js ./addon/fold
-cp ~/dev/js/codemirror-4.3/addon/fold/xml-fold.js ./addon/fold
-cp ~/dev/js/codemirror-4.3/addon/fold/foldgutter.css ../../css
-
-cp ~/dev/js/codemirror-4.3/mode/javascript/javascript.js ./mode/javascript
-cp ~/dev/js/codemirror-4.3/mode/sparql/sparql.js ./mode/sparql
-cp ~/dev/js/codemirror-4.3/mode/xml/xml.js ./mode/xml
-cp ~/dev/js/codemirror-4.3/mode/turtle/turtle.js ./mode/turtle
-
-

Reply via email to