http://git-wip-us.apache.org/repos/asf/struts/blob/7a350b02/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/angular-message-format.js
----------------------------------------------------------------------
diff --git 
a/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/angular-message-format.js
 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/angular-message-format.js
deleted file mode 100644
index 0c3c6c1..0000000
--- 
a/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/angular-message-format.js
+++ /dev/null
@@ -1,980 +0,0 @@
-/**
- * @license AngularJS v1.5.0
- * (c) 2010-2016 Google, Inc. http://angularjs.org
- * License: MIT
- */
-(function(window, angular, undefined) {'use strict';
-
-// NOTE: ADVANCED_OPTIMIZATIONS mode.
-//
-// This file is compiled with Closure compiler's ADVANCED_OPTIMIZATIONS flag! 
Be wary of using
-// constructs incompatible with that mode.
-
-var $interpolateMinErr = window['angular']['$interpolateMinErr'];
-
-var noop = window['angular']['noop'],
-    isFunction = window['angular']['isFunction'],
-    toJson = window['angular']['toJson'];
-
-function stringify(value) {
-  if (value == null /* null/undefined */) { return ''; }
-  switch (typeof value) {
-    case 'string':     return value;
-    case 'number':     return '' + value;
-    default:           return toJson(value);
-  }
-}
-
-// Convert an index into the string into line/column for use in error messages
-// As such, this doesn't have to be efficient.
-function indexToLineAndColumn(text, index) {
-  var lines = text.split(/\n/g);
-  for (var i=0; i < lines.length; i++) {
-    var line=lines[i];
-    if (index >= line.length) {
-      index -= line.length;
-    } else {
-      return { line: i + 1, column: index + 1 };
-    }
-  }
-}
-var PARSE_CACHE_FOR_TEXT_LITERALS = Object.create(null);
-
-function parseTextLiteral(text) {
-  var cachedFn = PARSE_CACHE_FOR_TEXT_LITERALS[text];
-  if (cachedFn != null) {
-    return cachedFn;
-  }
-  function parsedFn(context) { return text; }
-  parsedFn['$$watchDelegate'] = function watchDelegate(scope, listener, 
objectEquality) {
-    var unwatch = scope['$watch'](noop,
-        function textLiteralWatcher() {
-          if (isFunction(listener)) { listener.call(null, text, text, scope); }
-          unwatch();
-        },
-        objectEquality);
-    return unwatch;
-  };
-  PARSE_CACHE_FOR_TEXT_LITERALS[text] = parsedFn;
-  parsedFn['exp'] = text; // Needed to pretend to be $interpolate for tests 
copied from interpolateSpec.js
-  parsedFn['expressions'] = []; // Require this to call 
$compile.$$addBindingInfo() which allows Protractor to find elements by binding.
-  return parsedFn;
-}
-
-function subtractOffset(expressionFn, offset) {
-  if (offset === 0) {
-    return expressionFn;
-  }
-  function minusOffset(value) {
-    return (value == void 0) ? value : value - offset;
-  }
-  function parsedFn(context) { return minusOffset(expressionFn(context)); }
-  var unwatch;
-  parsedFn['$$watchDelegate'] = function watchDelegate(scope, listener, 
objectEquality) {
-    unwatch = scope['$watch'](expressionFn,
-        function pluralExpressionWatchListener(newValue, oldValue) {
-          if (isFunction(listener)) { listener.call(null, 
minusOffset(newValue), minusOffset(oldValue), scope); }
-        },
-        objectEquality);
-    return unwatch;
-  };
-  return parsedFn;
-}
-
-// NOTE: ADVANCED_OPTIMIZATIONS mode.
-//
-// This file is compiled with Closure compiler's ADVANCED_OPTIMIZATIONS flag! 
Be wary of using
-// constructs incompatible with that mode.
-
-/* global $interpolateMinErr: false */
-/* global isFunction: false */
-/* global noop: false */
-
-/**
- * @constructor
- * @private
- */
-function MessageSelectorBase(expressionFn, choices) {
-  var self = this;
-  this.expressionFn = expressionFn;
-  this.choices = choices;
-  if (choices["other"] === void 0) {
-    throw $interpolateMinErr('reqother', '“other” is a required option.');
-  }
-  this.parsedFn = function(context) { return self.getResult(context); };
-  this.parsedFn['$$watchDelegate'] = function $$watchDelegate(scope, listener, 
objectEquality) {
-    return self.watchDelegate(scope, listener, objectEquality);
-  };
-  this.parsedFn['exp'] = expressionFn['exp'];
-  this.parsedFn['expressions'] = expressionFn['expressions'];
-}
-
-MessageSelectorBase.prototype.getMessageFn = function getMessageFn(value) {
-  return this.choices[this.categorizeValue(value)];
-};
-
-MessageSelectorBase.prototype.getResult = function getResult(context) {
-  return this.getMessageFn(this.expressionFn(context))(context);
-};
-
-MessageSelectorBase.prototype.watchDelegate = function watchDelegate(scope, 
listener, objectEquality) {
-  var watchers = new MessageSelectorWatchers(this, scope, listener, 
objectEquality);
-  return function() { watchers.cancelWatch(); };
-};
-
-/**
- * @constructor
- * @private
- */
-function MessageSelectorWatchers(msgSelector, scope, listener, objectEquality) 
{
-  var self = this;
-  this.scope = scope;
-  this.msgSelector = msgSelector;
-  this.listener = listener;
-  this.objectEquality = objectEquality;
-  this.lastMessage = void 0;
-  this.messageFnWatcher = noop;
-  var expressionFnListener = function(newValue, oldValue) { return 
self.expressionFnListener(newValue, oldValue); };
-  this.expressionFnWatcher = scope['$watch'](msgSelector.expressionFn, 
expressionFnListener, objectEquality);
-}
-
-MessageSelectorWatchers.prototype.expressionFnListener = function 
expressionFnListener(newValue, oldValue) {
-  var self = this;
-  this.messageFnWatcher();
-  var messageFnListener = function(newMessage, oldMessage) { return 
self.messageFnListener(newMessage, oldMessage); };
-  var messageFn = this.msgSelector.getMessageFn(newValue);
-  this.messageFnWatcher = this.scope['$watch'](messageFn, messageFnListener, 
this.objectEquality);
-};
-
-MessageSelectorWatchers.prototype.messageFnListener = function 
messageFnListener(newMessage, oldMessage) {
-  if (isFunction(this.listener)) {
-    this.listener.call(null, newMessage, newMessage === oldMessage ? 
newMessage : this.lastMessage, this.scope);
-  }
-  this.lastMessage = newMessage;
-};
-
-MessageSelectorWatchers.prototype.cancelWatch = function cancelWatch() {
-  this.expressionFnWatcher();
-  this.messageFnWatcher();
-};
-
-/**
- * @constructor
- * @extends MessageSelectorBase
- * @private
- */
-function SelectMessage(expressionFn, choices) {
-  MessageSelectorBase.call(this, expressionFn, choices);
-}
-
-function SelectMessageProto() {}
-SelectMessageProto.prototype = MessageSelectorBase.prototype;
-
-SelectMessage.prototype = new SelectMessageProto();
-SelectMessage.prototype.categorizeValue = function 
categorizeSelectValue(value) {
-  return (this.choices[value] !== void 0) ? value : "other";
-};
-
-/**
- * @constructor
- * @extends MessageSelectorBase
- * @private
- */
-function PluralMessage(expressionFn, choices, offset, pluralCat) {
-  MessageSelectorBase.call(this, expressionFn, choices);
-  this.offset = offset;
-  this.pluralCat = pluralCat;
-}
-
-function PluralMessageProto() {}
-PluralMessageProto.prototype = MessageSelectorBase.prototype;
-
-PluralMessage.prototype = new PluralMessageProto();
-PluralMessage.prototype.categorizeValue = function 
categorizePluralValue(value) {
-  if (isNaN(value)) {
-    return "other";
-  } else if (this.choices[value] !== void 0) {
-    return value;
-  } else {
-    var category = this.pluralCat(value - this.offset);
-    return (this.choices[category] !== void 0) ? category : "other";
-  }
-};
-
-// NOTE: ADVANCED_OPTIMIZATIONS mode.
-//
-// This file is compiled with Closure compiler's ADVANCED_OPTIMIZATIONS flag! 
Be wary of using
-// constructs incompatible with that mode.
-
-/* global $interpolateMinErr: false */
-/* global isFunction: false */
-/* global parseTextLiteral: false */
-
-/**
- * @constructor
- * @private
- */
-function InterpolationParts(trustedContext, allOrNothing) {
-  this.trustedContext = trustedContext;
-  this.allOrNothing = allOrNothing;
-  this.textParts = [];
-  this.expressionFns = [];
-  this.expressionIndices = [];
-  this.partialText = '';
-  this.concatParts = null;
-}
-
-InterpolationParts.prototype.flushPartialText = function flushPartialText() {
-  if (this.partialText) {
-    if (this.concatParts == null) {
-      this.textParts.push(this.partialText);
-    } else {
-      this.textParts.push(this.concatParts.join(''));
-      this.concatParts = null;
-    }
-    this.partialText = '';
-  }
-};
-
-InterpolationParts.prototype.addText = function addText(text) {
-  if (text.length) {
-    if (!this.partialText) {
-      this.partialText = text;
-    } else if (this.concatParts) {
-      this.concatParts.push(text);
-    } else {
-      this.concatParts = [this.partialText, text];
-    }
-  }
-};
-
-InterpolationParts.prototype.addExpressionFn = function 
addExpressionFn(expressionFn) {
-  this.flushPartialText();
-  this.expressionIndices.push(this.textParts.length);
-  this.expressionFns.push(expressionFn);
-  this.textParts.push('');
-};
-
-InterpolationParts.prototype.getExpressionValues = function 
getExpressionValues(context) {
-  var expressionValues = new Array(this.expressionFns.length);
-  for (var i = 0; i < this.expressionFns.length; i++) {
-    expressionValues[i] = this.expressionFns[i](context);
-  }
-  return expressionValues;
-};
-
-InterpolationParts.prototype.getResult = function getResult(expressionValues) {
-  for (var i = 0; i < this.expressionIndices.length; i++) {
-    var expressionValue = expressionValues[i];
-    if (this.allOrNothing && expressionValue === void 0) return;
-    this.textParts[this.expressionIndices[i]] = expressionValue;
-  }
-  return this.textParts.join('');
-};
-
-
-InterpolationParts.prototype.toParsedFn = function 
toParsedFn(mustHaveExpression, originalText) {
-  var self = this;
-  this.flushPartialText();
-  if (mustHaveExpression && this.expressionFns.length === 0) {
-    return void 0;
-  }
-  if (this.textParts.length === 0) {
-    return parseTextLiteral('');
-  }
-  if (this.trustedContext && this.textParts.length > 1) {
-    $interpolateMinErr['throwNoconcat'](originalText);
-  }
-  if (this.expressionFns.length === 0) {
-    if (this.textParts.length != 1) { this.errorInParseLogic(); }
-    return parseTextLiteral(this.textParts[0]);
-  }
-  var parsedFn = function(context) {
-    return self.getResult(self.getExpressionValues(context));
-  };
-  parsedFn['$$watchDelegate'] = function $$watchDelegate(scope, listener, 
objectEquality) {
-    return self.watchDelegate(scope, listener, objectEquality);
-  };
-
-  parsedFn['exp'] = originalText; // Needed to pretend to be $interpolate for 
tests copied from interpolateSpec.js
-  parsedFn['expressions'] = new Array(this.expressionFns.length); // Require 
this to call $compile.$$addBindingInfo() which allows Protractor to find 
elements by binding.
-  for (var i = 0; i < this.expressionFns.length; i++) {
-    parsedFn['expressions'][i] = this.expressionFns[i]['exp'];
-  }
-
-  return parsedFn;
-};
-
-InterpolationParts.prototype.watchDelegate = function watchDelegate(scope, 
listener, objectEquality) {
-  var watcher = new InterpolationPartsWatcher(this, scope, listener, 
objectEquality);
-  return function() { watcher.cancelWatch(); };
-};
-
-function InterpolationPartsWatcher(interpolationParts, scope, listener, 
objectEquality) {
-  this.interpolationParts = interpolationParts;
-  this.scope = scope;
-  this.previousResult = (void 0);
-  this.listener = listener;
-  var self = this;
-  this.expressionFnsWatcher = 
scope['$watchGroup'](interpolationParts.expressionFns, 
function(newExpressionValues, oldExpressionValues) {
-    self.watchListener(newExpressionValues, oldExpressionValues);
-  });
-}
-
-InterpolationPartsWatcher.prototype.watchListener = function 
watchListener(newExpressionValues, oldExpressionValues) {
-  var result = this.interpolationParts.getResult(newExpressionValues);
-  if (isFunction(this.listener)) {
-    this.listener.call(null, result, newExpressionValues === 
oldExpressionValues ? result : this.previousResult, this.scope);
-  }
-  this.previousResult = result;
-};
-
-InterpolationPartsWatcher.prototype.cancelWatch = function cancelWatch() {
-  this.expressionFnsWatcher();
-};
-
-// NOTE: ADVANCED_OPTIMIZATIONS mode.
-//
-// This file is compiled with Closure compiler's ADVANCED_OPTIMIZATIONS flag! 
Be wary of using
-// constructs incompatible with that mode.
-
-/* global $interpolateMinErr: false */
-/* global indexToLineAndColumn: false */
-/* global InterpolationParts: false */
-/* global PluralMessage: false */
-/* global SelectMessage: false */
-/* global subtractOffset: false */
-
-// The params src and dst are exactly one of two types: NestedParserState or 
MessageFormatParser.
-// This function is fully optimized by V8. (inspect via IRHydra or 
--trace-deopt.)
-// The idea behind writing it this way is to avoid repeating oneself.  This is 
the ONE place where
-// the parser state that is saved/restored when parsing nested mustaches is 
specified.
-function copyNestedParserState(src, dst) {
-  dst.expressionFn = src.expressionFn;
-  dst.expressionMinusOffsetFn = src.expressionMinusOffsetFn;
-  dst.pluralOffset = src.pluralOffset;
-  dst.choices = src.choices;
-  dst.choiceKey = src.choiceKey;
-  dst.interpolationParts = src.interpolationParts;
-  dst.ruleChoiceKeyword = src.ruleChoiceKeyword;
-  dst.msgStartIndex = src.msgStartIndex;
-  dst.expressionStartIndex = src.expressionStartIndex;
-}
-
-function NestedParserState(parser) {
-  copyNestedParserState(parser, this);
-}
-
-/**
- * @constructor
- * @private
- */
-function MessageFormatParser(text, startIndex, $parse, pluralCat, stringifier,
-                             mustHaveExpression, trustedContext, allOrNothing) 
{
-  this.text = text;
-  this.index = startIndex || 0;
-  this.$parse = $parse;
-  this.pluralCat = pluralCat;
-  this.stringifier = stringifier;
-  this.mustHaveExpression = !!mustHaveExpression;
-  this.trustedContext = trustedContext;
-  this.allOrNothing = !!allOrNothing;
-  this.expressionFn = null;
-  this.expressionMinusOffsetFn = null;
-  this.pluralOffset = null;
-  this.choices = null;
-  this.choiceKey = null;
-  this.interpolationParts = null;
-  this.msgStartIndex = null;
-  this.nestedStateStack = [];
-  this.parsedFn = null;
-  this.rule = null;
-  this.ruleStack = null;
-  this.ruleChoiceKeyword = null;
-  this.interpNestLevel = null;
-  this.expressionStartIndex = null;
-  this.stringStartIndex = null;
-  this.stringQuote = null;
-  this.stringInterestsRe = null;
-  this.angularOperatorStack = null;
-  this.textPart = null;
-}
-
-// preserve v8 optimization.
-var EMPTY_STATE = new NestedParserState(new MessageFormatParser(
-        /* text= */ '', /* startIndex= */ 0, /* $parse= */ null, /* pluralCat= 
*/ null, /* stringifier= */ null,
-        /* mustHaveExpression= */ false, /* trustedContext= */ null, /* 
allOrNothing */ false));
-
-MessageFormatParser.prototype.pushState = function pushState() {
-  this.nestedStateStack.push(new NestedParserState(this));
-  copyNestedParserState(EMPTY_STATE, this);
-};
-
-MessageFormatParser.prototype.popState = function popState() {
-  if (this.nestedStateStack.length === 0) {
-    this.errorInParseLogic();
-  }
-  var previousState = this.nestedStateStack.pop();
-  copyNestedParserState(previousState, this);
-};
-
-// Oh my JavaScript!  Who knew you couldn't match a regex at a specific
-// location in a string but will always search forward?!
-// Apparently you'll be growing this ability via the sticky flag (y) in
-// ES6.  I'll just to work around you for now.
-MessageFormatParser.prototype.matchRe = function matchRe(re, search) {
-  re.lastIndex = this.index;
-  var match = re.exec(this.text);
-  if (match != null && (search === true || (match.index == this.index))) {
-    this.index = re.lastIndex;
-    return match;
-  }
-  return null;
-};
-
-MessageFormatParser.prototype.searchRe = function searchRe(re) {
-  return this.matchRe(re, true);
-};
-
-
-MessageFormatParser.prototype.consumeRe = function consumeRe(re) {
-  // Without the sticky flag, we can't use the .test() method to consume a
-  // match at the current index.  Instead, we'll use the slower .exec() method
-  // and verify match.index.
-  return !!this.matchRe(re);
-};
-
-// Run through our grammar avoiding deeply nested function call chains.
-MessageFormatParser.prototype.run = function run(initialRule) {
-  this.ruleStack = [initialRule];
-  do {
-    this.rule = this.ruleStack.pop();
-    while (this.rule) {
-      this.rule();
-    }
-    this.assertRuleOrNull(this.rule);
-  } while (this.ruleStack.length > 0);
-};
-
-MessageFormatParser.prototype.errorInParseLogic = function errorInParseLogic() 
{
-    throw $interpolateMinErr('logicbug',
-        'The messageformat parser has encountered an internal error.  Please 
file a github issue against the AngularJS project and provide this message text 
that triggers the bug.  Text: “{0}”',
-        this.text);
-};
-
-MessageFormatParser.prototype.assertRuleOrNull = function 
assertRuleOrNull(rule) {
-  if (rule === void 0) {
-    this.errorInParseLogic();
-  }
-};
-
-var NEXT_WORD_RE = /\s*(\w+)\s*/g;
-MessageFormatParser.prototype.errorExpecting = function errorExpecting() {
-  // What was wrong with the syntax? Unsupported type, missing comma, or 
something else?
-  var match = this.matchRe(NEXT_WORD_RE), position;
-  if (match == null) {
-    position = indexToLineAndColumn(this.text, this.index);
-    throw $interpolateMinErr('reqarg',
-        'Expected one of “plural” or “select” at line {0}, column {1} 
of text “{2}”',
-        position.line, position.column, this.text);
-  }
-  var word = match[1];
-  if (word == "select" || word == "plural") {
-    position = indexToLineAndColumn(this.text, this.index);
-    throw $interpolateMinErr('reqcomma',
-        'Expected a comma after the keyword “{0}” at line {1}, column {2} 
of text “{3}”',
-        word, position.line, position.column, this.text);
-  } else {
-    position = indexToLineAndColumn(this.text, this.index);
-    throw $interpolateMinErr('unknarg',
-        'Unsupported keyword “{0}” at line {0}, column {1}. Only 
“plural” and “select” are currently supported.  Text: “{3}”',
-        word, position.line, position.column, this.text);
-  }
-};
-
-var STRING_START_RE = /['"]/g;
-MessageFormatParser.prototype.ruleString = function ruleString() {
-  var match = this.matchRe(STRING_START_RE);
-  if (match == null) {
-    var position = indexToLineAndColumn(this.text, this.index);
-    throw $interpolateMinErr('wantstring',
-        'Expected the beginning of a string at line {0}, column {1} in text 
“{2}”',
-        position.line, position.column, this.text);
-  }
-  this.startStringAtMatch(match);
-};
-
-MessageFormatParser.prototype.startStringAtMatch = function 
startStringAtMatch(match) {
-  this.stringStartIndex = match.index;
-  this.stringQuote = match[0];
-  this.stringInterestsRe = this.stringQuote == "'" ? 
SQUOTED_STRING_INTEREST_RE : DQUOTED_STRING_INTEREST_RE;
-  this.rule = this.ruleInsideString;
-};
-
-var SQUOTED_STRING_INTEREST_RE = 
/\\(?:\\|'|u[0-9A-Fa-f]{4}|x[0-9A-Fa-f]{2}|[0-7]{3}|\r\n|\n|[\s\S])|'/g;
-var DQUOTED_STRING_INTEREST_RE = 
/\\(?:\\|"|u[0-9A-Fa-f]{4}|x[0-9A-Fa-f]{2}|[0-7]{3}|\r\n|\n|[\s\S])|"/g;
-MessageFormatParser.prototype.ruleInsideString = function ruleInsideString() {
-  var match = this.searchRe(this.stringInterestsRe);
-  if (match == null) {
-    var position = indexToLineAndColumn(this.text, this.stringStartIndex);
-    throw $interpolateMinErr('untermstr',
-        'The string beginning at line {0}, column {1} is unterminated in text 
“{2}”',
-        position.line, position.column, this.text);
-  }
-  var chars = match[0];
-  if (match == this.stringQuote) {
-    this.rule = null;
-  }
-};
-
-var PLURAL_OR_SELECT_ARG_TYPE_RE = /\s*(plural|select)\s*,\s*/g;
-MessageFormatParser.prototype.rulePluralOrSelect = function 
rulePluralOrSelect() {
-  var match = this.searchRe(PLURAL_OR_SELECT_ARG_TYPE_RE);
-  if (match == null) {
-    this.errorExpecting();
-  }
-  var argType = match[1];
-  switch (argType) {
-    case "plural": this.rule = this.rulePluralStyle; break;
-    case "select": this.rule = this.ruleSelectStyle; break;
-    default: this.errorInParseLogic();
-  }
-};
-
-MessageFormatParser.prototype.rulePluralStyle = function rulePluralStyle() {
-  this.choices = Object.create(null);
-  this.ruleChoiceKeyword = this.rulePluralValueOrKeyword;
-  this.rule = this.rulePluralOffset;
-};
-
-MessageFormatParser.prototype.ruleSelectStyle = function ruleSelectStyle() {
-  this.choices = Object.create(null);
-  this.ruleChoiceKeyword = this.ruleSelectKeyword;
-  this.rule = this.ruleSelectKeyword;
-};
-
-var NUMBER_RE = /[0]|(?:[1-9][0-9]*)/g;
-var PLURAL_OFFSET_RE = new RegExp("\\s*offset\\s*:\\s*(" + NUMBER_RE.source + 
")", "g");
-
-MessageFormatParser.prototype.rulePluralOffset = function rulePluralOffset() {
-  var match = this.matchRe(PLURAL_OFFSET_RE);
-  this.pluralOffset = (match == null) ? 0 : parseInt(match[1], 10);
-  this.expressionMinusOffsetFn = subtractOffset(this.expressionFn, 
this.pluralOffset);
-  this.rule = this.rulePluralValueOrKeyword;
-};
-
-MessageFormatParser.prototype.assertChoiceKeyIsNew = function 
assertChoiceKeyIsNew(choiceKey, index) {
-  if (this.choices[choiceKey] !== void 0) {
-    var position = indexToLineAndColumn(this.text, index);
-    throw $interpolateMinErr('dupvalue',
-        'The choice “{0}” is specified more than once. Duplicate key is at 
line {1}, column {2} in text “{3}”',
-        choiceKey, position.line, position.column, this.text);
-  }
-};
-
-var SELECT_KEYWORD = /\s*(\w+)/g;
-MessageFormatParser.prototype.ruleSelectKeyword = function ruleSelectKeyword() 
{
-  var match = this.matchRe(SELECT_KEYWORD);
-  if (match == null) {
-    this.parsedFn = new SelectMessage(this.expressionFn, 
this.choices).parsedFn;
-    this.rule = null;
-    return;
-  }
-  this.choiceKey = match[1];
-  this.assertChoiceKeyIsNew(this.choiceKey, match.index);
-  this.rule = this.ruleMessageText;
-};
-
-var EXPLICIT_VALUE_OR_KEYWORD_RE = new RegExp("\\s*(?:(?:=(" + 
NUMBER_RE.source + "))|(\\w+))", "g");
-MessageFormatParser.prototype.rulePluralValueOrKeyword = function 
rulePluralValueOrKeyword() {
-  var match = this.matchRe(EXPLICIT_VALUE_OR_KEYWORD_RE);
-  if (match == null) {
-    this.parsedFn = new PluralMessage(this.expressionFn, this.choices, 
this.pluralOffset, this.pluralCat).parsedFn;
-    this.rule = null;
-    return;
-  }
-  if (match[1] != null) {
-    this.choiceKey = parseInt(match[1], 10);
-  } else {
-    this.choiceKey = match[2];
-  }
-  this.assertChoiceKeyIsNew(this.choiceKey, match.index);
-  this.rule = this.ruleMessageText;
-};
-
-var BRACE_OPEN_RE = /\s*{/g;
-var BRACE_CLOSE_RE = /}/g;
-MessageFormatParser.prototype.ruleMessageText = function ruleMessageText() {
-  if (!this.consumeRe(BRACE_OPEN_RE)) {
-    var position = indexToLineAndColumn(this.text, this.index);
-    throw $interpolateMinErr('reqopenbrace',
-        'The plural choice “{0}” must be followed by a message in braces 
at line {1}, column {2} in text “{3}”',
-        this.choiceKey, position.line, position.column, this.text);
-  }
-  this.msgStartIndex = this.index;
-  this.interpolationParts = new InterpolationParts(this.trustedContext, 
this.allOrNothing);
-  this.rule = this.ruleInInterpolationOrMessageText;
-};
-
-// Note: Since "\" is used as an escape character, don't allow it to be part 
of the
-// startSymbol/endSymbol when I add the feature to allow them to be redefined.
-var INTERP_OR_END_MESSAGE_RE = /\\.|{{|}/g;
-var INTERP_OR_PLURALVALUE_OR_END_MESSAGE_RE = /\\.|{{|#|}/g;
-var ESCAPE_OR_MUSTACHE_BEGIN_RE = /\\.|{{/g;
-MessageFormatParser.prototype.advanceInInterpolationOrMessageText = function 
advanceInInterpolationOrMessageText() {
-  var currentIndex = this.index, match, re;
-  if (this.ruleChoiceKeyword == null) { // interpolation
-    match = this.searchRe(ESCAPE_OR_MUSTACHE_BEGIN_RE);
-    if (match == null) { // End of interpolation text.  Nothing more to 
process.
-      this.textPart = this.text.substring(currentIndex);
-      this.index = this.text.length;
-      return null;
-    }
-  } else {
-    match = this.searchRe(this.ruleChoiceKeyword == 
this.rulePluralValueOrKeyword ?
-                          INTERP_OR_PLURALVALUE_OR_END_MESSAGE_RE : 
INTERP_OR_END_MESSAGE_RE);
-    if (match == null) {
-      var position = indexToLineAndColumn(this.text, this.msgStartIndex);
-      throw $interpolateMinErr('reqendbrace',
-          'The plural/select choice “{0}” message starting at line {1}, 
column {2} does not have an ending closing brace. Text “{3}”',
-          this.choiceKey, position.line, position.column, this.text);
-    }
-  }
-  // match is non-null.
-  var token = match[0];
-  this.textPart = this.text.substring(currentIndex, match.index);
-  return token;
-};
-
-MessageFormatParser.prototype.ruleInInterpolationOrMessageText = function 
ruleInInterpolationOrMessageText() {
-  var currentIndex = this.index;
-  var token = this.advanceInInterpolationOrMessageText();
-  if (token == null) {
-    // End of interpolation text.  Nothing more to process.
-    this.index = this.text.length;
-    this.interpolationParts.addText(this.text.substring(currentIndex));
-    this.rule = null;
-    return;
-  }
-  if (token[0] == "\\") {
-    // unescape next character and continue
-    this.interpolationParts.addText(this.textPart + token[1]);
-    return;
-  }
-  this.interpolationParts.addText(this.textPart);
-  if (token == "{{") {
-    this.pushState();
-    this.ruleStack.push(this.ruleEndMustacheInInterpolationOrMessage);
-    this.rule = this.ruleEnteredMustache;
-  } else if (token == "}") {
-    this.choices[this.choiceKey] = 
this.interpolationParts.toParsedFn(/*mustHaveExpression=*/false, this.text);
-    this.rule = this.ruleChoiceKeyword;
-  } else if (token == "#") {
-    this.interpolationParts.addExpressionFn(this.expressionMinusOffsetFn);
-  } else {
-    this.errorInParseLogic();
-  }
-};
-
-MessageFormatParser.prototype.ruleInterpolate = function ruleInterpolate() {
-  this.interpolationParts = new InterpolationParts(this.trustedContext, 
this.allOrNothing);
-  this.rule = this.ruleInInterpolation;
-};
-
-MessageFormatParser.prototype.ruleInInterpolation = function 
ruleInInterpolation() {
-  var currentIndex = this.index;
-  var match = this.searchRe(ESCAPE_OR_MUSTACHE_BEGIN_RE);
-  if (match == null) {
-    // End of interpolation text.  Nothing more to process.
-    this.index = this.text.length;
-    this.interpolationParts.addText(this.text.substring(currentIndex));
-    this.parsedFn = 
this.interpolationParts.toParsedFn(this.mustHaveExpression, this.text);
-    this.rule = null;
-    return;
-  }
-  var token = match[0];
-  if (token[0] == "\\") {
-    // unescape next character and continue
-    this.interpolationParts.addText(this.text.substring(currentIndex, 
match.index) + token[1]);
-    return;
-  }
-  this.interpolationParts.addText(this.text.substring(currentIndex, 
match.index));
-  this.pushState();
-  this.ruleStack.push(this.ruleInterpolationEndMustache);
-  this.rule = this.ruleEnteredMustache;
-};
-
-MessageFormatParser.prototype.ruleInterpolationEndMustache = function 
ruleInterpolationEndMustache() {
-  var expressionFn = this.parsedFn;
-  this.popState();
-  this.interpolationParts.addExpressionFn(expressionFn);
-  this.rule = this.ruleInInterpolation;
-};
-
-MessageFormatParser.prototype.ruleEnteredMustache = function 
ruleEnteredMustache() {
-  this.parsedFn = null;
-  this.ruleStack.push(this.ruleEndMustache);
-  this.rule = this.ruleAngularExpression;
-};
-
-MessageFormatParser.prototype.ruleEndMustacheInInterpolationOrMessage = 
function ruleEndMustacheInInterpolationOrMessage() {
-  var expressionFn = this.parsedFn;
-  this.popState();
-  this.interpolationParts.addExpressionFn(expressionFn);
-  this.rule = this.ruleInInterpolationOrMessageText;
-};
-
-
-
-var INTERP_END_RE = /\s*}}/g;
-MessageFormatParser.prototype.ruleEndMustache = function ruleEndMustache() {
-  var match = this.matchRe(INTERP_END_RE);
-  if (match == null) {
-    var position = indexToLineAndColumn(this.text, this.index);
-    throw $interpolateMinErr('reqendinterp',
-        'Expecting end of interpolation symbol, “{0}”, at line {1}, column 
{2} in text “{3}”',
-        '}}', position.line, position.column, this.text);
-  }
-  if (this.parsedFn == null) {
-    // If we parsed a MessageFormat extension, (e.g. select/plural today, 
maybe more some other
-    // day), then the result *has* to be a string and those rules would have 
already set
-    // this.parsedFn.  If there was no MessageFormat extension, then there is 
no requirement to
-    // stringify the result and parsedFn isn't set.  We set it here.  While we 
could have set it
-    // unconditionally when exiting the Angular expression, I intend for us to 
not just replace
-    // $interpolate, but also to replace $parse in a future version (so 
ng-bind can work), and in
-    // such a case we do not want to unnecessarily stringify something if it's 
not going to be used
-    // in a string context.
-    this.parsedFn = this.$parse(this.expressionFn, this.stringifier);
-    this.parsedFn['exp'] = this.expressionFn['exp']; // Needed to pretend to 
be $interpolate for tests copied from interpolateSpec.js
-    this.parsedFn['expressions'] = this.expressionFn['expressions']; // 
Require this to call $compile.$$addBindingInfo() which allows Protractor to 
find elements by binding.
-  }
-  this.rule = null;
-};
-
-MessageFormatParser.prototype.ruleAngularExpression = function 
ruleAngularExpression() {
-  this.angularOperatorStack = [];
-  this.expressionStartIndex = this.index;
-  this.rule = this.ruleInAngularExpression;
-};
-
-function getEndOperator(opBegin) {
-  switch (opBegin) {
-    case "{": return "}";
-    case "[": return "]";
-    case "(": return ")";
-    default: return null;
-  }
-}
-
-function getBeginOperator(opEnd) {
-  switch (opEnd) {
-    case "}": return "{";
-    case "]": return "[";
-    case ")": return "(";
-    default: return null;
-  }
-}
-
-// TODO(chirayu): The interpolation endSymbol must also be accounted for. It
-// just so happens that "}" is an operator so it's in the list below.  But we
-// should support any other type of start/end interpolation symbol.
-var INTERESTING_OPERATORS_RE = /[[\]{}()'",]/g;
-MessageFormatParser.prototype.ruleInAngularExpression = function 
ruleInAngularExpression() {
-  var startIndex = this.index;
-  var match = this.searchRe(INTERESTING_OPERATORS_RE);
-  var position;
-  if (match == null) {
-    if (this.angularOperatorStack.length === 0) {
-      // This is the end of the Angular expression so this is actually a
-      // success.  Note that when inside an interpolation, this means we even
-      // consumed the closing interpolation symbols if they were curlies.  This
-      // is NOT an error at this point but will become an error further up the
-      // stack when the part that saw the opening curlies is unable to find the
-      // closing ones.
-      this.index = this.text.length;
-      this.expressionFn = 
this.$parse(this.text.substring(this.expressionStartIndex, this.index));
-      // Needed to pretend to be $interpolate for tests copied from 
interpolateSpec.js
-      this.expressionFn['exp'] = 
this.text.substring(this.expressionStartIndex, this.index);
-      this.expressionFn['expressions'] = this.expressionFn['expressions'];
-      this.rule = null;
-      return;
-    }
-    var innermostOperator = this.angularOperatorStack[0];
-    throw $interpolateMinErr('badexpr',
-        'Unexpected end of Angular expression.  Expecting operator “{0}” 
at the end of the text “{1}”',
-        this.getEndOperator(innermostOperator), this.text);
-  }
-  var operator = match[0];
-  if (operator == "'" || operator == '"') {
-    this.ruleStack.push(this.ruleInAngularExpression);
-    this.startStringAtMatch(match);
-    return;
-  }
-  if (operator == ",") {
-    if (this.trustedContext) {
-      position = indexToLineAndColumn(this.text, this.index);
-      throw $interpolateMinErr('unsafe',
-          'Use of select/plural MessageFormat syntax is currently disallowed 
in a secure context ({0}).  At line {1}, column {2} of text “{3}”',
-          this.trustedContext, position.line, position.column, this.text);
-    }
-    // only the top level comma has relevance.
-    if (this.angularOperatorStack.length === 0) {
-      // todo: does this need to be trimmed?
-      this.expressionFn = 
this.$parse(this.text.substring(this.expressionStartIndex, match.index));
-      // Needed to pretend to be $interpolate for tests copied from 
interpolateSpec.js
-      this.expressionFn['exp'] = 
this.text.substring(this.expressionStartIndex, match.index);
-      this.expressionFn['expressions'] = this.expressionFn['expressions'];
-      this.rule = null;
-      this.rule = this.rulePluralOrSelect;
-    }
-    return;
-  }
-  if (getEndOperator(operator) != null) {
-    this.angularOperatorStack.unshift(operator);
-    return;
-  }
-  var beginOperator = getBeginOperator(operator);
-  if (beginOperator == null) {
-    this.errorInParseLogic();
-  }
-  if (this.angularOperatorStack.length > 0) {
-    if (beginOperator == this.angularOperatorStack[0]) {
-      this.angularOperatorStack.shift();
-      return;
-    }
-    position = indexToLineAndColumn(this.text, this.index);
-    throw $interpolateMinErr('badexpr',
-        'Unexpected operator “{0}” at line {1}, column {2} in text. Was 
expecting “{3}”. Text: “{4}”',
-        operator, position.line, position.column, 
getEndOperator(this.angularOperatorStack[0]), this.text);
-  }
-  // We are trying to pop off the operator stack but there really isn't 
anything to pop off.
-  this.index = match.index;
-  this.expressionFn = 
this.$parse(this.text.substring(this.expressionStartIndex, this.index));
-  // Needed to pretend to be $interpolate for tests copied from 
interpolateSpec.js
-  this.expressionFn['exp'] = this.text.substring(this.expressionStartIndex, 
this.index);
-  this.expressionFn['expressions'] = this.expressionFn['expressions'];
-  this.rule = null;
-};
-
-// NOTE: ADVANCED_OPTIMIZATIONS mode.
-//
-// This file is compiled with Closure compiler's ADVANCED_OPTIMIZATIONS flag! 
Be wary of using
-// constructs incompatible with that mode.
-
-/* global $interpolateMinErr: false */
-/* global MessageFormatParser: false */
-/* global stringify: false */
-
-/**
- * @ngdoc service
- * @name $$messageFormat
- *
- * @description
- * Angular internal service to recognize MessageFormat extensions in 
interpolation expressions.
- * For more information, see:
- * 
https://docs.google.com/a/google.com/document/d/1pbtW2yvtmFBikfRrJd8VAsabiFkKezmYZ_PbgdjQOVU/edit
- *
- * ## Example
- *
- * <example name="ngMessageFormat-example" module="msgFmtExample" 
deps="angular-message-format.min.js">
- * <file name="index.html">
- *   <div ng-controller="AppController">
- *     <button ng-click="decreaseRecipients()" 
id="decreaseRecipients">decreaseRecipients</button><br>
- *     <span>{{recipients.length, plural, offset:1
- *             =0    {{{sender.name}} gave no gifts (\#=#)}
- *             =1    {{{sender.name}} gave one gift to {{recipients[0].name}} 
(\#=#)}
- *             one   {{{sender.name}} gave {{recipients[0].name}} and one 
other person a gift (\#=#)}
- *             other {{{sender.name}} gave {{recipients[0].name}} and # other 
people a gift (\#=#)}
- *           }}</span>
- *   </div>
- * </file>
- *
- * <file name="script.js">
- *   function Person(name, gender) {
- *     this.name = name;
- *     this.gender = gender;
- *   }
- *
- *   var alice   = new Person("Alice", "female"),
- *       bob     = new Person("Bob", "male"),
- *       charlie = new Person("Charlie", "male"),
- *       harry   = new Person("Harry Potter", "male");
- *
- *   angular.module('msgFmtExample', ['ngMessageFormat'])
- *     .controller('AppController', ['$scope', function($scope) {
- *         $scope.recipients = [alice, bob, charlie];
- *         $scope.sender = harry;
- *         $scope.decreaseRecipients = function() {
- *           --$scope.recipients.length;
- *         };
- *       }]);
- * </file>
- *
- * <file name="protractor.js" type="protractor">
- *   describe('MessageFormat plural', function() {
- *     it('should pluralize initial values', function() {
- *       var messageElem = element(by.binding('recipients.length')), 
decreaseRecipientsBtn = element(by.id('decreaseRecipients'));
- *       expect(messageElem.getText()).toEqual('Harry Potter gave Alice and 2 
other people a gift (#=2)');
- *       decreaseRecipientsBtn.click();
- *       expect(messageElem.getText()).toEqual('Harry Potter gave Alice and 
one other person a gift (#=1)');
- *       decreaseRecipientsBtn.click();
- *       expect(messageElem.getText()).toEqual('Harry Potter gave one gift to 
Alice (#=0)');
- *       decreaseRecipientsBtn.click();
- *       expect(messageElem.getText()).toEqual('Harry Potter gave no gifts 
(#=-1)');
- *     });
- *   });
- * </file>
- * </example>
- */
-var $$MessageFormatFactory = ['$parse', '$locale', '$sce', 
'$exceptionHandler', function $$messageFormat(
-                   $parse,   $locale,   $sce,   $exceptionHandler) {
-
-  function getStringifier(trustedContext, allOrNothing, text) {
-    return function stringifier(value) {
-      try {
-        value = trustedContext ? $sce['getTrusted'](trustedContext, value) : 
$sce['valueOf'](value);
-        return allOrNothing && (value === void 0) ? value : stringify(value);
-      } catch (err) {
-        $exceptionHandler($interpolateMinErr['interr'](text, err));
-      }
-    };
-  }
-
-  function interpolate(text, mustHaveExpression, trustedContext, allOrNothing) 
{
-    var stringifier = getStringifier(trustedContext, allOrNothing, text);
-    var parser = new MessageFormatParser(text, 0, $parse, 
$locale['pluralCat'], stringifier,
-                                         mustHaveExpression, trustedContext, 
allOrNothing);
-    parser.run(parser.ruleInterpolate);
-    return parser.parsedFn;
-  }
-
-  return {
-    'interpolate': interpolate
-  };
-}];
-
-var $$interpolateDecorator = ['$$messageFormat', '$delegate', function 
$$interpolateDecorator($$messageFormat, $interpolate) {
-  if ($interpolate['startSymbol']() != "{{" || $interpolate['endSymbol']() != 
"}}") {
-    throw $interpolateMinErr('nochgmustache', 'angular-message-format.js 
currently does not allow you to use custom start and end symbols for 
interpolation.');
-  }
-  var interpolate = $$messageFormat['interpolate'];
-  interpolate['startSymbol'] = $interpolate['startSymbol'];
-  interpolate['endSymbol'] = $interpolate['endSymbol'];
-  return interpolate;
-}];
-
-
-/**
- * @ngdoc module
- * @name ngMessageFormat
- * @packageName angular-message-format
- * @description
- */
-var module = window['angular']['module']('ngMessageFormat', ['ng']);
-module['factory']('$$messageFormat', $$MessageFormatFactory);
-module['config'](['$provide', function($provide) {
-  $provide['decorator']('$interpolate', $$interpolateDecorator);
-}]);
-
-
-})(window, window.angular);

http://git-wip-us.apache.org/repos/asf/struts/blob/7a350b02/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/angular-message-format.min.js
----------------------------------------------------------------------
diff --git 
a/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/angular-message-format.min.js
 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/angular-message-format.min.js
deleted file mode 100644
index f85a587..0000000
--- 
a/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/angular-message-format.min.js
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- AngularJS v1.5.0
- (c) 2010-2016 Google, Inc. http://angularjs.org
- License: MIT
-*/
-(function(h){'use strict';function C(a){if(null==a)return"";switch(typeof 
a){case "string":return a;case "number":return""+a;default:return 
D(a)}}function f(a,b){for(var d=a.split(/\n/g),k=0;k<d.length;k++){var 
c=d[k];if(b>=c.length)b-=c.length;else return{h:k+1,f:b+1}}}function 
t(a){function b(){return a}var d=u[a];if(null!=d)return 
d;b.$$watchDelegate=function(b,d,c){var 
e=b.$watch(v,function(){m(d)&&d.call(null,a,a,b);e()},c);return 
e};u[a]=b;b.exp=a;b.expressions=[];return b}function F(a,b){function 
d(a){return void 0==
-a?a:a-b}function c(b){return d(a(b))}if(0===b)return a;var 
e;c.$$watchDelegate=function(b,c,k){return 
e=b.$watch(a,function(a,k){m(c)&&c.call(null,d(a),d(k),b)},k)};return 
c}function l(a,b){var d=this;this.b=a;this.e=b;if(void 0===b.other)throw 
e("reqother");this.d=function(a){return 
d.D(a)};this.d.$$watchDelegate=function(a,b,c){return 
d.P(a,b,c)};this.d.exp=a.exp;this.d.expressions=a.expressions}function 
n(a,b,d,c){var e=this;this.scope=b;this.oa=a;this.v=d;this.qa=c;this.U=void 
0;this.K=v;this.ka=
-b.$watch(a.b,function(a){return e.ja(a)},c)}function 
p(a,b){l.call(this,a,b)}function w(){}function 
q(a,b,d,c){l.call(this,a,b);this.offset=d;this.M=c}function x(){}function 
g(a,b){this.u=a;this.B=b;this.i=[];this.g=[];this.J=[];this.s="";this.q=null}function
 r(a,b,d){this.c=a;this.scope=b;this.W=void 0;this.v=d;var 
c=this;this.la=b.$watchGroup(a.g,function(a,b){c.Ea(a,b)})}function 
s(a,b){b.b=a.b;b.C=a.C;b.w=a.w;b.e=a.e;b.k=a.k;b.c=a.c;b.n=a.n;b.F=a.F;b.l=a.l}function
 y(a){s(a,this)}function c(a,
-b,d,c,e,E,f,g){this.text=a;this.index=b||0;this.A=d;this.M=c;this.Da=e;this.pa=!!E;this.u=f;this.B=!!g;this.F=this.c=this.k=this.e=this.w=this.C=this.b=null;this.L=[];this.G=this.j=this.ca=this.O=this.da=this.l=this.n=this.o=this.a=this.d=null}function
 z(a){switch(a){case "{":return"}";case "[":return"]";case 
"(":return")";default:return null}}function G(a){switch(a){case 
"}":return"{";case "]":return"[";case ")":return"(";default:return null}}var 
e=h.angular.$interpolateMinErr,v=h.angular.noop,m=
-h.angular.isFunction,D=h.angular.toJson,u=Object.create(null);l.prototype.T=function(a){return
 this.e[this.R(a)]};l.prototype.D=function(a){return 
this.T(this.b(a))(a)};l.prototype.P=function(a,b,d){var c=new 
n(this,a,b,d);return function(){c.I()}};n.prototype.ja=function(a){var 
b=this;this.K();a=this.oa.T(a);this.K=this.scope.$watch(a,function(a,c){return 
b.na(a,c)},this.qa)};n.prototype.na=function(a,b){m(this.v)&&this.v.call(null,a,a===b?a:this.U,this.scope);this.U=a};n.prototype.I=function(){this.ka();
-this.K()};w.prototype=l.prototype;p.prototype=new 
w;p.prototype.R=function(a){return void 
0!==this.e[a]?a:"other"};x.prototype=l.prototype;q.prototype=new 
x;q.prototype.R=function(a){if(isNaN(a))return"other";if(void 
0!==this.e[a])return a;a=this.M(a-this.offset);return void 
0!==this.e[a]?a:"other"};g.prototype.S=function(){this.s&&(null==this.q?this.i.push(this.s):(this.i.push(this.q.join("")),this.q=null),this.s="")};g.prototype.p=function(a){a.length&&(this.s?this.q?this.q.push(a):this.q=[this.s,
-a]:this.s=a)};g.prototype.H=function(a){this.S();this.J.push(this.i.length);this.g.push(a);this.i.push("")};g.prototype.ma=function(a){for(var
 b=Array(this.g.length),d=0;d<this.g.length;d++)b[d]=this.g[d](a);return 
b};g.prototype.D=function(a){for(var b=0;b<this.J.length;b++){var 
d=a[b];if(this.B&&void 0===d)return;this.i[this.J[b]]=d}return 
this.i.join("")};g.prototype.ea=function(a,b){var 
d=this;this.S();if(!a||0!==this.g.length){if(0===this.i.length)return 
t("");this.u&&1<this.i.length&&e.throwNoconcat(b);
-if(0===this.g.length)return 1!=this.i.length&&this.r(),t(this.i[0]);var 
c=function(a){return d.D(d.ma(a))};c.$$watchDelegate=function(a,b,c){return 
d.P(a,b,c)};c.exp=b;c.expressions=Array(this.g.length);for(var 
f=0;f<this.g.length;f++)c.expressions[f]=this.g[f].exp;return 
c}};g.prototype.P=function(a,b){var c=new r(this,a,b);return 
function(){c.I()}};r.prototype.Ea=function(a,b){var 
c=this.c.D(a);m(this.v)&&this.v.call(null,c,a===b?c:this.W,this.scope);this.W=c};r.prototype.I=function(){this.la()};
-var H=new y(new 
c("",0,null,null,null,!1,null,!1));c.prototype.pushState=function(){this.L.push(new
 y(this));s(H,this)};c.prototype.V=function(){0===this.L.length&&this.r();var 
a=this.L.pop();s(a,this)};c.prototype.m=function(a,b){a.lastIndex=this.index;var
 c=a.exec(this.text);return 
null==c||!0!==b&&c.index!=this.index?null:(this.index=a.lastIndex,c)};c.prototype.t=function(a){return
 
this.m(a,!0)};c.prototype.ha=function(a){return!!this.m(a)};c.prototype.Ba=function(a){this.o=[a];do{for(this.a=this.o.pop();this.a;)this.a();
-this.ga(this.a)}while(0<this.o.length)};c.prototype.r=function(){throw 
e("logicbug",this.text);};c.prototype.ga=function(a){void 0===a&&this.r()};var 
I=/\s*(\w+)\s*/g;c.prototype.ia=function(){var a=this.m(I);if(null==a)throw 
a=f(this.text,this.index),e("reqarg",a.h,a.f,this.text);var 
b=a[1];if("select"==b||"plural"==b)throw 
a=f(this.text,this.index),e("reqcomma",b,a.h,a.f,this.text);a=f(this.text,this.index);throw
 
e("unknarg",b,a.h,a.f,this.text);};c.prototype.Ca=function(a){this.da=a.index;this.O=
-a[0];this.ca="'"==this.O?J:K;this.a=this.ua};var 
J=/\\(?:\\|'|u[0-9A-Fa-f]{4}|x[0-9A-Fa-f]{2}|[0-7]{3}|\r\n|\n|[\s\S])|'/g,K=/\\(?:\\|"|u[0-9A-Fa-f]{4}|x[0-9A-Fa-f]{2}|[0-7]{3}|\r\n|\n|[\s\S])|"/g;c.prototype.ua=function(){var
 a=this.t(this.ca);if(null==a)throw 
a=f(this.text,this.da),e("untermstr",a.h,a.f,this.text);a==this.O&&(this.a=null)};var
 L=/\s*(plural|select)\s*,\s*/g;c.prototype.ya=function(){var 
a=this.t(L);null==a&&this.ia();switch(a[1]){case 
"plural":this.a=this.za;break;case "select":this.a=
-this.Aa;break;default:this.r()}};c.prototype.za=function(){this.e=Object.create(null);this.n=this.N;this.a=this.xa};c.prototype.Aa=function(){this.e=Object.create(null);this.a=this.n=this.ba};var
 A=/[0]|(?:[1-9][0-9]*)/g,M=new 
RegExp("\\s*offset\\s*:\\s*("+A.source+")","g");c.prototype.xa=function(){var 
a=this.m(M);this.w=null==a?0:parseInt(a[1],10);this.C=F(this.b,this.w);this.a=this.N};c.prototype.Q=function(a,b){if(void
 0!==this.e[a]){var c=f(this.text,b);throw e("dupvalue",a,c.h,c.f,this.text);
-}};var N=/\s*(\w+)/g;c.prototype.ba=function(){var 
a=this.m(N);null==a?(this.d=(new 
p(this.b,this.e)).d,this.a=null):(this.k=a[1],this.Q(this.k,a.index),this.a=this.aa)};var
 O=new 
RegExp("\\s*(?:(?:=("+A.source+"))|(\\w+))","g");c.prototype.N=function(){var 
a=this.m(O);null==a?(this.d=(new 
q(this.b,this.e,this.w,this.M)).d,this.a=null):(this.k=null!=a[1]?parseInt(a[1],10):a[2],this.Q(this.k,a.index),this.a=this.aa)};var
 P=/\s*{/g;c.prototype.aa=function(){if(!this.ha(P)){var 
a=f(this.text,this.index);
-throw e("reqopenbrace",this.k,a.h,a.f,this.text);}this.F=this.index;this.c=new 
g(this.u,this.B);this.a=this.$};var 
Q=/\\.|{{|}/g,R=/\\.|{{|#|}/g,B=/\\.|{{/g;c.prototype.fa=function(){var 
a=this.index,b;if(null==this.n){if(b=this.t(B),null==b)return 
this.G=this.text.substring(a),this.index=this.text.length,null}else 
if(b=this.t(this.n==this.N?R:Q),null==b)throw 
a=f(this.text,this.F),e("reqendbrace",this.k,a.h,a.f,this.text);var 
c=b[0];this.G=this.text.substring(a,b.index);return 
c};c.prototype.$=function(){var a=
-this.index,b=this.fa();null==b?(this.index=this.text.length,this.c.p(this.text.substring(a)),this.a=null):"\\"==b[0]?this.c.p(this.G+b[1]):(this.c.p(this.G),"{{"==b?(this.pushState(),this.o.push(this.ta),this.a=this.X):"}"==b?(this.e[this.k]=this.c.ea(!1,this.text),this.a=this.n):"#"==b?this.c.H(this.C):this.r())};c.prototype.va=function(){this.c=new
 g(this.u,this.B);this.a=this.Z};c.prototype.Z=function(){var 
a=this.index,b=this.t(B);if(null==b)this.index=this.text.length,this.c.p(this.text.substring(a)),
-this.d=this.c.ea(this.pa,this.text),this.a=null;else{var 
c=b[0];"\\"==c[0]?this.c.p(this.text.substring(a,b.index)+c[1]):(this.c.p(this.text.substring(a,b.index)),this.pushState(),this.o.push(this.wa),this.a=this.X)}};c.prototype.wa=function(){var
 
a=this.d;this.V();this.c.H(a);this.a=this.Z};c.prototype.X=function(){this.d=null;this.o.push(this.sa);this.a=this.ra};c.prototype.ta=function(){var
 a=this.d;this.V();this.c.H(a);this.a=this.$};var 
S=/\s*}}/g;c.prototype.sa=function(){if(null==this.m(S)){var a=
-f(this.text,this.index);throw 
e("reqendinterp","}}",a.h,a.f,this.text);}null==this.d&&(this.d=this.A(this.b,this.Da),this.d.exp=this.b.exp,this.d.expressions=this.b.expressions);this.a=null};c.prototype.ra=function(){this.j=[];this.l=this.index;this.a=this.Y};var
 T=/[[\]{}()'",]/g;c.prototype.Y=function(){var 
a=this.t(T);if(null==a){if(0===this.j.length){this.index=this.text.length;this.b=this.A(this.text.substring(this.l,this.index));this.b.exp=this.text.substring(this.l,this.index);this.b.expressions=
-this.b.expressions;this.a=null;return}throw 
e("badexpr",this.Ga(this.j[0]),this.text);}var 
b=a[0];if("'"==b||'"'==b)this.o.push(this.Y),this.Ca(a);else 
if(","==b){if(this.u)throw 
a=f(this.text,this.index),e("unsafe",this.u,a.h,a.f,this.text);0===this.j.length&&(this.b=this.A(this.text.substring(this.l,a.index)),this.b.exp=this.text.substring(this.l,a.index),this.b.expressions=this.b.expressions,this.a=null,this.a=this.ya)}else
 if(null!=z(b))this.j.unshift(b);else{var c=G(b);null==c&&this.r();if(0<
-this.j.length){if(c==this.j[0]){this.j.shift();return}a=f(this.text,this.index);throw
 
e("badexpr",b,a.h,a.f,z(this.j[0]),this.text);}this.index=a.index;this.b=this.A(this.text.substring(this.l,this.index));this.b.exp=this.text.substring(this.l,this.index);this.b.expressions=this.b.expressions;this.a=null}};var
 
U=["$$messageFormat","$delegate",function(a,b){if("{{"!=b.startSymbol()||"}}"!=b.endSymbol())throw
 e("nochgmustache");var 
c=a.interpolate;c.startSymbol=b.startSymbol;c.endSymbol=b.endSymbol;
-return 
c}];h=h.angular.module("ngMessageFormat",["ng"]);h.factory("$$messageFormat",["$parse","$locale","$sce","$exceptionHandler",function(a,b,d,f){function
 g(a,b,c){return function(g){try{return 
g=a?d.getTrusted(a,g):d.valueOf(g),b&&void 
0===g?g:C(g)}catch(h){f(e.interr(c,h))}}}return{interpolate:function(d,e,f,h){d=new
 c(d,0,a,b.pluralCat,g(f,h,d),e,f,h);d.Ba(d.va);return 
d.d}}}]);h.config(["$provide",function(a){a.decorator("$interpolate",U)}])})(window,window.Fa);
-//# sourceMappingURL=angular-message-format.min.js.map

http://git-wip-us.apache.org/repos/asf/struts/blob/7a350b02/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/angular-message-format.min.js.map
----------------------------------------------------------------------
diff --git 
a/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/angular-message-format.min.js.map
 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/angular-message-format.min.js.map
deleted file mode 100644
index a6da634..0000000
--- 
a/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/angular-message-format.min.js.map
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-"version":3,
-"file":"angular-message-format.min.js",
-"lineCount":25,
-"mappings":"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",
-"sources":["angular-message-format.js"],
-"names":["window","stringify","value","toJson","indexToLineAndColumn","text","index","lines","split","i","length","line","column","parseTextLiteral","parsedFn","cachedFn","PARSE_CACHE_FOR_TEXT_LITERALS","scope","listener","objectEquality","unwatch","noop","textLiteralWatcher","isFunction","call","subtractOffset","expressionFn","offset","minusOffset","context","pluralExpressionWatchListener","newValue","oldValue","MessageSelectorBase","choices","self","$interpolateMinErr","this.parsedFn","getResult","watchDelegate","MessageSelectorWatchers","msgSelector","lastMessage","messageFnWatcher","expressionFnWatcher","expressionFnListener","SelectMessage","SelectMessageProto","PluralMessage","pluralCat","PluralMessageProto","InterpolationParts","trustedContext","allOrNothing","textParts","expressionFns","expressionIndices","partialText","concatParts","InterpolationPartsWatcher","interpolationParts","previousResult","expressionFnsWatcher","newExpressionValues","oldExpressionValues","watchListe
 
ner","copyNestedParserState","src","dst","expressionMinusOffsetFn","pluralOffset","choiceKey","ruleChoiceKeyword","msgStartIndex","expressionStartIndex","NestedParserState","parser","MessageFormatParser","startIndex","$parse","stringifier","mustHaveExpression","nestedStateStack","textPart","angularOperatorStack","stringInterestsRe","stringQuote","stringStartIndex","ruleStack","rule","getEndOperator","opBegin","getBeginOperator","opEnd","Object","create","prototype","getMessageFn","MessageSelectorBase.prototype.getMessageFn","categorizeValue","MessageSelectorBase.prototype.getResult","MessageSelectorBase.prototype.watchDelegate","watchers","cancelWatch","MessageSelectorWatchers.prototype.expressionFnListener","messageFn","messageFnListener","newMessage","oldMessage","MessageSelectorWatchers.prototype.messageFnListener","MessageSelectorWatchers.prototype.cancelWatch","SelectMessage.prototype.categorizeValue","PluralMessage.prototype.categorizeValue","isNaN","category","flushPartialTex
 
t","InterpolationParts.prototype.flushPartialText","push","join","addText","InterpolationParts.prototype.addText","addExpressionFn","InterpolationParts.prototype.addExpressionFn","getExpressionValues","InterpolationParts.prototype.getExpressionValues","expressionValues","Array","InterpolationParts.prototype.getResult","expressionValue","toParsedFn","InterpolationParts.prototype.toParsedFn","originalText","errorInParseLogic","InterpolationParts.prototype.watchDelegate","watcher","InterpolationPartsWatcher.prototype.watchListener","result","InterpolationPartsWatcher.prototype.cancelWatch","EMPTY_STATE","pushState","MessageFormatParser.prototype.pushState","popState","MessageFormatParser.prototype.popState","previousState","pop","matchRe","MessageFormatParser.prototype.matchRe","re","search","lastIndex","match","exec","searchRe","MessageFormatParser.prototype.searchRe","consumeRe","MessageFormatParser.prototype.consumeRe","run","MessageFormatParser.prototype.run","initialRule","assertR
 
uleOrNull","MessageFormatParser.prototype.errorInParseLogic","MessageFormatParser.prototype.assertRuleOrNull","NEXT_WORD_RE","errorExpecting","MessageFormatParser.prototype.errorExpecting","position","word","startStringAtMatch","MessageFormatParser.prototype.startStringAtMatch","SQUOTED_STRING_INTEREST_RE","DQUOTED_STRING_INTEREST_RE","ruleInsideString","MessageFormatParser.prototype.ruleInsideString","PLURAL_OR_SELECT_ARG_TYPE_RE","rulePluralOrSelect","MessageFormatParser.prototype.rulePluralOrSelect","argType","rulePluralStyle","ruleSelectStyle","MessageFormatParser.prototype.rulePluralStyle","rulePluralValueOrKeyword","rulePluralOffset","MessageFormatParser.prototype.ruleSelectStyle","ruleSelectKeyword","NUMBER_RE","PLURAL_OFFSET_RE","RegExp","source","MessageFormatParser.prototype.rulePluralOffset","parseInt","assertChoiceKeyIsNew","MessageFormatParser.prototype.assertChoiceKeyIsNew","SELECT_KEYWORD","MessageFormatParser.prototype.ruleSelectKeyword","ruleMessageText","EXPLICIT_V
 
ALUE_OR_KEYWORD_RE","MessageFormatParser.prototype.rulePluralValueOrKeyword","BRACE_OPEN_RE","MessageFormatParser.prototype.ruleMessageText","ruleInInterpolationOrMessageText","INTERP_OR_END_MESSAGE_RE","INTERP_OR_PLURALVALUE_OR_END_MESSAGE_RE","ESCAPE_OR_MUSTACHE_BEGIN_RE","advanceInInterpolationOrMessageText","MessageFormatParser.prototype.advanceInInterpolationOrMessageText","currentIndex","substring","token","MessageFormatParser.prototype.ruleInInterpolationOrMessageText","ruleEndMustacheInInterpolationOrMessage","ruleEnteredMustache","ruleInterpolate","MessageFormatParser.prototype.ruleInterpolate","ruleInInterpolation","MessageFormatParser.prototype.ruleInInterpolation","ruleInterpolationEndMustache","MessageFormatParser.prototype.ruleInterpolationEndMustache","MessageFormatParser.prototype.ruleEnteredMustache","ruleEndMustache","ruleAngularExpression","MessageFormatParser.prototype.ruleEndMustacheInInterpolationOrMessage","INTERP_END_RE","MessageFormatParser.prototype.ruleEnd
 
Mustache","MessageFormatParser.prototype.ruleAngularExpression","ruleInAngularExpression","INTERESTING_OPERATORS_RE","MessageFormatParser.prototype.ruleInAngularExpression","innermostOperator","operator","unshift","beginOperator","shift","$$interpolateDecorator","$$messageFormat","$interpolate","interpolate","module","$$MessageFormatFactory","$locale","$sce","$exceptionHandler","getStringifier","err","$provide","angular"]
-}

Reply via email to