From: Jim Procter Date: Fri, 17 Dec 2021 17:06:58 +0000 (+0000) Subject: Update changelog and rebuild docs X-Git-Url: http://source.jalview.org/gitweb/?a=commitdiff_plain;h=466c380355cbc8f7811e1346cfe7d963b7e23453;p=jabaws.git Update changelog and rebuild docs --- diff --git a/docs/v_2_2_0/changelog.rst b/docs/v_2_2_0/changelog.rst index 3600642..6346fc0 100644 --- a/docs/v_2_2_0/changelog.rst +++ b/docs/v_2_2_0/changelog.rst @@ -2,6 +2,15 @@ Changelog ========= +.. _v2.2.1: + +Version 2.2.1 (Released 16th Dec 2021) +-------------------------------------- + +Patch release: + +* Log4j_ 1.2.x libraries replaced with Log4j2_ 2.16.0 to address security vulnerabilities + .. _v2.2: Version 2.2 (Released 18 August 2017) diff --git a/website/docs/_sources/changelog.rst.txt b/website/docs/_sources/changelog.rst.txt index 3600642..e7724c3 100644 --- a/website/docs/_sources/changelog.rst.txt +++ b/website/docs/_sources/changelog.rst.txt @@ -2,6 +2,14 @@ Changelog ========= +.. _v2.2.1: + +Version 2.2.1 (Released 16th Dec 2021) +-------------------------------------- + +Patch release: +* Log4j 1.2.x libraries replaced with Log4j2 2.16.0 to address security vulnerabilities + .. _v2.2: Version 2.2 (Released 18 August 2017) diff --git a/website/docs/_static/basic.css b/website/docs/_static/basic.css index dc88b5a..603f6a8 100644 --- a/website/docs/_static/basic.css +++ b/website/docs/_static/basic.css @@ -4,7 +4,7 @@ * * Sphinx stylesheet -- basic theme. * - * :copyright: Copyright 2007-2017 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -15,6 +15,12 @@ div.clearer { clear: both; } +div.section::after { + display: block; + content: ''; + clear: left; +} + /* -- relbar ---------------------------------------------------------------- */ div.related { @@ -81,10 +87,26 @@ div.sphinxsidebar input { font-size: 1em; } +div.sphinxsidebar #searchbox form.search { + overflow: hidden; +} + div.sphinxsidebar #searchbox input[type="text"] { - width: 170px; + float: left; + width: 80%; + padding: 0.25em; + box-sizing: border-box; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + float: left; + width: 20%; + border-left: none; + padding: 0.25em; + box-sizing: border-box; } + img { border: 0; max-width: 100%; @@ -108,7 +130,7 @@ ul.search li a { font-weight: bold; } -ul.search li div.context { +ul.search li p.context { color: #888; margin: 2px 0 0 30px; text-align: left; @@ -199,6 +221,11 @@ table.modindextable td { /* -- general body styles --------------------------------------------------- */ +div.body { + min-width: 450px; + max-width: 800px; +} + div.body p, div.body dd, div.body li, div.body blockquote { -moz-hyphens: auto; -ms-hyphens: auto; @@ -210,6 +237,16 @@ a.headerlink { visibility: hidden; } +a.brackets:before, +span.brackets > a:before{ + content: "["; +} + +a.brackets:after, +span.brackets > a:after { + content: "]"; +} + h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, @@ -240,19 +277,25 @@ p.rubric { font-weight: bold; } -img.align-left, .figure.align-left, object.align-left { +img.align-left, figure.align-left, .figure.align-left, object.align-left { clear: left; float: left; margin-right: 1em; } -img.align-right, .figure.align-right, object.align-right { +img.align-right, figure.align-right, .figure.align-right, object.align-right { clear: right; float: right; margin-left: 1em; } -img.align-center, .figure.align-center, object.align-center { +img.align-center, figure.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +img.align-default, figure.align-default, .figure.align-default { display: block; margin-left: auto; margin-right: auto; @@ -266,30 +309,41 @@ img.align-center, .figure.align-center, object.align-center { text-align: center; } +.align-default { + text-align: center; +} + .align-right { text-align: right; } /* -- sidebars -------------------------------------------------------------- */ -div.sidebar { +div.sidebar, +aside.sidebar { margin: 0 0 0.5em 1em; border: 1px solid #ddb; - padding: 7px 7px 0 7px; + padding: 7px; background-color: #ffe; width: 40%; float: right; + clear: right; + overflow-x: auto; } p.sidebar-title { font-weight: bold; } +div.admonition, div.topic, blockquote { + clear: left; +} + /* -- topics ---------------------------------------------------------------- */ div.topic { border: 1px solid #ccc; - padding: 7px 7px 0 7px; + padding: 7px; margin: 10px 0 10px 0; } @@ -311,10 +365,6 @@ div.admonition dt { font-weight: bold; } -div.admonition dl { - margin-bottom: 0; -} - p.admonition-title { margin: 0px 10px 5px 0px; font-weight: bold; @@ -325,13 +375,44 @@ div.body p.centered { margin-top: 25px; } +/* -- content of sidebars/topics/admonitions -------------------------------- */ + +div.sidebar > :last-child, +aside.sidebar > :last-child, +div.topic > :last-child, +div.admonition > :last-child { + margin-bottom: 0; +} + +div.sidebar::after, +aside.sidebar::after, +div.topic::after, +div.admonition::after, +blockquote::after { + display: block; + content: ''; + clear: both; +} + /* -- tables ---------------------------------------------------------------- */ table.docutils { + margin-top: 10px; + margin-bottom: 10px; border: 0; border-collapse: collapse; } +table.align-center { + margin-left: auto; + margin-right: auto; +} + +table.align-default { + margin-left: auto; + margin-right: auto; +} + table caption span.caption-number { font-style: italic; } @@ -365,22 +446,34 @@ table.citation td { border-bottom: none; } +th > :first-child, +td > :first-child { + margin-top: 0px; +} + +th > :last-child, +td > :last-child { + margin-bottom: 0px; +} + /* -- figures --------------------------------------------------------------- */ -div.figure { +div.figure, figure { margin: 0.5em; padding: 0.5em; } -div.figure p.caption { +div.figure p.caption, figcaption { padding: 0.3em; } -div.figure p.caption span.caption-number { +div.figure p.caption span.caption-number, +figcaption span.caption-number { font-style: italic; } -div.figure p.caption span.caption-text { +div.figure p.caption span.caption-text, +figcaption span.caption-text { } /* -- field list styles ----------------------------------------------------- */ @@ -398,6 +491,81 @@ table.field-list td, table.field-list th { margin: 0; } +.field-name { + -moz-hyphens: manual; + -ms-hyphens: manual; + -webkit-hyphens: manual; + hyphens: manual; +} + +/* -- hlist styles ---------------------------------------------------------- */ + +table.hlist { + margin: 1em 0; +} + +table.hlist td { + vertical-align: top; +} + +/* -- object description styles --------------------------------------------- */ + +.sig { + font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; +} + +.sig-name, code.descname { + background-color: transparent; + font-weight: bold; +} + +.sig-name { + font-size: 1.1em; +} + +code.descname { + font-size: 1.2em; +} + +.sig-prename, code.descclassname { + background-color: transparent; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.sig-param.n { + font-style: italic; +} + +/* C++ specific styling */ + +.sig-inline.c-texpr, +.sig-inline.cpp-texpr { + font-family: unset; +} + +.sig.c .k, .sig.c .kt, +.sig.cpp .k, .sig.cpp .kt { + color: #0033B3; +} + +.sig.c .m, +.sig.cpp .m { + color: #1750EB; +} + +.sig.c .s, .sig.c .sc, +.sig.cpp .s, .sig.cpp .sc { + color: #067D17; +} + + /* -- other body styles ----------------------------------------------------- */ ol.arabic { @@ -420,11 +588,78 @@ ol.upperroman { list-style: upper-roman; } +:not(li) > ol > li:first-child > :first-child, +:not(li) > ul > li:first-child > :first-child { + margin-top: 0px; +} + +:not(li) > ol > li:last-child > :last-child, +:not(li) > ul > li:last-child > :last-child { + margin-bottom: 0px; +} + +ol.simple ol p, +ol.simple ul p, +ul.simple ol p, +ul.simple ul p { + margin-top: 0; +} + +ol.simple > li:not(:first-child) > p, +ul.simple > li:not(:first-child) > p { + margin-top: 0; +} + +ol.simple p, +ul.simple p { + margin-bottom: 0; +} + +dl.footnote > dt, +dl.citation > dt { + float: left; + margin-right: 0.5em; +} + +dl.footnote > dd, +dl.citation > dd { + margin-bottom: 0em; +} + +dl.footnote > dd:after, +dl.citation > dd:after { + content: ""; + clear: both; +} + +dl.field-list { + display: grid; + grid-template-columns: fit-content(30%) auto; +} + +dl.field-list > dt { + font-weight: bold; + word-break: break-word; + padding-left: 0.5em; + padding-right: 5px; +} + +dl.field-list > dt:after { + content: ":"; +} + +dl.field-list > dd { + padding-left: 0.5em; + margin-top: 0em; + margin-left: 0em; + margin-bottom: 0em; +} + dl { margin-bottom: 15px; } -dd p { +dd > :first-child { margin-top: 0px; } @@ -438,21 +673,22 @@ dd { margin-left: 30px; } -dt:target, .highlighted { - background-color: #fbe54e; +dl > dd:last-child, +dl > dd:last-child > :last-child { + margin-bottom: 0; } -dl.glossary dt { - font-weight: bold; - font-size: 1.1em; +dt:target, span.highlighted { + background-color: #fbe54e; } -.optional { - font-size: 1.3em; +rect.highlighted { + fill: #fbe54e; } -.sig-paren { - font-size: larger; +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; } .versionmodified { @@ -493,6 +729,13 @@ dl.glossary dt { font-style: oblique; } +.classifier:before { + font-style: normal; + margin: 0 0.5em; + content: ":"; + display: inline-block; +} + abbr, acronym { border-bottom: dotted 1px; cursor: help; @@ -505,6 +748,10 @@ pre { overflow-y: hidden; /* fixes display issues on Chrome browsers */ } +pre, div[class*="highlight-"] { + clear: both; +} + span.pre { -moz-hyphens: none; -ms-hyphens: none; @@ -512,22 +759,57 @@ span.pre { hyphens: none; } +div[class*="highlight-"] { + margin: 1em 0; +} + td.linenos pre { - padding: 5px 0px; border: 0; background-color: transparent; color: #aaa; } table.highlighttable { - margin-left: 0.5em; + display: block; +} + +table.highlighttable tbody { + display: block; +} + +table.highlighttable tr { + display: flex; } table.highlighttable td { - padding: 0 0.5em 0 0.5em; + margin: 0; + padding: 0; +} + +table.highlighttable td.linenos { + padding-right: 0.5em; +} + +table.highlighttable td.code { + flex: 1; + overflow: hidden; +} + +.highlight .hll { + display: block; +} + +div.highlight pre, +table.highlighttable pre { + margin: 0; +} + +div.code-block-caption + div { + margin-top: 0; } div.code-block-caption { + margin-top: 1em; padding: 2px 5px; font-size: small; } @@ -536,8 +818,14 @@ div.code-block-caption code { background-color: transparent; } -div.code-block-caption + div > div.highlight > pre { - margin-top: 0; +table.highlighttable td.linenos, +span.linenos, +div.highlight span.gp { /* gp: Generic.Prompt */ + user-select: none; + -webkit-user-select: text; /* Safari fallback only */ + -webkit-user-select: none; /* Chrome/Safari */ + -moz-user-select: none; /* Firefox */ + -ms-user-select: none; /* IE10+ */ } div.code-block-caption span.caption-number { @@ -549,21 +837,7 @@ div.code-block-caption span.caption-text { } div.literal-block-wrapper { - padding: 1em 1em 0; -} - -div.literal-block-wrapper div.highlight { - margin: 0; -} - -code.descname { - background-color: transparent; - font-weight: bold; - font-size: 1.2em; -} - -code.descclassname { - background-color: transparent; + margin: 1em 0; } code.xref, a code { @@ -604,8 +878,7 @@ span.eqno { } span.eqno a.headerlink { - position: relative; - left: 0px; + position: absolute; z-index: 1; } diff --git a/website/docs/_static/doctools.js b/website/docs/_static/doctools.js index 5654977..8cbf1b1 100644 --- a/website/docs/_static/doctools.js +++ b/website/docs/_static/doctools.js @@ -4,7 +4,7 @@ * * Sphinx JavaScript utilities for all documentation. * - * :copyright: Copyright 2007-2017 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -29,9 +29,14 @@ if (!window.console || !console.firebug) { /** * small helper function to urldecode strings + * + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL */ jQuery.urldecode = function(x) { - return decodeURIComponent(x).replace(/\+/g, ' '); + if (!x) { + return x + } + return decodeURIComponent(x.replace(/\+/g, ' ')); }; /** @@ -45,7 +50,7 @@ jQuery.urlencode = encodeURIComponent; * it will always return arrays of strings for the value parts. */ jQuery.getQueryParameters = function(s) { - if (typeof s == 'undefined') + if (typeof s === 'undefined') s = document.location.search; var parts = s.substr(s.indexOf('?') + 1).split('&'); var result = {}; @@ -66,29 +71,54 @@ jQuery.getQueryParameters = function(s) { * span elements with the given class name. */ jQuery.fn.highlightText = function(text, className) { - function highlight(node) { - if (node.nodeType == 3) { + function highlight(node, addItems) { + if (node.nodeType === 3) { var val = node.nodeValue; var pos = val.toLowerCase().indexOf(text); - if (pos >= 0 && !jQuery(node.parentNode).hasClass(className)) { - var span = document.createElement("span"); - span.className = className; + if (pos >= 0 && + !jQuery(node.parentNode).hasClass(className) && + !jQuery(node.parentNode).hasClass("nohighlight")) { + var span; + var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.className = className; + } span.appendChild(document.createTextNode(val.substr(pos, text.length))); node.parentNode.insertBefore(span, node.parentNode.insertBefore( document.createTextNode(val.substr(pos + text.length)), node.nextSibling)); node.nodeValue = val.substr(0, pos); + if (isInSVG) { + var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); + var bbox = node.parentElement.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute('class', className); + addItems.push({ + "parent": node.parentNode, + "target": rect}); + } } } else if (!jQuery(node).is("button, select, textarea")) { jQuery.each(node.childNodes, function() { - highlight(this); + highlight(this, addItems); }); } } - return this.each(function() { - highlight(this); + var addItems = []; + var result = this.each(function() { + highlight(this, addItems); }); + for (var i = 0; i < addItems.length; ++i) { + jQuery(addItems[i].parent).before(addItems[i].target); + } + return result; }; /* @@ -124,28 +154,30 @@ var Documentation = { this.fixFirefoxAnchorBug(); this.highlightSearchWords(); this.initIndexTable(); - + if (DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) { + this.initOnKeyListeners(); + } }, /** * i18n support */ TRANSLATIONS : {}, - PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; }, + PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; }, LOCALE : 'unknown', // gettext and ngettext don't access this so that the functions // can safely bound to a different name (_ = Documentation.gettext) gettext : function(string) { var translated = Documentation.TRANSLATIONS[string]; - if (typeof translated == 'undefined') + if (typeof translated === 'undefined') return string; - return (typeof translated == 'string') ? translated : translated[0]; + return (typeof translated === 'string') ? translated : translated[0]; }, ngettext : function(singular, plural, n) { var translated = Documentation.TRANSLATIONS[singular]; - if (typeof translated == 'undefined') + if (typeof translated === 'undefined') return (n == 1) ? singular : plural; return translated[Documentation.PLURALEXPR(n)]; }, @@ -180,7 +212,7 @@ var Documentation = { * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075 */ fixFirefoxAnchorBug : function() { - if (document.location.hash) + if (document.location.hash && $.browser.mozilla) window.setTimeout(function() { document.location.href += ''; }, 10); @@ -216,7 +248,7 @@ var Documentation = { var src = $(this).attr('src'); var idnum = $(this).attr('id').substr(7); $('tr.cg-' + idnum).toggle(); - if (src.substr(-9) == 'minus.png') + if (src.substr(-9) === 'minus.png') $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); else $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); @@ -248,7 +280,7 @@ var Documentation = { var path = document.location.pathname; var parts = path.split(/\//); $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { - if (this == '..') + if (this === '..') parts.pop(); }); var url = parts.join('/'); @@ -256,10 +288,12 @@ var Documentation = { }, initOnKeyListeners: function() { - $(document).keyup(function(event) { + $(document).keydown(function(event) { var activeElementType = document.activeElement.tagName; - // don't navigate when in search box or textarea - if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT') { + // don't navigate when in search box, textarea, dropdown or button + if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT' + && activeElementType !== 'BUTTON' && !event.altKey && !event.ctrlKey && !event.metaKey + && !event.shiftKey) { switch (event.keyCode) { case 37: // left var prevHref = $('link[rel="prev"]').prop('href'); @@ -267,12 +301,14 @@ var Documentation = { window.location.href = prevHref; return false; } + break; case 39: // right var nextHref = $('link[rel="next"]').prop('href'); if (nextHref) { window.location.href = nextHref; return false; } + break; } } }); @@ -284,4 +320,4 @@ _ = Documentation.gettext; $(document).ready(function() { Documentation.init(); -}); \ No newline at end of file +}); diff --git a/website/docs/_static/jquery.js b/website/docs/_static/jquery.js index f6a6a99..b061403 100644 --- a/website/docs/_static/jquery.js +++ b/website/docs/_static/jquery.js @@ -1,4 +1,2 @@ -/*! jQuery v3.1.0 | (c) jQuery Foundation | jquery.org/license */ -!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.1.0",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null!=a?a<0?this[a+this.length]:this[a]:f.call(this)},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"label"in b&&b.disabled===a||"form"in b&&b.disabled===a||"form"in b&&b.disabled===!1&&(b.isDisabled===a||b.isDisabled!==!a&&("label"in b||!ea(b))!==a)}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}},d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(_,aa),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=V.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(_,aa),$.test(j[0].type)&&qa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&sa(j),!a)return G.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,!b||$.test(a)&&qa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext,B=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,C=/^.[^:#\[\.,]*$/;function D(a,b,c){if(r.isFunction(b))return r.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return r.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(C.test(b))return r.filter(b,a,c);b=r.filter(b,a)}return r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType})}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(D(this,a||[],!1))},not:function(a){return this.pushStack(D(this,a||[],!0))},is:function(a){return!!D(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var E,F=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,G=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||E,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:F.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),B.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};G.prototype=r.fn,E=r(d);var H=/^(?:parents|prev(?:Until|All))/,I={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function J(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return J(a,"nextSibling")},prev:function(a){return J(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return a.contentDocument||r.merge([],a.childNodes)}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(I[a]||r.uniqueSort(e),H.test(a)&&e.reverse()),this.pushStack(e)}});var K=/\S+/g;function L(a){var b={};return r.each(a.match(K)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?L(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function M(a){return a}function N(a){throw a}function O(a,b,c){var d;try{a&&r.isFunction(d=a.promise)?d.call(a).done(b).fail(c):a&&r.isFunction(d=a.then)?d.call(a,b,c):b.call(void 0,a)}catch(a){c.call(void 0,a)}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b=f&&(d!==N&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:M,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:M)),c[2][3].add(g(0,a,r.isFunction(d)?d:N))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(O(a,g.done(h(c)).resolve,g.reject),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)O(e[c],h(c),g.reject);return g.promise()}});var P=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&P.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var Q=r.Deferred();r.fn.ready=function(a){return Q.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,holdReady:function(a){a?r.readyWait++:r.ready(!0)},ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||Q.resolveWith(d,[r]))}}),r.ready.then=Q.then;function R(){d.removeEventListener("DOMContentLoaded",R),a.removeEventListener("load",R),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",R),a.addEventListener("load",R));var S=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)S(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0, -r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h1,null,!0)},removeData:function(a){return this.each(function(){W.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=V.get(a,b),c&&(!d||r.isArray(c)?d=V.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return V.get(a,c)||V.access(a,c,{empty:r.Callbacks("once memory").add(function(){V.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length\x20\t\r\n\f]+)/i,ja=/^$|\/(?:java|ecma)script/i,ka={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ka.optgroup=ka.option,ka.tbody=ka.tfoot=ka.colgroup=ka.caption=ka.thead,ka.th=ka.td;function la(a,b){var c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&r.nodeName(a,b)?r.merge([a],c):c}function ma(a,b){for(var c=0,d=a.length;c-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=la(l.appendChild(f),"script"),j&&ma(g),c){k=0;while(f=g[k++])ja.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var pa=d.documentElement,qa=/^key/,ra=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,sa=/^([^.]*)(?:\.(.+)|)/;function ta(){return!0}function ua(){return!1}function va(){try{return d.activeElement}catch(a){}}function wa(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)wa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=ua;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(pa,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(K)||[""],j=b.length;while(j--)h=sa.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.hasData(a)&&V.get(a);if(q&&(i=q.events)){b=(b||"").match(K)||[""],j=b.length;while(j--)if(h=sa.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&V.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(V.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c-1:r.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h\x20\t\r\n\f]*)[^>]*)\/>/gi,ya=/\s*$/g;function Ca(a,b){return r.nodeName(a,"table")&&r.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a:a}function Da(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Ea(a){var b=Aa.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Fa(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(V.hasData(a)&&(f=V.access(a),g=V.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c1&&"string"==typeof q&&!o.checkClone&&za.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ha(f,b,c,d)});if(m&&(e=oa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(la(e,"script"),Da),i=h.length;l")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=la(h),f=la(a),d=0,e=f.length;d0&&ma(g,!i&&la(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(T(c)){if(b=c[V.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[V.expando]=void 0}c[W.expando]&&(c[W.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ia(this,a,!0)},remove:function(a){return Ia(this,a)},text:function(a){return S(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.appendChild(a)}})},prepend:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(la(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return S(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!ya.test(a)&&!ka[(ia.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c1)}});function Xa(a,b,c,d,e){return new Xa.prototype.init(a,b,c,d,e)}r.Tween=Xa,Xa.prototype={constructor:Xa,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=Xa.propHooks[this.prop];return a&&a.get?a.get(this):Xa.propHooks._default.get(this)},run:function(a){var b,c=Xa.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Xa.propHooks._default.set(this),this}},Xa.prototype.init.prototype=Xa.prototype,Xa.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},Xa.propHooks.scrollTop=Xa.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=Xa.prototype.init,r.fx.step={};var Ya,Za,$a=/^(?:toggle|show|hide)$/,_a=/queueHooks$/;function ab(){Za&&(a.requestAnimationFrame(ab),r.fx.tick())}function bb(){return a.setTimeout(function(){Ya=void 0}),Ya=r.now()}function cb(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=aa[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function db(a,b,c){for(var d,e=(gb.tweeners[b]||[]).concat(gb.tweeners["*"]),f=0,g=e.length;f1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?hb:void 0)),void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&r.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(K); -if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),hb={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=ib[b]||r.find.attr;ib[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=ib[g],ib[g]=e,e=null!=c(a,b,d)?g:null,ib[g]=f),e}});var jb=/^(?:input|select|textarea|button)$/i,kb=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return S(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):jb.test(a.nodeName)||kb.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});var lb=/[\t\r\n\f]/g;function mb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,mb(this)))});if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=mb(c),d=1===c.nodeType&&(" "+e+" ").replace(lb," ")){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=r.trim(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,mb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=mb(c),d=1===c.nodeType&&(" "+e+" ").replace(lb," ")){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=r.trim(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,mb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(K)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=mb(this),b&&V.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":V.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+mb(c)+" ").replace(lb," ").indexOf(b)>-1)return!0;return!1}});var nb=/\r/g,ob=/[\x20\t\r\n\f]+/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":r.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(nb,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:r.trim(r.text(a)).replace(ob," ")}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type,g=f?null:[],h=f?e+1:d.length,i=e<0?h:f?e:0;i-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(r.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var pb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!pb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,pb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(V.get(h,"events")||{})[b.type]&&V.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&T(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!T(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=V.access(d,b);e||d.addEventListener(a,c,!0),V.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=V.access(d,b)-1;e?V.access(d,b,e):(d.removeEventListener(a,c,!0),V.remove(d,b))}}});var qb=a.location,rb=r.now(),sb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var tb=/\[\]$/,ub=/\r?\n/g,vb=/^(?:submit|button|image|reset|file)$/i,wb=/^(?:input|select|textarea|keygen)/i;function xb(a,b,c,d){var e;if(r.isArray(b))r.each(b,function(b,e){c||tb.test(a)?d(a,e):xb(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)xb(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(r.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)xb(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&wb.test(this.nodeName)&&!vb.test(a)&&(this.checked||!ha.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:r.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(ub,"\r\n")}}):{name:b.name,value:c.replace(ub,"\r\n")}}).get()}});var yb=/%20/g,zb=/#.*$/,Ab=/([?&])_=[^&]*/,Bb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Cb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Db=/^(?:GET|HEAD)$/,Eb=/^\/\//,Fb={},Gb={},Hb="*/".concat("*"),Ib=d.createElement("a");Ib.href=qb.href;function Jb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(K)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Kb(a,b,c,d){var e={},f=a===Gb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Lb(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Mb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Nb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:qb.href,type:"GET",isLocal:Cb.test(qb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Hb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Lb(Lb(a,r.ajaxSettings),b):Lb(r.ajaxSettings,a)},ajaxPrefilter:Jb(Fb),ajaxTransport:Jb(Gb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Bb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||qb.href)+"").replace(Eb,qb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(K)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Ib.protocol+"//"+Ib.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Kb(Fb,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Db.test(o.type),f=o.url.replace(zb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(yb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(sb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Ab,""),n=(sb.test(f)?"&":"?")+"_="+rb++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Hb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Kb(Gb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Mb(o,y,d)),v=Nb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Ob={0:200,1223:204},Pb=r.ajaxSettings.xhr();o.cors=!!Pb&&"withCredentials"in Pb,o.ajax=Pb=!!Pb,r.ajaxTransport(function(b){var c,d;if(o.cors||Pb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Ob[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r(" + diff --git a/website/docs/changelog.html b/website/docs/changelog.html index 67fd3dc..4e03c18 100644 --- a/website/docs/changelog.html +++ b/website/docs/changelog.html @@ -5,7 +5,8 @@ - + + Changelog — JABAWS 2.2 documentation @@ -30,6 +31,10 @@ + + + + Contents:

+

Contents:

  • Getting Started
  • Included Tools
  • @@ -102,6 +107,7 @@
  • Usage Statistics
  • Citations
  • Changelog
      +
    • Version 2.2.1 (Released 16th Dec 2021)
    • Version 2.2 (Released 18 August 2017)
    • Version 2.1 (Released 1st Oct 2013)
    • Version 2.0.1 (Released 2nd Jul 2013)
    • @@ -172,89 +178,94 @@
      -
      +

      Changelog¶

      -
      +
      +

      Version 2.2.1 (Released 16th Dec 2021)¶

      +

      Patch release: +* Log4j 1.2.x libraries replaced with Log4j2 2.16.0 to address security vulnerabilities

      +
      +

      Version 2.2 (Released 18 August 2017)¶

      The website and documentation were improved:

        -
      • Sphinx is now used to generate our documentation pages.
      • -
      • Documentation was updated to reflect the latest changes introduced in the project.
      • -
      • Usage Statistics are now cached and refreshed every hour for improved website loading times.
      • -
      • Service Status are now similarly cached and monitored every 10 minutes.
      • -
      • We now provide a Docker image which allows for JABAWS to be run in Docker containers.
      • -
      • Downloading the JABAWS distributions no longer require ‘sign in’ or ‘sign up’ to a user account.
      • -
      • The pre-configured JABAWS Amazon Machine Image (AMI), which allowed for JABAWS to be run in the Amazon EC2 cloud, is no longer provided due to very limited use by the scientific community peers.
      • +
      • Sphinx is now used to generate our documentation pages.

      • +
      • Documentation was updated to reflect the latest changes introduced in the project.

      • +
      • Usage Statistics are now cached and refreshed every hour for improved website loading times.

      • +
      • Service Status are now similarly cached and monitored every 10 minutes.

      • +
      • We now provide a Docker image which allows for JABAWS to be run in Docker containers.

      • +
      • Downloading the JABAWS distributions no longer require ‘sign in’ or ‘sign up’ to a user account.

      • +
      • The pre-configured JABAWS Amazon Machine Image (AMI), which allowed for JABAWS to be run in the Amazon EC2 cloud, is no longer provided due to very limited use by the scientific community peers.

      The versions of several application programs provided by JABAWS were bumped to the latest available.

        -
      • Clustal Omega was updated to version 1.2.4
      • -
      • ClustalW was updated to version 2.1
      • -
      • Mafft was updated to version 7.3.10
      • -
      • T-Coffee was updated to version 11.00.8cbe486
      • -
      • AACon was updated to version 1.1
      • -
      • Protein secondary structure prediction with Jpred (version 3.0.3) was dropped from the list of provided services, as the use of the dedicated Jpred REST API (Jpred 4) is encouraged and recommended. This is the version that is currently provided within Jalview 2.9 or later.
      • +
      • Clustal Omega was updated to version 1.2.4

      • +
      • ClustalW was updated to version 2.1

      • +
      • Mafft was updated to version 7.3.10

      • +
      • T-Coffee was updated to version 11.00.8cbe486

      • +
      • AACon was updated to version 1.1

      • +
      • Protein secondary structure prediction with Jpred (version 3.0.3) was dropped from the list of provided services, as the use of the dedicated Jpred REST API (Jpred 4) is encouraged and recommended. This is the version that is currently provided within Jalview 2.9 or later.

      -

      Note

      -

      JABAWS version 2.2 is fully backward compatible with JABAWS v1.0 and v2.0. This means all JABAWS 1.0, 2.0, 2.0.1 and 2.1 clients should also be able to use JABAWS 2.2 services.

      +

      Note

      +

      JABAWS version 2.2 is fully backward compatible with JABAWS v1.0 and v2.0. This means all JABAWS 1.0, 2.0, 2.0.1 and 2.1 clients should also be able to use JABAWS 2.2 services.


      -
      -
      +
      +

      Version 2.1 (Released 1st Oct 2013)¶

      Several new web services are available in this version of JABAWS:

        -
      • Two multiple sequence aligners (MSAprobs and GLprobs), both services return the standard Alignment object
      • -
      • RNAalifoldWS returns RNAStructScoreManager, which is the standard ScoreManager objects with several additional methods
      • -
      • JpredWS returns the JpredAligment object, which is the standard alignment with additional methods for extracting Jpred predictions. These predictions are supplied as additional sequences in the aligment
      • +
      • Two multiple sequence aligners (MSAprobs and GLprobs), both services return the standard Alignment object

      • +
      • RNAalifoldWS returns RNAStructScoreManager, which is the standard ScoreManager objects with several additional methods

      • +
      • JpredWS returns the JpredAligment object, which is the standard alignment with additional methods for extracting Jpred predictions. These predictions are supplied as additional sequences in the aligment

      Some bugs have been fixed and several improvements have been done:

        -
      • WS status servlet returns version and some additional information on each web service
      • -
      • a bug with path to help in the client
      • -
      • Fix two bug with the Google Analytics library: no-stop due to running thread
      • -
      • GoogleAnalytics gets proper JABAWS version
      • +
      • WS status servlet returns version and some additional information on each web service

      • +
      • a bug with path to help in the client

      • +
      • Fix two bug with the Google Analytics library: no-stop due to running thread

      • +
      • GoogleAnalytics gets proper JABAWS version


      -
      -
      + +

      Version 2.0.1 (Released 2nd Jul 2013)¶

      JABAWS 2.0.1 includes several bug fixes and minor updates for JABAWS Version 2.0. These are listed below:

        -
      • Disembl returned swapped strings for HOTLOOPS and REM465
      • -
      • Jronn failed to process jobs with more than 3 sequences
      • -
      • JABAWS could not deal with FASTA records with ‘>’ symbols in the record identificator
      • -
      • Change of parameter description for AACon: parameters have been replaced with options for calculation methods. This allows a user to get several AACon’s conservation scores in one call
      • -
      • JABAWS never cleaned up job directories. Now JABAWS deletes the job directory if it exist longer than a period defined in Engine.properties
      • -
      • Default web security has been incompatible with Tomcat 7.0.31 and newer
      • -
      • Documentation has been updated
      • +
      • Disembl returned swapped strings for HOTLOOPS and REM465

      • +
      • Jronn failed to process jobs with more than 3 sequences

      • +
      • JABAWS could not deal with FASTA records with ‘>’ symbols in the record identificator

      • +
      • Change of parameter description for AACon: parameters have been replaced with options for calculation methods. This allows a user to get several AACon’s conservation scores in one call

      • +
      • JABAWS never cleaned up job directories. Now JABAWS deletes the job directory if it exist longer than a period defined in Engine.properties

      • +
      • Default web security has been incompatible with Tomcat 7.0.31 and newer

      • +
      • Documentation has been updated


      -
      -
      + +

      Version 2 (Released 16th Dec 2011)¶

      Compared to JABAWS 1, JABAWS 2 offers a greater number and diversity of web services, Amazon EC2 integration and improved ease of use.

      It now contains:

        -
      • Updates for all multiple sequence alignment services
      • -
      • Four new protein disorder prediction services
      • -
      • Clustal Omega multiple sequence alignment web service
      • -
      • Amino acid conservation service
      • -
      • Web services execution statistics visualization
      • -
      • Web services status check from a web page
      • -
      • VirtualBox support was dropped in favour of VMware
      • -
      • New WAR package for Mac users
      • -
      • Amazon Machine Image (AMI) distributive to enable users to use JABAWS on the EC2 cloud
      • -
      • Improved web services client API
      • -
      • Simplified WAR package installation
      • +
      • Updates for all multiple sequence alignment services

      • +
      • Four new protein disorder prediction services

      • +
      • Clustal Omega multiple sequence alignment web service

      • +
      • Amino acid conservation service

      • +
      • Web services execution statistics visualization

      • +
      • Web services status check from a web page

      • +
      • VirtualBox support was dropped in favour of VMware

      • +
      • New WAR package for Mac users

      • +
      • Amazon Machine Image (AMI) distributive to enable users to use JABAWS on the EC2 cloud

      • +
      • Improved web services client API

      • +
      • Simplified WAR package installation

      -

      Warning

      -

      To access the analysis web services introduced in JABAWS 2.0, clients that were designed for JABAWS v1.0 must be updated.

      -
      -
      +

      Warning

      +

      To access the analysis web services introduced in JABAWS 2.0, clients that were designed for JABAWS v1.0 must be updated.

      + +
      @@ -305,6 +316,7 @@ SOURCELINK_SUFFIX: '.txt' }; + diff --git a/website/docs/citations.html b/website/docs/citations.html index f579a95..34b8bc9 100644 --- a/website/docs/citations.html +++ b/website/docs/citations.html @@ -5,7 +5,8 @@ - + + Citations — JABAWS 2.2 documentation @@ -30,6 +31,10 @@ + + + + Contents:

      +

      Contents:

      • Getting Started
      • Included Tools
      • @@ -167,15 +172,15 @@
        -
        +

        Citations¶

        -

        Note

        -

        It is important that you cite JABAWS when you use it. Citing us helps us funding the work we do and allow us to continue to improve the project further.

        +

        Note

        +

        It is important that you cite JABAWS when you use it. Citing us helps us funding the work we do and allow us to continue to improve the project further.

        Peter V. Troshin, James B. Procter and Geoffrey J. Barton - Java Bioinformatics Analysis Web Services for Multiple Sequence Alignment - JABAWS:MS Bioinformatics 2011. 27 (14): 2001-2002. doi: 10.1093/bioinformatics/btr304

        Peter V. Troshin, Alexander Sherstnev, James B. Procter, Daniel L. Barton, Fábio Madeira and Geoffrey J. Barton (2017) JABAWS 2.2 Distributed Web Services for Bioinformatics: Protein Disorder, Conservation and RNA Secondary Structure. Paper in preparation.

        -
        +
        @@ -228,6 +233,7 @@ SOURCELINK_SUFFIX: '.txt' }; + diff --git a/website/docs/client.html b/website/docs/client.html index 84b2274..16bf255 100644 --- a/website/docs/client.html +++ b/website/docs/client.html @@ -5,7 +5,8 @@ - + + Command Line Client (CLI) — JABAWS 2.2 documentation @@ -30,6 +31,10 @@ + + + + Contents:

        +

        Contents:

        • Getting Started
        • Included Tools
        • @@ -172,27 +177,27 @@
          -
          +

          Command Line Client (CLI)¶

          The JABAWS client is a Java application that lets you run the programs for which a JABAWS server provides web services. This command line application this is able to call any of the JABAWS web services on any instance of JABAWS Server available over the web. The basic client is useful if you would like to test or execute the programs provided by the JABAWS server in your own scripts, but you do not want to handle any web service specific details. The client is an open source software, so you can also use the source code to as an example how to manipulate with JABAWS web services in your own code. The JABA Web Services are WS-I compliant. This means that you can access them from any language that has libraries or functions for consuming interoperable SOAP web services. More information on how to develop software that access JABAWS services is provided in the documentation pages.

          The command line client comes as a part of client package which you are welcome to download. The command line client can be used to align sequences using any of JABAWS supported web services. The client is OS independent and supports most of the functions which can be accessed programmatically via JABAWS API. Using this client you could align sequences using presets or custom parameters, please see examples of this below. Here is the list of options supported by the command line client.


          -
          +

          Installing¶

          -

          Tip

          -

          Check if you are running the recommended version of Java.

          +

          Tip

          +

          Check if you are running the recommended version of Java.

          You need Java 7 or higher installed in your machine to be able to run the JABAWS CLI client. Please see the Java web site for up to date instructions and downloads.


          -
          -
          +
          +

          Usage¶

          -
          java -jar jabaws-full-client-2.2.0.jar
          +
          java -jar jabaws-full-client-2.2.0.jar
           
          -
          Usage:
          +
          Usage:
           java -jar <path_to_jar_file> -h=host_and_context -s=serviceName ACTION [OPTIONS]
           -h=<host_and_context> - a full URL to the JABAWS web server including context path e.g. http://10.31.10.159:8080/ws
           -s=<ServiceName> - one of [MafftWS, MuscleWS, ClustalWS, ClustalOWS, TcoffeeWS, ProbconsWS, AAConWS, JronnWS, DisemblWS, GlobPlotWS, IUPredWS]
          @@ -215,15 +220,15 @@ Please note that -r and -f options cannot be used together. Alignment is done wi
           

          -
          -
          +
          +

          Example Usage¶

          Align sequences from input.fasta file using Mafft web service with default settings, print alignment in Clustal format to console.

          -
          java -jar jabaws-full-client-2.2.0.jar -h=http://myhost.compbio.ac.uk:8080/jabaws -s=MafftWS -i=d:\input.fasta
          +
          java -jar jabaws-full-client-2.2.0.jar -h=http://myhost.compbio.ac.uk:8080/jabaws -s=MafftWS -i=d:\input.fasta
           

          Content of input.fasta file is show below (please note sequences has been trimmed for clarity)

          -
          >Foobar
          +
          >Foobar
           MTADGPRELLQLRAAVRHRPQDFVAWL
           >Bar
           MGDTTAGEMAVQRGLALHQ
          @@ -232,11 +237,11 @@ Please note that -r and -f options cannot be used together. Alignment is done wi
           

          Align as in above example, but write output alignment in a file out.clustal, using parameters defined in prm.in file

          -
          java -jar jabaws-full-client-2.2.0.jar -h=http://myhost.compbio.ac.uk:8080/jabaws  -s=MafftWS -i=d:\input.fasta -o=d:\out.clustal -f=prm.in
          +
          java -jar jabaws-full-client-2.2.0.jar -h=http://myhost.compbio.ac.uk:8080/jabaws  -s=MafftWS -i=d:\input.fasta -o=d:\out.clustal -f=prm.in
           

          The content of the prm.in file is shown below

          -
          --nofft
          +
          --nofft
           --noscore
           --fastaparttree
           --retree=10
          @@ -244,13 +249,13 @@ Please note that -r and -f options cannot be used together. Alignment is done wi
           

          The format of the file is the same for all JABAWS web services. Parameters are specified in exactly the same way as for native executables - alignment programs like Mafft etc. So parameters which you can use with command line version of an alignment program can be used with JABAWS. Most of the settings controlling alignment process are supported, but because any output has to be handled by JABAWS, settings controlling output are not allowed to be changed. For a list of parameters supported by a web service see the next example. In prm.in parameters are separated by the new line, and name of the parameter is separated from its value with an equals sign. This format is constant no matter which JABAWS web service is used.

          -
          java -jar jabaws-full-client-2.2.0.jar -h=http://myhost.compbio.ac.uk:8080/jabaws -s=MafftWS -parameters
          +
          java -jar jabaws-full-client-2.2.0.jar -h=http://myhost.compbio.ac.uk:8080/jabaws -s=MafftWS -parameters
           

          The same client can be used to access JABAWS on different hosts. Just point the client to the host you want to use by changing the value of -h key.

          -

          For example you used -h=http://myhost.compbio.ac.uk:8080/jabaws server, now you want to use another server to -h=http://mylabserver.myuni.edu. This comes handy if your favorite server is off and you need to do the job yesterday.

          -
          -
          +

          For example you used -h=http://myhost.compbio.ac.uk:8080/jabaws server, now you want to use another server to -h=http://mylabserver.myuni.edu. This comes handy if your favorite server is off and you need to do the job yesterday.

          +
          +
          @@ -303,6 +308,7 @@ Please note that -r and -f options cannot be used together. Alignment is done wi SOURCELINK_SUFFIX: '.txt' }; + diff --git a/website/docs/develop.html b/website/docs/develop.html index 17bb6a5..6459087 100644 --- a/website/docs/develop.html +++ b/website/docs/develop.html @@ -5,7 +5,8 @@ - + + For Developers — JABAWS 2.2 documentation @@ -30,6 +31,10 @@ + + + + Contents:

          +

          Contents:

          • Getting Started
          • Included Tools
          • @@ -192,27 +197,27 @@
            -
            +

            For Developers¶

            -
            +

            Source Code¶

            -

            Note

            -

            This is an open source project. If you want to contribute or report an issue have a look at our Git-tracker.

            +

            Note

            +

            This is an open source project. If you want to contribute or report an issue have a look at our Git-tracker.

            Publicly available Git repository: http://source.jalview.org/gitweb/?p=jabaws.git

            -
            git clone http://source.jalview.org/git/jabaws.git
            +
            git clone http://source.jalview.org/git/jabaws.git
             

            -
            -
            +
            +

            The API¶

            Data Model JavaDoc - read this if your are coding against JABA Web Services

            Complete JavaDoc - for developers who want to use JABAWS framework and use Engines and Executables directly


            -
            -
            +
            +

            Structure of the project¶

            folder binaries contains native executables e.g. clustalw
            @@ -239,8 +244,8 @@
            folder testsrc contains the JABAWS unit tests

            -
            -
            + +

            The code structure¶

            _images/ws-structure.png

            Each source folder depends on the upper folders for compilation. For example, the datamodel is the top level folder so it has no other dependencies on other JABAWS code. The Engine level depends on the datamodel to compile etc. The web services folder is the bottom layer and depends on all the other source code.

            @@ -248,114 +253,114 @@

            The second layer contains code for execution of the wrappers, which are the abstraction describing native executables. JABAWS can execute tasks locally that is on the same machine as JVM and on the cluster. Thus currently code on this layer contain two engines. This layer depends on the layer underneath, the data model layer, but is completely independent from the code above.

            The third layer consists of the wrappers for the native executables and classes to handle their configuration. It depends on the engines and the data model, but know nothing about the web services.

            Finally, the upper layer contains the web services, that depend on all the layers below.

            -

            The layer isolation is archived though specially designed compilation task which is executed sequentially in several stages so that the first layer compiles before any other layers, second layer compiles after that and process continies before all the code is compiled. Any violation of the layer boundaries results in the compilation failure. Use Ant “Compile” or “Complile_with_debug” tasks to perform the staged compilation.

            +

            The layer isolation is archived though specially designed compilation task which is executed sequentially in several stages so that the first layer compiles before any other layers, second layer compiles after that and process continies before all the code is compiled. Any violation of the layer boundaries results in the compilation failure. Use Ant “Compile” or “Complile_with_debug” tasks to perform the staged compilation.

            A client package contains only classes from data model layer and a simple web services client. Framework package is for anyone who want to use JABAWS framework for controlling native executables in local or cluster environments. Framework exclude the web services layer. Server package contains all the code.


            -
            -
            + +

            Unit Testing¶

            JABAWS uses TestNG framework for testing. The test results for the JABAWS package offered for download can be found at: Test Results JABAWS uses TestNG for testing. There is a TestNG plugin available for Eclipse which has functionality similar to JUnit. However, no plugins are necessary to run the test cases, as testng jar is supplied with JABAWS together with an ant tasks to run the test cases.

            Several testing groups are supported:

              -
            • All tests (‘Test’)
            • -
            • Cluster tests (‘Run_cluster_dependent_test’)
            • -
            • Cluster independent tests (‘All_cluster_independent_tests’)
            • -
            • Windows only tests (‘All_cluster_independent_windows_only_tests’)
            • -
            • Performance and stability tests (‘Long_tests’)
            • -
            • Re-run failed tests (‘Rerun_failed_tests’)
            • -
            • Run custom test (‘CustomTest’)
            • +
            • All tests (‘Test’)

            • +
            • Cluster tests (‘Run_cluster_dependent_test’)

            • +
            • Cluster independent tests (‘All_cluster_independent_tests’)

            • +
            • Windows only tests (‘All_cluster_independent_windows_only_tests’)

            • +
            • Performance and stability tests (‘Long_tests’)

            • +
            • Re-run failed tests (‘Rerun_failed_tests’)

            • +
            • Run custom test (‘CustomTest’)

            To run the tests you need to download all sources from repository. Once you have done that, enter into the command line mode, change directory to the project directory and type:

            -
            ant -f build.xml <test group name>
            +
            ant -f build.xml <test group name>
             

            Make sure you have Apache Ant installed and path to ant executable is defined in your path environmental variable. Replace test group name with the one of the names given in the list above to run required group of tests e.g for running cluster only tests use the following command:

            -
            ant -f build.xml Run_cluster_dependent_test
            +
            ant -f build.xml Run_cluster_dependent_test
             
            -

            If you work under Linux you could use a simple script from the root folder of repository called runtests.sh. This script simply contains a collection of the test commands described above and paths to java home directory and an ant executable, which you can define once for your system and then reuse.

            -

            A handy feature of TestNG is its ability to re-run failed tests. Failed test ant file is stored in test-output/testng-failed.xml. and is used in the ant task called Rerun_failed_tests. So re-running failed tests requires no more work than running any other test group and could be accomplished with the command:

            -
            ant -f build.xml Rerun_failed_tests
            +

            If you work under Linux you could use a simple script from the root folder of repository called runtests.sh. This script simply contains a collection of the test commands described above and paths to java home directory and an ant executable, which you can define once for your system and then reuse.

            +

            A handy feature of TestNG is its ability to re-run failed tests. Failed test ant file is stored in test-output/testng-failed.xml. and is used in the ant task called Rerun_failed_tests. So re-running failed tests requires no more work than running any other test group and could be accomplished with the command:

            +
            ant -f build.xml Rerun_failed_tests
             
            -

            CustomTest runs the test defined in the project root directory file called temp-testng-customsuite.xml. This file is generated by TestNG plugin every time you run the test from Eclipse. Thus an easy way to run a test in a different environment is to run it from Eclipse first and then from ant using a custom test procedure.

            -

            For cluster execution make sure that the property LD_LIBRARY_PATH defined in build.xml points to cluster engine LD libraries directory in your local system.

            +

            CustomTest runs the test defined in the project root directory file called temp-testng-customsuite.xml. This file is generated by TestNG plugin every time you run the test from Eclipse. Thus an easy way to run a test in a different environment is to run it from Eclipse first and then from ant using a custom test procedure.

            +

            For cluster execution make sure that the property LD_LIBRARY_PATH defined in build.xml points to cluster engine LD libraries directory in your local system.


            -
            -
            +
            +

            Accessing JABAWS from your program¶

            -
            +

            Web services functions overview¶

            All JABAWS multiple sequence alignment web services comply to the same interface, thus the function described below are available from all the services.

            Functions for initiating the alignment

            -
            String id = align(List<FastaSequence> list)
            -String id = customAlign(List<FastaSequence> sequenceList, List<Option> optionList)
            -String id = presetAlign(List<FastaSequence> sequenceList, Preset preset)
            +
            String id = align(List<FastaSequence> list)
            +String id = customAlign(List<FastaSequence> sequenceList, List<Option> optionList)
            +String id = presetAlign(List<FastaSequence> sequenceList, Preset preset)
             

            Functions pertaining to job monitoring and control

            -
            JobStatus status = getJobStatus(String id)
            -Alignment al = getResult(String id)
            -boolean cancelled = cancelJob(String id)
            -ChunkHolder chunk = pullExecStatistics(String id, long marker)
            +
            JobStatus status = getJobStatus(String id)
            +Alignment al = getResult(String id)
            +boolean cancelled = cancelJob(String id)
            +ChunkHolder chunk = pullExecStatistics(String id, long marker)
             

            Functions relating to service features discovery

            -
            RunnerConfig rc = getRunnerOptions()
            -Limit limit = getLimit(String name)
            -LimitsManager lm = getLimits()
            -PresetManager pm = getPresets()
            +
            RunnerConfig rc = getRunnerOptions()
            +Limit limit = getLimit(String name)
            +LimitsManager lm = getLimits()
            +PresetManager pm = getPresets()
             

            Please refer to a Data Model JavaDoc for a detailed description of each methods.


            -
            -
            +
            +

            Structure of the template command line client¶

            - +
            --++ - - - + + + - - - + + + - - + + - - + + - - + +
            PackagesClasses and Interfaces

            Packages

            Classes and Interfaces

            compbio.data.msaMsaWS the interface for all multiple sequence alignment web services

            compbio.data.msa

            MsaWS the interface for all multiple sequence alignment web services

            compbio.data.sequenceJABAWS data types

            compbio.data.sequence

            JABAWS data types

            compbio.metadataJABAWS meta data types

            compbio.metadata

            JABAWS meta data types

            compbio.ws.clientJABAWS command line client

            compbio.ws.client

            JABAWS command line client

            Additional utility libraries that this client depend upon is the compbio-util-1.3.jar and compbio-annotation-1.0.jar.

            Please refer to a Data Model JavaDoc for a detailed description of each class and its methods.


            -
            -
            +
            +

            Connecting to JABAWS¶

            For a complete working example of JABAWS command line client please see compbio.ws.client.Jws2Client class. JABAWS command line client source code is available from the download page. Please note that for now all the examples are in Java, other languages will follow if there is sufficient demand.

            Download a binary JABAWS client. Add the client to the class path. The following code excerpt will connect your program to Clustal web service deployed in the University of Dundee.

            -
            import java.net.URL;
            -import javax.xml.namespace.QName;
            -import javax.xml.ws.Service;
            +
            import java.net.URL;
            +import javax.xml.namespace.QName;
            +import javax.xml.ws.Service;
             // (...)
            -String qualifiedName = "http://msa.data.compbio/01/01/2010/";
            -URL url = new URL("http://www.compbio.dundee.ac.uk/jabaws/ClustalWS?wsdl");
            -QName qname = new QName(, "ClustalWS");
            -Service serv = Service.create(url, qname);
            -MsaWS msaws = serv.getPort(new QName(qualifiedName, "ClustalWSPort"),
            -MsaWS.class);
            +String qualifiedName = "http://msa.data.compbio/01/01/2010/";
            +URL url = new URL("http://www.compbio.dundee.ac.uk/jabaws/ClustalWS?wsdl");
            +QName qname = new QName(, "ClustalWS");
            +Service serv = Service.create(url, qname);
            +MsaWS msaws = serv.getPort(new QName(qualifiedName, "ClustalWSPort"),
            +MsaWS.class);
             

            Line 1 makes a qualified name for JABA web services.

            @@ -364,77 +369,77 @@ JABAWS uses TestNG for testing. There is a TestNG plugin available for Eclipse w

            Line 4 creates a service instance.

            Line 5 makes a connection to the server.

            A more generic connection method would look like this

            -
            import java.net.URL;
            -import javax.xml.namespace.QName;
            -import javax.xml.ws.Service;
            +
            import java.net.URL;
            +import javax.xml.namespace.QName;
            +import javax.xml.ws.Service;
             import compbio.ws.client.Services
             // (...)
            -String qualifiedServiceName = "http://msa.data.compbio/01/01/2010/";
            -String host = "http://www.compbio.dundee.ac.uk/jabaws";
            +String qualifiedServiceName = "http://msa.data.compbio/01/01/2010/";
            +String host = "http://www.compbio.dundee.ac.uk/jabaws";
             // In real life the service name can come from args
            -Services clustal = Services.ClustalWS;
            -URL url = new URL(host + "/" + clustal.toString() + "?wsdl");
            -QName qname = new QName(qualifiedServiceName, clustal.toString());
            -Service serv = Service.create(url, qname);
            -MsaWS msaws = serv.getPort(new QName(qualifiedServiceName, clustal + "Port"), MsaWS.class);
            +Services clustal = Services.ClustalWS;
            +URL url = new URL(host + "/" + clustal.toString() + "?wsdl");
            +QName qname = new QName(qualifiedServiceName, clustal.toString());
            +Service serv = Service.create(url, qname);
            +MsaWS msaws = serv.getPort(new QName(qualifiedServiceName, clustal + "Port"), MsaWS.class);
             

            Where Services is enumeration of JABAWS web services. All JABAWS multiple sequence alignment methods confirm to MsaWS specification, thus from the caller point of view all JABAWS web services can be represented by MsaWS interface. The full documentation of MsaWS functions is available from the JavaDoc.


            -
            -
            +
            +

            Aligning Sequences¶

            -

            Given that msaws is web service proxy, created as described in “Connecting to JABAWS” section, the actual alignment can be obtained as follows:

            -
            List<FastaSequence> fastalist = SequenceUtil.readFasta(new FileInputStream(file));
            -String jobId = msaws.align(fastalist);
            -Alignment alignment = msaws.getResult(jobId);
            -Line one loads FASTA sequence from the file.
            +

            Given that msaws is web service proxy, created as described in “Connecting to JABAWS” section, the actual alignment can be obtained as follows:

            +
            List<FastaSequence> fastalist = SequenceUtil.readFasta(new FileInputStream(file));
            +String jobId = msaws.align(fastalist);
            +Alignment alignment = msaws.getResult(jobId);
            +Line one loads FASTA sequence from the file.
             

            Line two submits them to web service represented by msaws proxy.

            Line three retrieves the alignment from a web service. This line will block the execution until the result is available. Use this with caution. In general, you should make sure that the calculation has been completed before attempting retrieving results. This is to avoid keeping the connection to the server on hold for a prolonged periods of time. While this may be ok with your local server, our public server (www.compbio.dundee.ac.uk/jabaws) will not let you hold the connection for longer than 10 minutes. This is done to prevent excessive load on the server. The next section describes how to check the status of the calculation. Methods and classes mentioned in the excerpt are available from the JABAWS client library.


            -
            -
            +
            +

            Checking the status of the calculation¶

            You may have noticed that there was no pause between submitting the job and retrieving of the results. This is because getResult(jobId) method block the processing until the calculation is completed. However, taking into account that the connection holds server resources, our public server (www.compbio.dundee.ac.uk/jabaws) is configured to reset the connection after 10 minutes of waiting. To work around the connection reset you are encouraged to check whether the calculation has been completed before accessing the results. You can do it like this:

            -
            while (msaws.getJobStatus(jobId) != JobStatus.FINISHED) {
            -    Thread.sleep(2000); // wait two  seconds, then recheck the status
            -}
            +
            while (msaws.getJobStatus(jobId) != JobStatus.FINISHED) {
            +    Thread.sleep(2000); // wait two  seconds, then recheck the status
            +}
             

            -
            -
            +
            +

            Aligning with presets¶

            -
            PresetManager presetman = msaws.getPresets();
            -Preset preset = presetman.getPresetByName(presetName);
            -List<FastaSequence> fastalist = SequenceUtil.readFasta(new FileInputStream(file));
            -String jobId = msaws.presetAlign(fastalist, preset);
            -Alignment alignment = msaws.getResult(jobId);
            +
            PresetManager presetman = msaws.getPresets();
            +Preset preset = presetman.getPresetByName(presetName);
            +List<FastaSequence> fastalist = SequenceUtil.readFasta(new FileInputStream(file));
            +String jobId = msaws.presetAlign(fastalist, preset);
            +Alignment alignment = msaws.getResult(jobId);
             

            Line one obtains the lists of presets supported by a web service.

            Line two return a particular Preset by its name.

            Lines three to five are doing the same job as in the first aligning sequences example.


            -
            -
            +
            +

            Aligning with custom parameters¶

            -
            RunnerConfig options = msaws.getRunnerOptions();
            -Argument matrix = options.getArgument("MATRIX");
            -matrix.setValue("PAM300");
            -Argument gapopenpenalty = options.getArgument("GAPOPEN");
            -gapopenpenalty.setValue("20");
            -List<Argument> arguments = new ArrayList<Argument>();
            -arguments.add(matrix); arguments.add(gapopenpenalty);
            -List<FastaSequence> fastalist = SequenceUtil.readFasta(new FileInputStream(file));
            -String jobId = msaws.customAlign(fastalist, arguments);
            -Alignment alignment = msaws.getResult(jobId);
            +
            RunnerConfig options = msaws.getRunnerOptions();
            +Argument matrix = options.getArgument("MATRIX");
            +matrix.setValue("PAM300");
            +Argument gapopenpenalty = options.getArgument("GAPOPEN");
            +gapopenpenalty.setValue("20");
            +List<Argument> arguments = new ArrayList<Argument>();
            +arguments.add(matrix); arguments.add(gapopenpenalty);
            +List<FastaSequence> fastalist = SequenceUtil.readFasta(new FileInputStream(file));
            +String jobId = msaws.customAlign(fastalist, arguments);
            +Alignment alignment = msaws.getResult(jobId);
             
            -

            Line one obtains the RunnerConfig object that holds information on supported parameters and their values

            +

            Line one obtains the RunnerConfig object that holds information on supported parameters and their values

            Line two retrieve a particular parameter from the holder by its name.

            Lines three sets a value to this parameter which will be used in the calculation.

            Line four and five do the same but for another parameter.

            @@ -442,44 +447,44 @@ Methods and classes mentioned in the excerpt are available from the JABAWS clien

            Line seven puts the parameters into that list.

            Line eight and ten is the same as in previous examples.

            Line nine submit an alignment request with the sequences and the parameters.

            -

            The names of all the parameters supported by a web service e.g. “PAM300” can be obtained using options.getArguments() method. Further details on the methods available from RunnerConfig object are available from the JavaDoc.

            +

            The names of all the parameters supported by a web service e.g. “PAM300” can be obtained using options.getArguments() method. Further details on the methods available from RunnerConfig object are available from the JavaDoc.


            -
            -
            +
            +

            Writing alignments to a file¶

            There is a utility method in the client library that does exactly that.

            -
            Alignment alignment = align(...)
            -FileOutputStream outStream = new FileOutputStream(file);
            -ClustalAlignmentUtil.writeClustalAlignment(outStream, align);
            +
            Alignment alignment = align(...)
            +FileOutputStream outStream = new FileOutputStream(file);
            +ClustalAlignmentUtil.writeClustalAlignment(outStream, align);
             

            -
            -
            +
            +

            A complete client example¶

            Finally, a complete example of the program that connects to JABAWS Clustal service and aligns sequences using one of the Clustal web service presets. All you need for this to work is a JABAWS CLI client. Please make sure that the client is in the Java class path before running this example.

            -
            import java.io.ByteArrayInputStream;
            -import java.io.FileNotFoundException;
            -import java.io.IOException;
            -import java.net.URL;
            -import java.util.List;
            -
            -import javax.xml.namespace.QName;
            -import javax.xml.ws.Service;
            -
            -import compbio.data.msa.MsaWS;
            -import compbio.data.sequence.Alignment;
            -import compbio.data.sequence.FastaSequence;
            -import compbio.data.sequence.SequenceUtil;
            -import compbio.metadata.JobSubmissionException;
            -import compbio.metadata.LimitExceededException;
            -import compbio.metadata.Preset;
            -import compbio.metadata.PresetManager;
            -import compbio.metadata.ResultNotAvailableException;
            -import compbio.metadata.UnsupportedRuntimeException;
            -import compbio.metadata.WrongParameterException;
            -
            -public class Example {
            +
            import java.io.ByteArrayInputStream;
            +import java.io.FileNotFoundException;
            +import java.io.IOException;
            +import java.net.URL;
            +import java.util.List;
            +
            +import javax.xml.namespace.QName;
            +import javax.xml.ws.Service;
            +
            +import compbio.data.msa.MsaWS;
            +import compbio.data.sequence.Alignment;
            +import compbio.data.sequence.FastaSequence;
            +import compbio.data.sequence.SequenceUtil;
            +import compbio.metadata.JobSubmissionException;
            +import compbio.metadata.LimitExceededException;
            +import compbio.metadata.Preset;
            +import compbio.metadata.PresetManager;
            +import compbio.metadata.ResultNotAvailableException;
            +import compbio.metadata.UnsupportedRuntimeException;
            +import compbio.metadata.WrongParameterException;
            +
            +public class Example {
             
               /*
                * Input sequences for alignment
            @@ -513,17 +518,17 @@ Methods and classes mentioned in the excerpt are available from the JABAWS clien
                         + "LRGWGGGGRPEVFALRPAPVQVNWLAYPGTSGAPWMDYVLGDAFALPPALEPFYSEHVLRLQGAF"
                         + "QPSDTSRVVAEPPSRTQCGLPEQGVVLCCFNNSYKLNPQSMARMLAVLREVPDSVLWLLSGPGEA"
                         + "DARLRAFAHAQGVDAQRLVFMPKLPHPQYLARYRHADLFLDTHPYNAHTTASDALWTGCPVLTTP"
            -            + "GETFAARVAGSLNHHLGLDEMNVADDAAFVAKAVALASDPAALTALHARVDVLRRESI";
            +            + "GETFAARVAGSLNHHLGLDEMNVADDAAFVAKAVALASDPAALTALHARVDVLRRESI";
             
            -  public static void main(String[] args) throws UnsupportedRuntimeException,
            -            LimitExceededException, JobSubmissionException,
            -            WrongParameterException, FileNotFoundException, IOException,
            -            ResultNotAvailableException, InterruptedException {
            +  public static void main(String[] args) throws UnsupportedRuntimeException,
            +            LimitExceededException, JobSubmissionException,
            +            WrongParameterException, FileNotFoundException, IOException,
            +            ResultNotAvailableException, InterruptedException {
             
            -            String qualifiedServiceName = "http://msa.data.compbio/01/01/2010/";
            +            String qualifiedServiceName = "http://msa.data.compbio/01/01/2010/";
             
                         /* Make a URL pointing to web service WSDL */
            -            URL url = new URL("http://www.compbio.dundee.ac.uk/jabaws/ClustalWS?wsdl");
            +            URL url = new URL("http://www.compbio.dundee.ac.uk/jabaws/ClustalWS?wsdl");
             
                         /*
                          * If you are making a client that connects to different web services
            @@ -532,38 +537,38 @@ Methods and classes mentioned in the excerpt are available from the JABAWS clien
                         // URL url = new URL(host + "/" + Services.ClustalWS.toString() +
                         // "?wsdl");
             
            -    QName qname = new QName(qualifiedServiceName, "ClustalWS");
            -    Service serv = Service.create(url, qname);
            +    QName qname = new QName(qualifiedServiceName, "ClustalWS");
            +    Service serv = Service.create(url, qname);
                 /*
                  * Multiple sequence alignment interface for Clustal web service
                  * instance
                  */
            -    MsaWS msaws = serv.getPort(new QName(qualifiedServiceName, "ClustalWS"
            -                    + "Port"), MsaWS.class);
            +    MsaWS msaws = serv.getPort(new QName(qualifiedServiceName, "ClustalWS"
            +                    + "Port"), MsaWS.class);
             
                 /* Get the list of available presets */
            -    PresetManager presetman = msaws.getPresets();
            +    PresetManager presetman = msaws.getPresets();
             
                 /* Get the Preset object by preset name */
                 Preset preset = presetman
            -                    .getPresetByName("Disable gap weighting (Speed-oriented)");
            +                    .getPresetByName("Disable gap weighting (Speed-oriented)");
             
                 /*
                  * Load sequences in FASTA format from the file You can use something
                  * like new FileInputStream(<filename>) to load sequence from the file
                  */
                 List<FastaSequence> fastalist = SequenceUtil
            -                    .readFasta(new ByteArrayInputStream(input.getBytes()));
            +                    .readFasta(new ByteArrayInputStream(input.getBytes()));
             
                 /*
                  * Submit loaded sequences for an alignment using preset. The job
                  * identifier is returned by this method, you can retrieve the results
                  * with it sometime later.
                  */
            -    String jobId = msaws.presetAlign(fastalist, preset);
            +    String jobId = msaws.presetAlign(fastalist, preset);
             
                 /* This method will block for the duration of the calculation */
            -    Alignment alignment = msaws.getResult(jobId);
            +    Alignment alignment = msaws.getResult(jobId);
             
                 /*
                  * This is a better way of obtaining results, it does not involve
            @@ -577,7 +582,7 @@ Methods and classes mentioned in the excerpt are available from the JABAWS clien
                 // }
             
                 /* Output the alignment to standard out */
            -    System.out.println(alignment);
            +    System.out.println(alignment);
             
                 // Alternatively, you can record retrieved alignment into the file in
                 // ClustalW format
            @@ -585,89 +590,73 @@ Methods and classes mentioned in the excerpt are available from the JABAWS clien
                 // ClustalAlignmentUtil.writeClustalAlignment(new FileOutputStream(
                 // "output.al"), alignment);
             
            -  }
            -}
            +  }
            +}
             

            For a more detailed description of all available types and their functions please refer to the Data Model JavaDoc.


            -
            -
            -
            +
            + +

            Adding new web-services¶

            -
            +

            Brief Guide¶

              -
            1. Add a new executable which you’d like to wrap as a JABAWS web service to the binaries folder. If it has the source code and can be recompiled for different platforms include it under binaries/src. Edit setexecutableflag.sh and compilebin.sh scripts in binaries/src accordingly.

              -
            2. -
            3. Make sure that all the dependencies of the software being installed are satisfied. If there are other binaries they should be included as well. Keep the dependent binaries in a subfolder for the main executable. Update compilebin.sh and setexecflag.sh scripts accordingly.

              -
            4. -
            5. Make sure that the new executable does not have any hard links to its dependencies, e.g. is able to run from any installation folder and does not contain any hard coded paths.

              -
            6. -
            7. Describe executable in conf/Exectuable.properties file. The lowercase name of the wrapper should be included in the name of the property for example Clustal properties all include clustal as a part of the name e.g. local.clustalw.bin. The same property for MAFFT will be called local.mafft.bin. For more help please refer to the Executable.properties file.

              -
            8. -
            9. Describe the executable supported parameters in the <ExecutableName>Parameters.xml, presets in the <ExecutableName>Presets.xml and the execution limits in the <ExecutableName>Limit.xml. By convention these files are stored in conf/settings. All of these are optional. If the executable does not support parameters you do not have to mention the XXXParameter.xml file in the Executable.properties file at all. The same is true for Presets and Limits.

              -
            10. -
            11. Create a Java wrapper class for your executable. Create it within runner source directory. Examples of other wrappers can be found in compbio.runner.msa or in other compbio.runner.* packages. Wrapper should extend SkeletalExecutable<T> and implement PipedExecutable<T> if you need to pass the input or collect the results from the standard in/out. Please see Mafft code as example. Wrapper should expend SkeletalExecutable<T> if input/output can be set as a parameter for an executable. Please see the ClustalW code as example.

              -
            12. -
            13. Create a testcase suit for your wrapper in testsrc and run the test cases.

              -
            14. -
            15. Create parser for the output files of your executable. Suggested location compbio.data.sequence.SequenceUtil.

              -
            16. -
            17. Test the parser.

              -
            18. -
            19. Decide which web services interfaces your executable is going to match. For example if the executable output can be represented as SequenceAnnotation then SequenceAnnotation interface might be appropriate. For multiple sequence alignment an Msa interface should be used.

              -
            20. -
            21. If you find a web interface that matches your returning data type, then implement a web service which confirms to it within a webservices source folder.

              -
            22. -
            23. Register web service in WEB-INF/web.xml and WEB-INF/sun-jaxws.xml.

              -
            24. -
            25. Add generated wsdl to wsbuild.xml ant script to generate the stubs.

              -
            26. -
            27. Run build-server task in wsbuild file. Watch for errors. If the task fails that means that JAXB cannot serialize some of your new data structures. Add appropriate annotations to your data types. Also check that:

              +
            28. Add a new executable which you’d like to wrap as a JABAWS web service to the binaries folder. If it has the source code and can be recompiled for different platforms include it under binaries/src. Edit setexecutableflag.sh and compilebin.sh scripts in binaries/src accordingly.

            29. +
            30. Make sure that all the dependencies of the software being installed are satisfied. If there are other binaries they should be included as well. Keep the dependent binaries in a subfolder for the main executable. Update compilebin.sh and setexecflag.sh scripts accordingly.

            31. +
            32. Make sure that the new executable does not have any hard links to its dependencies, e.g. is able to run from any installation folder and does not contain any hard coded paths.

            33. +
            34. Describe executable in conf/Exectuable.properties file. The lowercase name of the wrapper should be included in the name of the property for example Clustal properties all include clustal as a part of the name e.g. local.clustalw.bin. The same property for MAFFT will be called local.mafft.bin. For more help please refer to the Executable.properties file.

            35. +
            36. Describe the executable supported parameters in the <ExecutableName>Parameters.xml, presets in the <ExecutableName>Presets.xml and the execution limits in the <ExecutableName>Limit.xml. By convention these files are stored in conf/settings. All of these are optional. If the executable does not support parameters you do not have to mention the XXXParameter.xml file in the Executable.properties file at all. The same is true for Presets and Limits.

            37. +
            38. Create a Java wrapper class for your executable. Create it within runner source directory. Examples of other wrappers can be found in compbio.runner.msa or in other compbio.runner.* packages. Wrapper should extend SkeletalExecutable<T> and implement PipedExecutable<T> if you need to pass the input or collect the results from the standard in/out. Please see Mafft code as example. Wrapper should expend SkeletalExecutable<T> if input/output can be set as a parameter for an executable. Please see the ClustalW code as example.

            39. +
            40. Create a testcase suit for your wrapper in testsrc and run the test cases.

            41. +
            42. Create parser for the output files of your executable. Suggested location compbio.data.sequence.SequenceUtil.

            43. +
            44. Test the parser.

            45. +
            46. Decide which web services interfaces your executable is going to match. For example if the executable output can be represented as SequenceAnnotation then SequenceAnnotation interface might be appropriate. For multiple sequence alignment an Msa interface should be used.

            47. +
            48. If you find a web interface that matches your returning data type, then implement a web service which confirms to it within a webservices source folder.

            49. +
            50. Register web service in WEB-INF/web.xml and WEB-INF/sun-jaxws.xml.

            51. +
            52. Add generated wsdl to wsbuild.xml ant script to generate the stubs.

            53. +
            54. Run build-server task in wsbuild file. Watch for errors. If the task fails that means that JAXB cannot serialize some of your new data structures. Add appropriate annotations to your data types. Also check that:

                -
              • you do not have interfaces to serialize, since JAXB cannot serialize them
              • -
              • you have a default no args constructor (can be private if you do not need it)
              • -
              • JAXB cannot serialize Java Map class, use a custom data structure instead
              • -
              • Enum cannot be serialized as its abstract class (do not confuse with enum which is fine)
              • -
              • Fields serialization leaves a little more space for manoeuvre. If you do this then you may accept and return interfaces, e.g. List, Map; abstract classes etc, from your methods
              • +
              • you do not have interfaces to serialize, since JAXB cannot serialize them

              • +
              • you have a default no args constructor (can be private if you do not need it)

              • +
              • JAXB cannot serialize Java Map class, use a custom data structure instead

              • +
              • Enum cannot be serialized as its abstract class (do not confuse with enum which is fine)

              • +
              • Fields serialization leaves a little more space for manoeuvre. If you do this then you may accept and return interfaces, e.g. List, Map; abstract classes etc, from your methods

              If you have the data on the server side, but nothing is coming through to the client, this is a JAXB serialization problem. They tend to be very silent and thus hard to debug. Check your data structure can be serialized!

            55. -
            56. Modify the client to work with your new web service. Update Services enumeration to include new service and ensure that all the methods of this enumeration take into account the new service. Update the client help text (client_help.txt) and insert it into the Constraints class.

              -
            57. -
            58. Test the web service with the client.

              -
            59. -
            60. Test on the cluster.

              -
            61. +
            62. Modify the client to work with your new web service. Update Services enumeration to include new service and ensure that all the methods of this enumeration take into account the new service. Update the client help text (client_help.txt) and insert it into the Constraints class.

            63. +
            64. Test the web service with the client.

            65. +
            66. Test on the cluster.


            -
            -
            +
            +

            Building web services artifacts¶

            JABAWS are the standard JAX-WS SOAP web services, which are WS-I basic profile compatible. This means that you could use whatever tool your language has to work with web services. Below is how you can generate portable artifacts to work with JABAWS from Java. However if programming in Java, we recommend using our client library as it provides a handful of useful methods in addition to plain data types.

            -
            wsimport -keep http://www.compbio.dundee.ac.uk/jabaws/ClustalWS?wsdl
            +
            wsimport -keep http://www.compbio.dundee.ac.uk/jabaws/ClustalWS?wsdl
             
            -

            Server side artifacts should be rebuild whenever the data model, meta model or MSA interface were changed. To do that run build-server task from wsbuild.xml ant build file. WSDL files will be generated in webservices/compbio/ws/server/resource directory. It is not necessary to edit them if any of the JABAWS clients are used. JABAWS are the standard JAX-WS web services, which are WS-I basic profile compatible.

            +

            Server side artifacts should be rebuild whenever the data model, meta model or MSA interface were changed. To do that run build-server task from wsbuild.xml ant build file. WSDL files will be generated in webservices/compbio/ws/server/resource directory. It is not necessary to edit them if any of the JABAWS clients are used. JABAWS are the standard JAX-WS web services, which are WS-I basic profile compatible.


            -
            -
            +
            +

            Preparing Distributives¶

            There are a number of ant tasks aimed for preparing distributives for download. Currently a few types of JABAWS packages are offered:

              -
            1. Client only (contains classes required to access JABA Web Services)
            2. -
            3. Platform specific JABAWS (windows and other)
            4. -
            5. JABAWS with and without binaries
            6. -
            7. JABAWS framework and complete project
            8. +
            9. Client only (contains classes required to access JABA Web Services)

            10. +
            11. Platform specific JABAWS (windows and other)

            12. +
            13. JABAWS with and without binaries

            14. +
            15. JABAWS framework and complete project

            -

            The easiest way to build all distributives is to call build-all ant task. There are more tasks defined in build.xml than described here. They are mostly self explanatory.

            +

            The easiest way to build all distributives is to call build-all ant task. There are more tasks defined in build.xml than described here. They are mostly self explanatory.

            If you made any changes to the data model and would like to generate a complete JABAWS distro make sure you have rebuilt jaxws artifact as described below.

            -
            -
            -
            + + +
          @@ -720,6 +709,7 @@ Methods and classes mentioned in the excerpt are available from the JABAWS clien SOURCELINK_SUFFIX: '.txt' }; + diff --git a/website/docs/docker.html b/website/docs/docker.html index d1b6809..e3e9f04 100644 --- a/website/docs/docker.html +++ b/website/docs/docker.html @@ -5,7 +5,8 @@ - + + Docker Container — JABAWS 2.2 documentation @@ -30,6 +31,10 @@ + + + + Contents:

          +

          Contents:

          • Getting Started
          • Included Tools
          • @@ -171,30 +176,30 @@
            -
            +

            Docker Container¶

            An alternative to running the JABAWS Virtual Appliance (VA) or the JABAWS Web Application aRchive (WAR) in your local machine, is to use Docker to handle all the requirements to deploy JABAWS in Tomcat. We provide a Dockerfile, which Docker uses to build an exact image of the required system, (i.e. Apache Tomcat server with the JABAWS WAR deployed).


            -
            +

            Installing Docker¶

            In order to run JABAWS using Docker, you need docker installed and running in your system. Installation instructions are provided in the Docker documentation pages.


            -
            -
            +
            +

            Running JABAWS with Docker¶

            Once you have docker installed and running in your machine:

            -
            docker build -t jabaws:2.2 http://www.compbio.dundee.ac.uk/jabaws22/archive/docker/Dockerfile
            +
            docker build -t jabaws:2.2 http://www.compbio.dundee.ac.uk/jabaws22/archive/docker/Dockerfile
             

            This will download the required Docker contexts (Tomcat, etc.) and setup JABAWS. Once the setup is finished you can run the JABAWS container with:

            -
            docker run --rm -it -p 8080:8080 jabaws:2.2
            +
            docker run --rm -it -p 8080:8080 jabaws:2.2
             
            -

            This will launch Tomcat and deploy JABAWS. By accessing localhost:8080/jabaws/ you can verify whether the JABAWS is running properly. +

            This will launch Tomcat and deploy JABAWS. By accessing localhost:8080/jabaws/ you can verify whether the JABAWS is running properly. You can then use your Docker JABAWS container to power your analysis using Jalview or the JABAWS CLI.


            -
            -
            +
            +
            @@ -247,6 +252,7 @@ You can then use your Docker JABAWS container to power your analysis using + diff --git a/website/docs/genindex.html b/website/docs/genindex.html index e8eff2b..b9ac791 100644 --- a/website/docs/genindex.html +++ b/website/docs/genindex.html @@ -1,6 +1,5 @@ - @@ -31,6 +30,10 @@ + + + + Contents:

            +

            Contents:

            • Getting Started
            • Included Tools
            • @@ -212,6 +215,7 @@ SOURCELINK_SUFFIX: '.txt' }; + diff --git a/website/docs/getting_started.html b/website/docs/getting_started.html index 06b1f5d..64a39e9 100644 --- a/website/docs/getting_started.html +++ b/website/docs/getting_started.html @@ -5,7 +5,8 @@ - + + Getting Started — JABAWS 2.2 documentation @@ -30,6 +31,10 @@ + + + + Contents:

              +

              Contents:

              • Getting Started
                • JABAWS Benefits
                • @@ -177,57 +182,55 @@
                  -
                  +

                  Getting Started¶

                  JABAWS is a collection of web services for bioinformatics, and currently provides services that make it easy to access well-known multiple sequence alignment and protein disorder prediction programs (see the list of currently supported programs). Future versions of JABAWS will incorporate other tools.

                  JABAWS consists of a server and a client, but unlike most bioinformatics web-service systems, you can download and run both parts on your own computer! If you want a server just for yourself, then download and install the JABAWS Virtual Appliance (VA). It requires no configuration and is simple to install. If you want to install JABAWS for your lab or institution then download the JABAWS Web Application aRchive (WAR). It is slightly more complicated to configure but is very straightforward too. Finally, if you want to script against any version of JABAWS or are interested in writing your own client, the JABAWS Command Line Interface (CLI) client is what you need.

                  The public server based on JABAWS 2.1 at the University of Dundee has been in production since October 2013 and serviced over 442,000 jobs for users worldwide.

                  New: You can now run JABAWS with Docker. Click here to learn more.


                  -
                  +

                  JABAWS Benefits¶

                    -
                  • Can be deployed on most operating systems, as a VMware or compatible Virtual Appliance, as well as a Tomcat Java Web Application.
                  • -
                  • Comes complete with sources and binaries for all the bioinformatics programs that it runs.
                  • -
                  • Can operate as a stand alone server or one that submits jobs to a cluster via DRMAA.
                  • -
                  • Easy to access from Jalview using its graphical client, or using the JABAWS command line client.
                  • -
                  • Clients can submit jobs to any JABAWS servers that they might want to access, such as the one running on your local computer, your lab’s server, or the publicly available services at the University of Dundee.
                  • -
                  • Local or intranet installation eliminates any security concerns you might have about sending sensitive data over the internet.
                  • -
                  • Wide range of configuration options to control size of jobs accepted by a server, and the command line options available for the program run by a service.
                  • +
                  • Can be deployed on most operating systems, as a VMware or compatible Virtual Appliance, as well as a Tomcat Java Web Application.

                  • +
                  • Comes complete with sources and binaries for all the bioinformatics programs that it runs.

                  • +
                  • Can operate as a stand alone server or one that submits jobs to a cluster via DRMAA.

                  • +
                  • Easy to access from Jalview using its graphical client, or using the JABAWS command line client.

                  • +
                  • Clients can submit jobs to any JABAWS servers that they might want to access, such as the one running on your local computer, your lab’s server, or the publicly available services at the University of Dundee.

                  • +
                  • Local or intranet installation eliminates any security concerns you might have about sending sensitive data over the internet.

                  • +
                  • Wide range of configuration options to control size of jobs accepted by a server, and the command line options available for the program run by a service.


                  -
                  -
                  +
                  +

                  JABAWS Distributions¶

                  -

                  Tip

                  -

                  To help you choose the JABAWS distribution that better suits your needs read on the quickstart guides below.

                  +

                  Tip

                  +

                  To help you choose the JABAWS distribution that better suits your needs read on the quickstart guides below.

                  -

                  I want to use JABAWS for...

                  +

                  I want to use JABAWS for…


                  -
                  +

                  Jalview and the JABAWS Public Server¶

                  -

                  Jalview, a multiple sequence alignment and analysis application, is a good example of a graphical JABAWS client. This client uses the same functionality as the JABAWS Command Line Interface (CLI) client, but instead allows JABAWS services to be accessed in a more user-friendly manner, through a graphical user interface. In this way, this is the easiest way to run JABAWS web services. Simply launch Jalview and run any of the methods provided under the ‘Web Service’ menu. Jalview uses the public JABAWS server by default. If you are concerned about privacy or want to run sensitive analysis on your own hardware, you can either setup a local JABAWS Virtual Appliance (VA) or configure the JABAWS Web Application aRchive (WAR) in your infrastructure.

                  +

                  Jalview, a multiple sequence alignment and analysis application, is a good example of a graphical JABAWS client. This client uses the same functionality as the JABAWS Command Line Interface (CLI) client, but instead allows JABAWS services to be accessed in a more user-friendly manner, through a graphical user interface. In this way, this is the easiest way to run JABAWS web services. Simply launch Jalview and run any of the methods provided under the ‘Web Service’ menu. Jalview uses the public JABAWS server by default. If you are concerned about privacy or want to run sensitive analysis on your own hardware, you can either setup a local JABAWS Virtual Appliance (VA) or configure the JABAWS Web Application aRchive (WAR) in your infrastructure.

                  _images/aligment.png
                  -
                  -
                  +
                  +

                  Command Line Client (CLI)¶

                  -

                  This is a single Java archive which contains the JABAWS command line interface (CLI) client. It allows anyone who wants to connect to the JABAWS web-services running at the University of Dundee’s Public Server, or to run a local private JABAWS server from their own software. You can read more about how to use JABAWS command line (CLI) client given in the CLI documentation pages, but a brief instructions are given below:

                  +

                  This is a single Java archive which contains the JABAWS command line interface (CLI) client. It allows anyone who wants to connect to the JABAWS web-services running at the University of Dundee’s Public Server, or to run a local private JABAWS server from their own software. You can read more about how to use JABAWS command line (CLI) client given in the CLI documentation pages, but a brief instructions are given below:

                    -
                  1. Download the Client Jar file

                    -
                  2. -
                  3. Download and install Java (version 1.7)

                    -
                  4. -
                  5. Provided that you have the Java ready to run, you can get command line help by changing to the directory where you downloaded the client jar, and typing:

                    +
                  6. Download the Client Jar file

                  7. +
                  8. Download and install Java (version 1.7)

                  9. +
                  10. Provided that you have the Java ready to run, you can get command line help by changing to the directory where you downloaded the client jar, and typing:

                    -
                    java -jar jabaws-full-client-2.2.0.jar
                    +
                    java -jar jabaws-full-client-2.2.0.jar
                     
                    @@ -235,78 +238,73 @@

                  The JABA Web Services are WS-I compliant. This means that you can access them from any language that has libraries or functions for consuming interoperable SOAP web services. More information on how to develop software that access JABAWS services is provided in the documentation pages.


                  -
                  -
                  + +

                  Web Application aRchive (WAR)¶

                  The JABAWS Web Application aRchive (WAR) is for anyone who wants to run JABAWS for their group, lab or organization, or wants to enable their local JABAWS server to use the cluster or perform very large tasks. Complete documentation is provided in the WAR documentation pages, but brief instructions are given below:

                    -
                  1. Download the JABAWS WAR file

                    -
                  2. -
                  3. Download and install Apache-Tomcat

                    +
                  4. Download the JABAWS WAR file

                  5. +
                  6. Download and install Apache-Tomcat

                    You will need at least Tomcat version 5.5 of (we would recommend version 8.5) and at least Java 1.7 (i.e. JAVA 7).

                  7. -
                  8. Drop the JABAWS WAR file into tomcat/webapps directory.

                    -
                  9. -
                  10. (Re)start the Tomcat.

                    -
                  11. -
                  12. Once the tomcat has started, it should automatically unpack the WAR into the webapps directory (if it doesn’t, simply unpack the WAR archive).

                    -
                  13. -
                  14. If you are on Mac or other unix-like architecture with GNU compilers available or you’d like to get a maximum performance

                    +
                  15. Drop the JABAWS WAR file into tomcat/webapps directory.

                  16. +
                  17. (Re)start the Tomcat.

                  18. +
                  19. Once the tomcat has started, it should automatically unpack the WAR into the webapps directory (if it doesn’t, simply unpack the WAR archive).

                  20. +
                  21. If you are on Mac or other unix-like architecture with GNU compilers available or you’d like to get a maximum performance

                    -

                    cd to webapps/jabaws/binaries/src/ and execute ./compilebin.sh script to compile all binaries JABAWS depends on.

                    +

                    cd to webapps/jabaws/binaries/src/ and execute ./compilebin.sh script to compile all binaries JABAWS depends on.

                  Testing

                  You can test that your JABAWS server is working in several ways.

                    -
                  1. Visit Services Status page available from the JABAWS main page using your web browser.

                    -
                  2. -
                  3. If you are working on the command line, then use the command line client shipped with the JABAWS war to test it by running:

                    +
                  4. Visit Services Status page available from the JABAWS main page using your web browser.

                  5. +
                  6. If you are working on the command line, then use the command line client shipped with the JABAWS war to test it by running:

                    -
                    java -jar <Path to tomcat WebApp directory>/jabaws/WEB-INF/lib/jabaws-client.jar -h=http://localhost:8080/jabaws
                    +
                    java -jar <Path to tomcat WebApp directory>/jabaws/WEB-INF/lib/jabaws-client.jar -h=http://localhost:8080/jabaws
                     
                    -

                    In this example we assumed that your JABAWS server URL is http://localhost:8080 and JABAWS context path is jabaws

                    +

                    In this example we assumed that your JABAWS server URL is http://localhost:8080 and JABAWS context path is jabaws

                  7. -
                  8. Alternately, you can point Jalview at your new server:

                    +
                  9. Alternately, you can point Jalview at your new server:

                      -
                    1. Launch the desktop version of Jalview
                    2. -
                    3. Open the Jalview desktop’s preferences panel (from the Tools->Preferences menu option), elect the Webservices panel and press the New Service URL button.
                    4. -
                    5. Enter the URL for the tomcat server, including the context path for the JABAWS web app (e.g. http://localhost:8080/jabaws).
                    6. +
                    7. Launch the desktop version of Jalview

                    8. +
                    9. Open the Jalview desktop’s preferences panel (from the Tools->Preferences menu option), elect the Webservices panel and press the New Service URL button.

                    10. +
                    11. Enter the URL for the tomcat server, including the context path for the JABAWS web app (e.g. http://localhost:8080/jabaws).


                  -
                  -
                  + +

                  Virtual Appliance (VA)¶

                  The Virtual Appliance (VA) package allows you to run a JABAWS server installed on TurnKey Linux as a virtual machine on your laptop or desktop computer. A complete guide to the JABAWS VA is given in the VA documentation pages, but for the impatient, brief instructions are given below:

                  If you work on Windows, Linux or Unix:

                    -
                  1. Download JABAWS Virtual Appliance
                  2. -
                  3. Download and install VMWare Player
                  4. -
                  5. Unpack the JABAWS virtual appliance and open it with VMware Player
                  6. +
                  7. Download JABAWS Virtual Appliance

                  8. +
                  9. Download and install VMWare Player

                  10. +
                  11. Unpack the JABAWS virtual appliance and open it with VMware Player

                  If you work on Mac do the same using VMware Fusion.

                  Testing

                  To check that your JABAWS virtual appliance is working visit the Services Status page available from the main JABAWS menu. For this enter the JABAWS URL for your new server into a web browser. This is shown once the appliance is booted up.

                  Alternatively you can use Jalview to complete the testing.

                    -
                  1. Launch the desktop version of Jalview
                  2. -
                  3. Open the Jalview desktop’s preferences panel (from the Tools->Preferences menu option), select the Webservices panel and press the New Service URL button.
                  4. -
                  5. Enter the JABAWS URL for your new server. This is shown once the appliance is booted up.
                  6. +
                  7. Launch the desktop version of Jalview

                  8. +
                  9. Open the Jalview desktop’s preferences panel (from the Tools->Preferences menu option), select the Webservices panel and press the New Service URL button.

                  10. +
                  11. Enter the JABAWS URL for your new server. This is shown once the appliance is booted up.

                  -
                  -
                  -
                  + + +
            @@ -359,6 +357,7 @@ SOURCELINK_SUFFIX: '.txt' }; + diff --git a/website/docs/included_tools.html b/website/docs/included_tools.html index a7ba7a5..320b46e 100644 --- a/website/docs/included_tools.html +++ b/website/docs/included_tools.html @@ -5,7 +5,8 @@ - + + Included Tools — JABAWS 2.2 documentation @@ -30,6 +31,10 @@ + + + + Contents:

            +

            Contents:

            • Getting Started
            • Included Tools
                @@ -173,43 +178,43 @@
                -
                +

                Included Tools¶

                -
                +

                Multiple Sequence Alignment¶

                -
                -
                +
                +

                Protein Disorder Prediction¶

                -
                -
                + +

                Amino Acid Conservation¶

                -
                -
                + +

                RNA Secondary Structure¶

                -
                -
                + +
                @@ -262,6 +267,7 @@ SOURCELINK_SUFFIX: '.txt' }; + diff --git a/website/docs/index.html b/website/docs/index.html index 2761ad9..7b19fb3 100644 --- a/website/docs/index.html +++ b/website/docs/index.html @@ -5,7 +5,8 @@ - + + Welcome to JABAWS’s documentation! — JABAWS 2.2 documentation @@ -30,6 +31,10 @@ + + + + Contents:

                +

                Contents:

                • Getting Started
                • Included Tools
                • @@ -146,7 +151,7 @@
                • Docs »
                • -
                • Welcome to JABAWS’s documentation!
                • +
                • Welcome to JABAWS’s documentation!
                • @@ -166,11 +171,11 @@
                  -
                  -

                  Welcome to JABAWS’s documentation!¶

                  +
                  +

                  Welcome to JABAWS’s documentation!¶

                  JABAWS documentation is also available in pdf. Download it here!


                  -

                  Note

                  -

                  This is an open source project. If you want to contribute or report an issue have a look at our Git-tracker.

                  -
                  +

                  Note

                  +

                  This is an open source project. If you want to contribute or report an issue have a look at our Git-tracker.

                  +
                  @@ -341,6 +347,7 @@ SOURCELINK_SUFFIX: '.txt' }; + diff --git a/website/docs/objects.inv b/website/docs/objects.inv index 38005b2..e606d1d 100644 Binary files a/website/docs/objects.inv and b/website/docs/objects.inv differ diff --git a/website/docs/search.html b/website/docs/search.html index 1064a23..9fc5825 100644 --- a/website/docs/search.html +++ b/website/docs/search.html @@ -30,6 +30,10 @@ + + + + Contents:

                  +

                  Contents:

                  • Getting Started
                  • Included Tools
                  • @@ -217,6 +221,7 @@ SOURCELINK_SUFFIX: '.txt' }; + diff --git a/website/docs/searchindex.js b/website/docs/searchindex.js index 62ce46d..eb04089 100644 --- a/website/docs/searchindex.js +++ b/website/docs/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["advanced","changelog","citations","client","develop","docker","getting_started","included_tools","index","stats","va","war"],envversion:51,filenames:["advanced.rst","changelog.rst","citations.rst","client.rst","develop.rst","docker.rst","getting_started.rst","included_tools.rst","index.rst","stats.rst","va.rst","war.rst"],objects:{},objnames:{},objtypes:{},terms:{"0_17":0,"168h":9,"16th":8,"1st":8,"2nd":8,"378m":10,"512m":10,"6000m":0,"8cbe486":[1,7],"abstract":4,"boolean":4,"byte":[0,9],"case":[0,4,9,10],"class":[0,4],"default":[0,1,3,4,6,9,10],"enum":4,"export":0,"f\u00e1bio":2,"final":[0,4,6],"function":[0,3,6,8,11],"import":[2,4],"long":[0,4],"new":[0,1,3,6,8,10,11],"public":[4,8,11],"return":[0,1,4],"static":[0,4],"throw":4,"true":[0,4,9,11],"try":[0,11],"void":4,"while":4,Adding:8,DNS:10,For:[0,3,6,8,9,10,11],NOT:0,PBS:11,That:10,The:[0,1,3,6,8,9,10,11],Then:0,There:[0,4,9],These:[0,1,11],Use:4,Using:[0,3],aacon:[1,7],aaconw:[0,3],aamatrix:0,abandon:9,abil:4,abl:[0,1,3,4,9,10,11],about:[0,4,6,10,11],abov:[0,3,4,9,10,11],absolut:0,accept:[4,6,8,9],access:[0,1,3,5,6,8,10,11],accesslogvalv:0,accomplish:4,accord:0,accordingli:[0,4],account:[0,1,4],achiev:0,acid:[0,1,8],action:3,activ:0,actual:4,add:[4,10,11],added:[0,11],addit:[0,1,4],address:[0,10],adjust:0,admin:[9,10],administr:9,advanc:[8,10],advantag:10,after:[0,4,9,10,11],again:0,against:[4,6],aim:4,alexand:2,alig:1,align:[0,1,2,3,6,8,10,11],all:[0,1,3,4,5,6,9,10,11],all_cluster_independent_test:4,all_cluster_independent_windows_only_test:4,allow:[0,1,2,3,6,9,10,11],allowlink:9,alon:6,alreadi:[0,11],also:[0,1,3,4,8,9,10],altern:[0,4,5,6,11],amazon:1,amd64:0,ami:1,amino:[0,1,8],amount:[0,9,10],analog:0,analysi:[0,1,2,5,6],analyt:[1,8],ani:[0,3,4,6,10,11],annot:4,anonym:0,anoth:[3,4,11],ant:[0,4],antiresourcelock:[9,11],anyon:[4,6],anyth:0,anywher:0,apach:[0,4,5,6,9,11],aparamet:3,apart:10,api:[1,3,8],app:6,appli:0,applianc:[5,8,9],applic:[0,1,3,5,8,10],appreci:0,appropri:[0,4],aptrvrskgplrvgfvsngfgahptglltvalfealqrrqpdlqmhlfatsgddgstlrtrlaqa:4,architectur:[0,6,11],archiv:[4,5,8,10],arg:4,argument:4,around:4,arraylist:4,artifact:8,ask:10,assum:[0,6,11],asynchron:[0,9],attempt:4,august:8,authent:[0,9],auto:10,autogener:0,autom:0,automat:[0,6,9,11],avail:[0,1,3,4,6,8,9,10,11],averag:0,avoid:[0,4,11],awstat:0,backward:1,balanc:8,bar:[3,4],barton:2,base:[0,6,9,10,11],basic:[0,3,4,11],batch:11,bear:10,becaus:[3,4,10],been:[1,3,4,6,9,10],befor:4,being:4,below:[0,1,3,4,6,9,10,11],benefit:8,besid:4,best:[0,10],better:[4,6,11],between:[0,4],bigger:0,bigmem:0,bin:[0,4],binari:[4,6,8,11],bind:0,bioinformat:[0,2,6,10],bit:10,black:0,block:4,boot:[6,10],both:[0,1,3,6,11],bottom:[4,9],boundari:4,box:[0,10],bridg:10,brief:[6,8],browser:[0,6],btr304:2,bug:1,build:[0,5,8,11],bump:1,bundl:0,busi:0,button:6,bytearrayinputstream:4,cach:1,calcul:[0,1,8,9,10],call:[0,1,3,4,11],caller:4,can:[0,3,4,5,6,9,10,11],cancel:[4,9],canceljob:4,cannot:[3,4,10],capac:11,catalina:[0,9,11],caution:4,cengin:0,chang:[0,1,3,4,6,9,10],changelog:8,charact:0,chase:0,check:[0,1,3,6,8,10,11],checker:0,chmod:0,choos:[0,6,10],chosen:0,chunk:4,chunkhold:4,citat:8,cite:2,clariti:3,classnam:0,clean:1,cli:[4,5,8],click:[6,10],client:[0,1,8,10],client_help:4,clone:4,cloud:1,clustal:[1,3,4,7,9],clustalalignmentutil:4,clustalow:[0,3],clustalw2:0,clustalw:[0,1,3,4,7],clustalwsport:4,clustengin:0,cluster:[4,6,8,9,11],clusterengin:0,code:[0,3,8,11],coffe:[0,1,7],collect:[0,4,6,9],collector:9,color:0,column:9,come:[0,3,4,6,9,11],command:[0,8,10],comment:0,commerci:10,common:0,commun:[1,10],compar:1,compat:[1,4,6,11],compbio:[0,3,4,5],compil:[4,6,8,11],compilebin:[0,4,6],complain:0,complet:[0,6,8,9,11],compli:4,compliant:[0,3,6,11],complic:6,complil:4,complile_with_debug:4,compon:9,comput:[6,10],concern:6,condor:11,conf:[0,4,9,11],config:0,configur:[1,4,6,8,11],confirm:4,confus:4,connect:[0,6,8,10],conserv:[0,1,2,8],consid:9,consist:[4,6],consol:[3,10],constant:3,constraint:4,construct:4,constructor:4,consult:[9,11],consum:[3,6],contain:[0,1,4,6,8,9],content:[3,8,11],context:[0,3,5,6,9,11],contini:4,continu:2,contribut:[4,8],control:[3,4,6],convent:4,copi:[9,10],core:[0,10,11],correctli:0,correspond:0,could:[0,1,3,4,11],couldn:0,coupl:0,cours:10,cpu:[0,10],crawler:9,creat:[0,4,9,10],credenti:10,css:0,current:[0,1,4,6,11],custom:[3,8],customalign:4,customsuit:4,customtest:4,dai:9,daniel:2,darlrafahaqgvdaqrlvfmpklphpqylaryrhadlfldthpynahttasdalwtgcpvlttp:4,data:[0,4,6,10],databas:[0,4,9],datamodel:4,date:[0,3,9,11],deal:[1,10],dealt:11,debian:10,debug:[0,4],dec:8,decid:[0,4],dedic:1,defin:[1,3,4,8,9],definit:0,delet:1,demand:4,depend:[0,4,6,9,11],deploi:[0,4,5,6,9,10,11],deploy:[0,11],depth:0,describ:[0,4,9,11],descript:[0,1,4,9],descriptor:[0,11],design:[1,4],desktop:6,detail:[0,3,4,8,11],dev2:0,develop:[3,6,8],dhcp:10,did:0,differ:[0,3,4,10,11],directli:[0,4,10],directori:[0,1,4,6,8,11],disabl:[0,4,9],discoveri:4,disembl:[1,7],disemblw:[0,3],disk:[10,11],disord:[0,1,2,6,8],displai:[4,9,10],distribut:[0,1,2,8,10,11],distro:4,divers:1,dm_javadoc:0,doc:4,docker:[1,6,8],dockerfil:5,document:[0,1,3,4,5,6,11],doe:[0,4,9,10],doesn:6,doi:2,doing:[0,4],done:[0,1,3,4,9],doubt:0,download:[0,1,3,4,5,6,8],dpaaltalharvdvlrresgvfemdgfaddfgallqalarrhgwlgi:4,drive:10,drmaa:[0,6,11],drop:[1,6,11],due:[1,9],dunde:[0,4,5,6],durat:4,dure:9,each:[0,1,4,9],eas:1,easi:[4,6],easier:10,easiest:[0,4,6],ec2:1,eclips:4,edit:[0,4,10],edu:3,eight:4,either:[0,3,6],elect:6,elimin:6,elsewher:0,empti:9,enabl:[0,1,6,9,10,11],encod:[0,9,11],encourag:[1,4],end:0,engin:[1,4,8,9,11],ensur:4,enter:[4,6],enumer:4,env:0,environ:[4,8,10,11],environment:4,equal:3,equip:0,error:[0,4,9],especi:0,etc:[0,3,4,5],evalu:0,even:0,everi:[1,4,9],everyth:0,exact:[0,5],exactli:[0,3,4],examin:0,exampl:[0,6,8,9,11],excerpt:4,excess:[0,4],exclud:[4,9],exec_nam:0,exectu:4,execut:[1,3,4,6,8,11],executablenam:4,executablenameparamat:0,executionstatist:[0,4],exist:[0,1,10],expand:10,expend:4,experi:[0,11],explanatori:4,explicit:11,explicitli:0,exploit:0,extend:4,extract:1,fail:[0,1,4,11],failur:[4,9],fals:[0,9,11],fasta34:0,fasta:[0,1,3,4],fasta_4_mafft:0,fastalist:4,fastaparttre:3,fastasequ:4,faster:[0,10],fastest:0,fatal:0,favorit:3,favour:1,featur:4,feb:0,februari:9,femdgfaddfgallqalarrhgwlgi:4,few:[0,4,9],field:4,file:[3,6,8,9,10,11],fileinputstream:4,filenam:4,filenotfoundexcept:4,fileoutputstream:4,find:[0,4],fine:[4,10],finish:[4,5,9],first:[0,4,9,10],five:4,fix:1,flag:[4,11],flexibl:11,folder:[4,10,11],follow:[0,4,9,11],foo:4,foobar:3,foofriend:3,forget:0,format:[3,4],found:[0,4,9,11],four:[1,4],framework:4,free:10,freeli:10,friend:4,friendli:6,from:[0,1,3,6,7,8,9,10,11],full:[0,3,4,6],full_javadoc:0,fulli:[0,1],fund:[0,2],further:[0,2,4,9],furthermor:0,fusion:[6,10],futur:6,gap:4,gapopen:4,gapopenpenalti:4,gcc:0,gener:[0,1,4,9,11],geoffrei:2,get:[0,1,4,8],getargu:4,getbyt:4,getfaarvagslnhhlgldemnvaddaafvakavalasdpaaltalharvdvlrresi:4,getjobstatu:4,getlimit:4,getport:4,getpreset:4,getpresetbynam:4,getresult:4,getrunneropt:4,git:[4,8],gitweb:4,give:11,given:[0,4,6,11],globplot:7,globplotw:[0,3],globu:11,glprob:[1,7],glprobsw:0,gnu:[6,10],going:[0,4],good:[0,6],googl:[1,8],googleanalyt:1,got:0,graphic:6,greater:[0,1],greatli:0,grid:11,gridwai:11,gridwar:0,group:[0,4,6,11],guid:[6,8],h_cpu:0,h_vmem:0,hand:4,handi:[0,3,4],handl:[3,4,5,11],hard:[4,10],hardwar:6,has:[0,1,3,4,6,9,10,11],hash:0,have:[0,1,4,5,6,8,9,10,11],health:0,heavi:10,heavili:[0,10],help:[0,1,2,4,6,9,10],here:[0,3,4,6,8,9,11],hierarchi:4,higher:3,hold:4,holder:4,home:[0,4],host:[0,3,4,10,11],host_and_context:3,hotloop:1,hour:[1,9],how:[0,3,4,6],howev:[0,4,10,11],hptglltvalfealqrrqpdlqmhlfatsgddgstlrtrlaqastlhdvtalghlatakhirhhg:4,html:0,http:[0,3,4,5,6,10,11],httpcoderesponseservicestatu:0,huge:0,i386:0,idea:0,identif:1,identifi:4,idl:[0,4],idllfdlrgwggggrpevfalrpapvqvnwlaypgtsgapwmdyvlgdafalppalepfysehvl:4,ignor:3,imag:[0,1,5,10],impati:6,implement:[4,7,11],improv:[1,2],includ:[0,1,3,4,6,8],incompat:1,incomplet:9,incorpor:6,increas:0,independ:[0,3,4,11],index:0,indic:[9,10],individu:[0,9],inf:[0,4,6],influenc:0,info:[0,10],inform:[0,1,3,4,6,9,10,11],infrastructur:6,initi:[0,4,9],input:[0,3,4,9],inputfil:3,inputs:9,insert:4,insid:0,instal:[0,1,4,6,8],instanc:[0,3,4,11],instead:[0,4,6],institut:6,instruct:[3,5,6],integr:1,interest:6,interfac:[4,6],intern:8,internet:[6,10],interoper:[3,6],interruptedexcept:4,intranet:6,introduc:1,involv:4,ioexcept:4,ipv4:10,ipv6:10,iscancel:9,iscollect:9,isfinish:9,isol:4,issu:[4,8],its:[0,3,4,6,11],itself:0,iupr:7,iupredw:[0,3],jaba:[0,3,4,6,9,11],jabaw:[1,2,3,11],jabaws22:5,jabaws_serv:0,jabawsadmin1:10,jabawsadmin2:10,jalview:[1,4,5,8,10],jame:2,jan:9,januari:9,jar:[0,3,4,6],java:[0,2,3,4,6,7,10,11],java_hom:0,java_opt:0,javadoc:[0,4],javascript:0,javax:4,jax:4,jaxb:4,jaxw:4,jdk1:0,jdk:0,jessi:10,job:[1,3,4,6,8,11],jobid:[4,9],jobsout:[0,4],jobstatu:4,jobsubmissionexcept:4,jobtempl:0,jpred:1,jpredalig:1,jpredw:1,jre:0,jronn:[1,7],jronnw:[0,3],jsp:0,jul:8,junit:4,just:[0,3,6,10,11],jvm:[0,4],jws2:0,jws2client:4,keep:[4,10,11],kei:[3,9],keyboard:10,know:[0,4,11],known:[0,6],lab:[0,6,11],languag:[0,3,4,6],laptop:6,larg:[0,6,10],larger:10,last:9,later:[1,4,9],latest:1,latter:0,launch:[5,6],layer:4,ld_library_path:[0,4],learn:6,least:[0,6],leav:[0,4],length:0,let:[0,3,4,9,10,11],letter:0,level:[0,4],lfldthpynahttasdalwtgcpvlttpgetfaarvagslnhhlgldemnvaddaafvakavala:4,lib:[0,6],librari:[0,1,3,4,6,11],life:4,lightweight:0,like:[0,3,4,6,10],limit:[1,3,4,8,10,11],limitexceededexcept:4,limitsmanag:4,line:[0,8,10],link:[0,4,9],linux:[0,4,6,10,11],list:[0,1,3,4,6,8],littl:[0,4],llnwrrrlcdwraldvlsaqvraavaqgvgavepfaflsedasaaeqlacartraqaiaasvrpl:4,load:[1,4,8],local:[4,5,6,8,9,10,11],localengineexecutionlimit:0,localhost:[0,5,6,9,11],localhost_access_log:0,locat:[0,4,9,10],log4j:0,log:[8,9],logdir:0,login:[9,10],long_test:4,longer:[1,4],look:[0,4,8],lowercas:4,lrgwggggrpevfalrpapvqvnwlaypgtsgapwmdyvlgdafalppalepfysehvlrlqgaf:4,lsf:11,lx24:0,mac:[1,6,10,11],machin:[0,1,3,4,5,6,10,11],made:[4,9],madeira:2,mafft:[1,3,4,7,8],mafft_binari:0,mafftlimit:0,mafftparamet:0,mafftpreset:0,mafftw:[0,3],mai:[0,4,9,10,11],main:[0,4,6,9],make:[0,4,6,9,10,11],man_serverwar:0,manag:11,mani:[0,11],manipul:3,manner:6,manoeuvr:4,manual:[10,11],map:4,marker:4,match:4,matric:0,matrix:4,matter:3,maximum:[0,6,9],maxruntim:9,mayb:9,mean:[0,1,3,4,6,9,10],memori:[0,10,11],mention:4,menu:[0,6,10],messag:[0,10],meta:4,metadata:4,method:[0,1,4,6],mgdttagemavqrglalhq:3,mgdttagemavqrglalhqqrhaeaavllqqasdaapehpgialwlhaledagqaeaaaaytrah:4,might:[0,4,6,10,11],mind:10,minimum:10,minor:1,minut:[1,4,9],miss:0,mode:4,model:[0,4],modifi:[0,4],monitor:[0,1,4],month:9,monthli:9,more:[0,1,3,4,6,9,10,11],most:[3,6,9,10],mostli:4,move:10,msa:4,msaprob:[1,7],msaprobsw:0,msaw:4,mtadgprellqlraav:3,mtadgprellqlraavrhrpqdfvawl:3,mtadgprellqlraavrhrpqdfvawlmladaelgmgdttagemavqrglalhpghpeavarlgr:4,mtadgprellqlraavrhrpqdvawlmladaelgmgdttagemavqrglalhpghpeavarlgrv:4,multi:9,multipl:[0,1,2,4,6,8],muscl:[0,7],musclew:[0,3],must:[0,1,11],myhost:[0,3],mylabserv:3,mysql:10,myuni:3,name:[0,3,4,9,10,11],namespac:4,nat:10,nativ:[0,3,4],natur:9,navig:[0,9],necessari:[4,11],necessarili:9,need:[0,3,4,5,6,9,10,11],net:4,network:10,never:[0,1,9],newer:1,next:[3,4],nine:4,node:[0,11],nofft:3,non:0,none:10,normal:0,noscor:3,note:[3,4,9],noth:[4,10],notic:4,now:[1,3,4,6],nput:3,nucleotid:0,number:[0,1,4,9,11],object:[1,4],obtain:[4,8],obvious:11,oct:8,octob:6,off:3,offer:[0,1,4,10],offici:11,often:0,older:11,omega:[1,7],onc:[0,4,5,6,10],one:[0,1,3,4,6,9,10,11],ones:0,onli:[0,3,4,9,10,11],open:[0,3,4,6,8,10],oper:[0,6,10,11],oppos:9,optim:0,option:[0,1,3,4,6,9,10],optionlist:4,oracl:[10,11],order:[0,5,9],org:[0,4],organ:6,orient:[0,4],other:[0,3,4,6,9,10,11],otherwis:[0,11],our:[0,1,4,8],out:[0,3,4,9,11],output:[0,3,4],outputfil:3,outsid:[0,9,10],outstream:4,over:[3,6,10],overhead:0,overload:11,overview:[0,8],ovf:10,own:[0,3,6],packag:[0,1,3,4,6],page:[0,1,3,4,5,6,9,10],pam300:4,panel:6,paper:2,parallel:[10,11],paramet:[0,1,3,8],parameterinputfil:3,parser:4,part:[0,3,4,6,9],parti:11,particular:[0,4,9,11],pass:[0,4],password:[9,10],path:[0,1,3,4,6,11],path_to_jar_fil:3,pattern:0,paus:4,pbspro:11,pdf:8,peer:1,per:9,perfectli:11,perform:[0,4,6],period:[1,4,9],pertain:4,peter:[2,9],pipedexecut:4,plai:10,plain:[4,9],platform:[4,10,11],player:[6,10],pleas:[0,3,4,9,10,11],plugin:4,point:[0,3,4,6,9,10,11],port:[0,4],portabl:4,posix:0,possibl:[9,10,11],post:0,power:[0,5,10],powerpc:11,pqsmarmlavlrevpdsvlwllsgpgeadarlrafahaqgvdaqrlvfmpklphpqylaryrhad:4,pre:[1,4,8,10,11],preconfigur:10,predict:[0,1,6,8],prefer:[0,6,10],prefix:0,prepar:[2,8,10],preprocess:9,present:9,preset:[0,3,8],presetalign:4,presetman:4,presetmanag:4,presetnam:[3,4],press:6,prevent:[0,4,11],previou:4,print:3,println:4,privaci:6,privat:[0,4,6,10,11],privileg:[8,11],prm:3,probabl:0,probcon:[0,7],probconsw:[0,3],problem:[0,4],procedur:[4,11],procerror:9,process:[0,1,3,4,9],procoutput:9,procter:2,produc:[0,9],product:[0,6,10],profil:[0,4],prog_doc:0,program:[0,1,3,6,8,10,11],programmat:3,prohibit:0,project:[1,2,8],prolong:4,proper:1,properli:5,properti:[0,1,4,9],protein:[0,1,2,6,8],protocol:0,provid:[0,1,3,4,5,6,10],proxi:4,publicli:[4,6],publish:0,pullexecstatist:4,purpos:0,put:[0,4,11],pvlttpgetfaarvagslnhhlgldemnvaddaafvakavalasdpaaltalharvdvlrresgv:4,qllpeepyitaqllnavaqgvgavepfaflsedasaaesvrplaptrvrskgplrvgfvsngfga:4,qname:4,qpsdtsrvvaeppsrtqcglpeqgvvlccfnnsyklnpqsmarmlavlrevpdsvlwllsgpgea:4,qualifi:4,qualifiednam:4,qualifiedservicenam:4,queer:0,queri:0,quickstart:6,rais:0,ram:[0,10],rang:6,rather:10,read:[0,4,6,11],readfasta:4,readi:6,real:4,reason:0,rebuild:4,rebuilt:4,recent:0,recheck:4,recommend:[0,1,3,4,6,10,11],recompil:[4,8,11],reconfigur:10,record:[1,4,9],redirect:0,reduc:[0,11],refer:[0,4,10],reflect:1,refresh:1,refus:11,regist:4,reject:0,rel:0,relat:[0,4],releas:8,rem465:1,remot:0,remov:[0,11],repeat:0,replac:[0,1,4,9],report:[0,4,8],repositori:[0,4],repres:4,request:[4,8,9,11],requir:[0,1,4,5,6,10,11],rerun_failed_test:4,reserv:0,reset:4,resid:[0,11],resili:11,resolut:0,resolvehost:0,resourc:[0,4,10],respect:[0,9],respond:0,respons:0,rest:[1,11],restart:[0,9,11],restructuredtext:4,result:[0,4,9],resultnotavailableexcept:4,results:9,retre:3,retriev:[0,4,9],reus:[4,8],review:0,right:11,rlqgafqpsdtsrvvaeppsrtqcglpeqgvvlccfnnsyklnpqsmarmlavlrevpdsvlwl:4,rna:[0,2,8],rnaalifold:7,rnaalifoldw:[0,1],rnastructscoremanag:1,role:9,rolenam:9,ronn:7,root:[4,10,11],rout:10,row:9,rule:0,run:[0,1,3,4,6,8,9,10,11],run_cluster_dependent_test:4,runner:4,runnerconfig:[4,9],runtest:4,runtim:[9,11],rwtqqrhaeaavllqqasdaapehpgialwlghaledhqllpeepyitaqldvlsaqvraavaqg:4,sai:10,same:[0,3,4,6,9,10,11],satisfi:4,scientif:1,score:1,scoremanag:1,screen:[0,10],screenshot:9,script:[0,3,4,6,11],search:0,second:[4,9],secondari:[0,1,2,8],section:[0,4,9],secur:[1,6],see:[0,3,4,6,9,10],select:6,self:4,semicolon:0,send:[6,11],sensit:6,sent:0,separ:[0,3,11],sequenc:[0,1,2,3,6,8],sequenceannot:4,sequencelist:4,sequenceutil:4,sequenti:4,serial:4,serv:[0,4,11],server:[3,4,5,8,10,11],server_url:0,servic:[0,1,2,3,6,8,9,10,11],servicenam:[0,3],servicestatu:0,servlet:[1,11],set:[0,3,4,9,10,11],setenv:0,setexecflag:[0,4],setexecutableflag:4,setnativespecif:0,setup:[5,6],setvalu:4,seven:4,sever:[0,1,4,6],sftp:10,sge:0,sge_root:0,sgpgeadarlrafahaqgvdaqrlvfmpklphpqylaryrhadlfldthpynahttasdalwtgc:4,share:11,shell:10,sherstnev:2,ship:6,shot:10,should:[0,1,4,6,9,10,11],show:[3,9],shown:[3,6],side:4,sign:[1,3],signific:0,silent:4,similar:[4,10],similarli:[1,10],simpl:[0,4,6],simplest:9,simpli:[0,4,6,10,11],simplifi:[0,1],sinc:[0,4,6,11],singl:[6,10,11],site:[3,11],six:4,size:[6,8,9],skeletalexecut:4,sleep:4,slightli:6,small:[0,11],smaller:0,soap:[0,3,4,6],softwar:[3,4,6],some:[0,1,4],someth:4,sometim:[4,9,11],soon:9,sourc:[0,3,6,8,11],space:[4,11],special:4,specif:[0,3,4,11],specifi:[0,3,9],speed:[0,4],sphinx:1,split:4,src:[0,4,6],ssh:10,stabil:4,stage:4,stand:6,standalon:10,standard:[0,1,4,9],standlon:10,start:[0,8,9,10],startup:0,stat:9,statist:[0,1,4,8],statpag:[0,4],statu:[0,1,6,8],step:0,still:11,stlhdvtalghlatakhirhhgidllfdlrgwggggrpevfalrpapvqvnwlaypgtsgapwmd:4,stop:1,storag:0,store:[0,4],stori:9,straight:0,straightforward:6,stream:9,string:[1,4],structur:[0,1,2,8],stub:4,subfold:4,submiss:0,submit:[0,4,6,9],substitut:0,successfulli:0,suffici:[4,10,11],suffix:0,suggest:[0,4],suit:[0,4,6,10],suitabl:0,summari:9,sun:[0,4,11],suppli:[0,1,4,11],support:[0,1,3,4,6,10,11],sure:[0,4,9,11],swap:1,symbol:[0,1,9],system:[4,5,6,8,9,10,11],tabl:[0,9],take:[0,4,10],task:[0,4,6,10,11],tcoffeew:[0,3],tell:0,temp:4,templat:8,temporari:[0,4,9],ten:4,tend:4,termin:0,test:[3,6,8,10,11],testcas:4,testng:4,testoutput:0,testsrc:4,text:[4,9],than:[0,1,4,10,11],thei:[0,4,6,10],them:[0,3,4,6,10,11],thi:[0,1,3,4,5,6,8,9,10,11],thin:4,third:[4,11],though:4,thread:[0,1,4,11],three:[0,4],through:[4,6],thu:[0,4],thw:0,time:[0,1,4,9,10],timestamp:9,tip:0,titl:9,tmp:0,togeth:[3,4],tomcat:[0,1,5,6,8,10,11],tomcat_dir:0,tomcat_root:[0,9],tomcatroot:11,too:[0,6,11],tool:[0,4,6,8,10],top:4,tostr:4,total:9,trace:0,tracker:[4,8],treat:0,trim:3,troshin:2,troubleshoot:8,tune:10,turnkei:[6,10],tvalfealqrrqpdlqmhlfatsgddgstlrtrlaqastlhdvtalghlatakhirhhgidllfd:4,two:[0,1,4,11],txt:[0,4,9],type:[0,4,6],uncom:0,undeploi:11,undeploy:11,under:[0,4,6],underneath:4,uniqu:9,unit:8,univers:[0,4,6],unix:[6,9],unless:10,unlik:[6,10],unpack:[6,10,11],unsupportedruntimeexcept:4,until:[0,4],updat:[0,1,4],upon:[0,4],upper:4,url:[0,3,4,6,10,11],us_intl:10,usag:[1,8],use:[0,1,2,3,4,5,6,9,10,11],used:[0,1,3,4,10,11],useful:[0,3,4],user:[0,1,6,9,10,11],usernam:9,uses:[0,4,5,6,10,11],using:[0,3,4,5,6,9,11],utf:[9,11],util:[0,4],valid:8,valu:[0,3,4],valv:0,variabl:[4,8],variou:0,veri:[0,1,4,6],verifi:5,version:[0,3,6,7,8,9,10,11],vgavepfaflsedasaaeqlacartraqaiaasvrplaptrvrskgplrvgfvsngfgahptgl:4,via:[3,6,10],viennarna:7,view:[4,8],violat:4,virtial:10,virtual:[0,5,8,9],virtualbox:[1,10],visial:0,visit:6,visual:[1,9],visualis:9,vm_ip:10,vmdk:10,vmware:[1,6,10],vmx:10,vrwtqqrhaeaavllqqasdaapehpgialwlghaledagqaeaaaaaytrahqllpeepyitaq:4,vwmare:10,wai:[0,3,4,6,9,10],wait:[0,4],want:[0,3,4,6,8,10],war:[1,4,5,8,9,10],warn:0,wast:0,watch:4,web:[0,1,2,3,5,8,10],webal:0,webapp:[0,6,11],webapplicationpath:0,webmean:10,webservic:[0,4,6],websit:[1,4],weight:4,welcom:3,well:[0,4,6,11],were:[1,4,9,11],what:[0,6,10],whatev:[0,4],when:[0,2,9,10],whenev:4,where:[0,3,4,6,9,10],wherea:0,whether:[4,5,9,10],which:[0,1,3,4,5,6,9,10,11],who:[0,4,6,10],whole:[0,9],whose:9,why:0,wide:6,window:[0,4,6,10,11],wish:0,within:[0,1,4,9],without:[0,4,10,11],work:[2,4,6,8,10,11],worldwid:6,would:[0,3,4,6,10],wrap:4,wrapper:4,write:[3,6,8],writeclustalalign:4,written:0,wrongparameterexcept:4,wsbuild:4,wsdl:[4,8],wsimport:[0,4],www:[0,4,5,11],x86:[0,11],xincgc:0,xml:[0,4,9,11],xms512m:0,xmx1024m:0,xxx:0,xxxlimit:0,xxxparamet:[0,4],xxxpreset:0,yesterdai:3,you:[0,2,3,4,5,6,8,9,10,11],your:[3,5,6,8,9,10,11],your_jaba_context_nam:0,your_jabaws_server_url:0,yourself:[0,6],yvlgdafalppalepfysehvlrlqgafqpsdtsrvvaeppsrtqcglpeqgvvlccfnnsykln:4,zip:11},titles:["Advanced Usage","Changelog","Citations","Command Line Client (CLI)","For Developers","Docker Container","Getting Started","Included Tools","Welcome to JABAWS’s documentation!","Usage Statistics","Virtual Appliance (VA)","Web Application Archive (WAR)"],titleterms:{"16th":1,"1st":1,"2nd":1,"function":4,"new":4,"public":6,Adding:4,For:4,The:4,accept:0,access:[4,9],acid:7,advanc:0,align:[4,7],amino:7,analyt:0,api:4,applianc:[6,10],applic:[6,9,11],archiv:[6,11],artifact:4,august:1,balanc:0,benefit:6,binari:0,brief:4,build:4,calcul:4,changelog:1,check:4,citat:2,cli:[3,6],client:[3,4,6],cluster:0,code:4,command:[3,4,6],compil:0,complet:4,configur:[0,9,10],connect:4,conserv:7,contain:5,content:[0,9],custom:4,dec:1,defin:0,detail:9,develop:4,directori:9,disord:7,distribut:[4,6],docker:5,document:8,engin:0,environ:0,exampl:[3,4],execut:[0,9],file:[0,4],from:4,get:6,googl:0,guid:4,includ:7,instal:[3,5,10,11],intern:0,jabaw:[0,4,5,6,8,9,10],jalview:6,job:[0,9],jul:1,limit:0,line:[3,4,6],list:9,load:0,local:0,log:0,mafft:0,multipl:7,obtain:0,oct:1,overview:4,paramet:4,pre:0,predict:7,prepar:4,preset:4,privileg:9,program:4,project:4,protein:7,recompil:0,releas:1,request:0,reus:0,rna:7,run:5,secondari:7,sequenc:[4,7],server:[0,6,9],servic:4,size:0,sourc:4,start:6,statist:9,statu:4,structur:[4,7],system:0,templat:4,test:[0,4],tomcat:9,tool:7,troubleshoot:11,unit:4,usag:[0,3,9,10,11],valid:0,variabl:0,version:1,view:9,virtual:[6,10],war:[0,6,11],web:[4,6,9,11],welcom:8,work:0,write:4,wsdl:0,your:[0,4]}}) \ No newline at end of file +Search.setIndex({docnames:["advanced","changelog","citations","client","develop","docker","getting_started","included_tools","index","stats","va","war"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":4,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},filenames:["advanced.rst","changelog.rst","citations.rst","client.rst","develop.rst","docker.rst","getting_started.rst","included_tools.rst","index.rst","stats.rst","va.rst","war.rst"],objects:{},objnames:{},objtypes:{},terms:{"0":[3,4,6,7,8,9,11],"00":[0,1,7],"000":6,"0000":0,"01":4,"0_17":0,"1":[0,4,6,7,8,9,10,11],"10":[0,1,2,3,4,9],"1000":4,"100000":0,"1093":2,"11":[0,1,7],"12":[7,10],"12320":10,"12321":10,"14":[2,10],"149":10,"159":[0,3],"16":[0,1,10],"168h":9,"16th":8,"172":10,"18":8,"1st":8,"2":[2,3,4,5,6,7,8,10,11],"20":[4,10],"200":0,"2000":4,"2001":2,"2002":2,"2010":[0,4],"2011":[2,8,9],"2013":[6,8],"2017":[2,8],"2021":8,"2067":0,"232":10,"24":[0,9],"27":2,"2nd":8,"2x":0,"3":[1,4,7,10],"31":[0,1,3,7],"310":7,"32":0,"378m":10,"4":[0,1,4,7,10,11],"400":0,"442":6,"5":[4,6,7,11],"503":0,"51":0,"512":10,"512m":10,"6":[0,9,11],"60":9,"6000m":0,"64":10,"7":[1,3,6,7,9,10,11],"8":[6,7,9,10,11],"8080":[0,3,5,6,11],"8cbe486":[1,7],"9":[1,7],"abstract":4,"boolean":4,"byte":[0,9],"case":[0,4,9,10],"class":[0,4],"default":[0,1,3,4,6,9,10],"do":[0,2,3,4,6,10,11],"enum":4,"export":0,"f\u00e1bio":2,"final":[0,4,6],"function":[0,3,6,8,11],"import":[2,4],"long":[0,4],"new":[0,1,3,6,8,10,11],"public":[4,8,11],"return":[0,1,4],"static":[0,4],"throw":4,"true":[0,4,9,11],"try":[0,11],"void":4,"while":4,A:[0,6,8],At:[0,4],By:[0,4,5,10],For:[0,3,6,8,9,10,11],IS:0,If:[0,4,6,8,9,10,11],In:[0,3,4,5,6,9,10,11],It:[1,2,4,6,9,10],NOT:0,That:10,The:[0,1,3,6,8,9,10,11],Then:0,There:[0,4,9],These:[0,1,11],To:[0,1,4,6,10,11],aacon:[1,7],aaconw:[0,3],aamatrix:0,abandon:9,abil:4,abl:[0,1,3,4,9,10,11],about:[0,4,6,10,11],abov:[0,3,4,9,10,11],absolut:0,ac:[0,3,4,5,11],accept:[4,6,8,9],access:[0,1,3,5,6,8,10,11],accesslogvalv:0,accomplish:4,accord:0,accordingli:[0,4],account:[0,1,4],achiev:0,acid:[0,1,8],action:3,activ:0,actual:4,ad:[0,8,11],add:[4,10,11],addit:[0,1,4],address:[0,1,10],adjust:0,admin:[9,10],administr:9,advanc:[8,10],advantag:10,after:[0,4,9,10,11],again:0,against:[4,6],aim:4,al:4,alexand:2,alig:1,align:[0,1,2,3,6,8,10,11],all:[0,1,3,4,5,6,9,10,11],all_cluster_independent_test:4,all_cluster_independent_windows_only_test:4,allow:[0,1,2,3,6,9,10,11],allowlink:9,alon:6,alreadi:[0,11],also:[0,1,3,4,8,9,10],altern:[0,4,5,6,11],amazon:1,amd64:0,ami:1,amino:[0,1,8],amount:[0,9,10],an:[0,3,4,5,8,9,10,11],analog:0,analysi:[0,1,2,5,6],analyt:[1,8],ani:[0,3,4,6,10,11],annot:4,anonym:0,anoth:[3,4,11],ant:[0,4],antiresourcelock:[9,11],anyon:[4,6],anyth:0,anywher:0,apach:[0,4,5,6,9,11],aparamet:3,apart:10,api:[1,3,8],app:6,appli:0,applianc:[5,8,9],applic:[0,1,3,5,8,10],appreci:0,appropri:[0,4],aptrvrskgplrvgfvsngfgahptglltvalfealqrrqpdlqmhlfatsgddgstlrtrlaqa:4,ar:[0,1,3,4,5,6,9,10,11],architectur:[0,6,11],archiv:[4,5,8,10],arg:4,argument:4,around:4,arraylist:4,artifact:8,ask:10,assum:[0,6,11],asynchron:[0,9],attempt:4,august:8,authent:[0,9],auto:10,autogener:0,autom:0,automat:[0,6,9,11],avail:[0,1,3,4,6,8,9,10,11],averag:0,avoid:[0,4,11],awstat:0,b:2,backward:1,balanc:8,bar:[3,4],barton:2,base:[0,6,9,10,11],basic:[0,3,4,11],batch:11,bear:10,becaus:[3,4,10],been:[1,3,4,6,9,10],befor:4,being:4,below:[0,1,3,4,6,9,10,11],benefit:8,besid:4,best:[0,10],better:[4,6,11],between:[0,4],bigger:0,bigmem:0,bin:[0,4],binari:[4,6,8,11],bind:0,bioinformat:[0,2,6,10],bit:10,black:0,block:4,boot:[6,10],both:[0,1,3,6,11],bottom:[4,9],boundari:4,box:[0,10],bridg:10,brief:[6,8],browser:[0,6],btr304:2,bug:1,build:[0,5,8,11],bump:1,bundl:0,busi:0,button:6,bytearrayinputstream:4,cach:1,calcul:[0,1,8,9,10],call:[0,1,3,4,11],caller:4,can:[0,3,4,5,6,9,10,11],cancel:[4,9],canceljob:4,cannot:[3,4,10],capac:11,catalina:[0,9,11],caution:4,cd:6,cengin:0,chang:[0,1,3,4,6,9,10],changelog:8,charact:0,chase:0,check:[0,1,3,6,8,10,11],checker:0,chmod:0,choos:[0,6,10],chosen:0,chunk:4,chunkhold:4,citat:8,cite:2,clariti:3,classnam:0,clean:1,cli:[4,5,8],click:[6,10],client:[0,1,8,10],client_help:4,clone:4,cloud:1,clustal:[1,3,4,7,9],clustalalignmentutil:4,clustalow:[0,3],clustalw2:0,clustalw:[0,1,3,4,7],clustalwsport:4,clustengin:0,cluster:[4,6,8,9,11],clusterengin:0,code:[0,3,8,11],coffe:[0,1,7],collect:[0,4,6,9],collector:9,color:0,column:9,come:[0,3,4,6,9,11],command:[0,8,10],comment:0,commerci:10,common:0,commun:[1,10],compar:1,compat:[1,4,6,11],compbio:[0,3,4,5],compil:[4,6,8,11],compilebin:[0,4,6],complain:0,complet:[0,6,8,9,11],compli:4,compliant:[0,3,6,11],complic:6,complil:4,complile_with_debug:4,compon:9,comput:[6,10],concern:6,condor:11,conf:[0,4,9,11],config:0,configur:[1,4,6,8,11],confirm:4,confus:4,connect:[0,6,8,10],conserv:[0,1,2,8],consid:9,consist:[4,6],consol:[3,10],constant:3,constraint:4,construct:4,constructor:4,consult:[9,11],consum:[3,6],contain:[0,1,4,6,8,9],content:[3,11],context:[0,3,5,6,9,11],contini:4,continu:2,contribut:[4,8],control:[3,4,6],convent:4,copi:[9,10],core:[0,10,11],correctli:0,correspond:0,could:[0,1,3,4,11],couldn:0,coupl:0,cours:10,cpu:[0,10],crawler:9,creat:[0,4,9,10],credenti:10,css:0,current:[0,1,4,6,11],custom:[3,8],customalign:4,customsuit:4,customtest:4,d:[0,3,4,6],dai:9,daniel:2,darlrafahaqgvdaqrlvfmpklphpqylaryrhadlfldthpynahttasdalwtgcpvlttp:4,data:[0,4,6,10],databas:[0,4,9],datamodel:4,date:[0,3,9,11],deal:[1,10],dealt:11,debian:10,debug:[0,4],dec:8,decid:[0,4],dedic:1,defin:[1,3,4,8,9],definit:0,delet:1,demand:4,depend:[0,4,6,9,11],deploi:[0,4,5,6,9,10,11],deploy:[0,11],depth:0,describ:[0,4,9,11],descript:[0,1,4,9],descriptor:[0,11],design:[1,4],desktop:6,detail:[0,3,4,8,11],dev2:0,develop:[3,6,8],dhcp:10,did:0,differ:[0,3,4,10,11],directli:[0,4,10],directori:[0,1,4,6,8,11],disabl:[0,4,9],discoveri:4,disembl:[1,7],disemblw:[0,3],disk:[10,11],disord:[0,1,2,6,8],displai:[4,9,10],distribut:[0,1,2,8,10,11],distro:4,divers:1,dm_javadoc:0,dn:10,doc:4,docker:[1,6,8],dockerfil:5,document:[0,1,3,4,5,6,11],doe:[0,4,9,10],doesn:6,doi:2,done:[0,1,3,4,9],doubt:0,download:[0,1,3,4,5,6,8],dpaaltalharvdvlrresgvfemdgfaddfgallqalarrhgwlgi:4,drive:10,drmaa:[0,6,11],drop:[1,6,11],due:[1,9],dunde:[0,4,5,6],durat:4,dure:9,e:[0,3,4,5,6,9,10,11],each:[0,1,4,9],eas:1,easi:[4,6],easier:10,easiest:[0,4,6],ec2:1,eclips:4,edit:[0,4,10],edu:3,eight:4,either:[0,3,6],elect:6,elimin:6,elsewher:0,empti:9,enabl:[0,1,6,9,10,11],encod:[0,9,11],encourag:[1,4],end:0,engin:[1,4,8,9,11],ensur:4,enter:[4,6],enumer:4,env:0,environ:[4,8,10,11],environment:4,equal:3,equip:0,error:[0,4,9],especi:0,etc:[0,3,4,5],evalu:0,even:0,everi:[1,4,9],everyth:0,exact:[0,5],exactli:[0,3,4],examin:0,exampl:[0,6,8,9,11],excerpt:4,excess:[0,4],exclud:[4,9],exec_nam:0,exectu:4,execut:[1,3,4,6,8,11],executablenam:4,executablenameparamat:0,executionstatist:[0,4],exist:[0,1,10],expand:10,expend:4,experi:[0,11],explanatori:4,explicit:11,explicitli:0,exploit:0,extend:4,extract:1,f:[3,4],fail:[0,1,4,11],failur:[4,9],fals:[0,9,11],fasta34:0,fasta:[0,1,3,4],fasta_4_mafft:0,fastalist:4,fastaparttre:3,fastasequ:4,faster:[0,10],fastest:0,fatal:0,favorit:3,favour:1,featur:4,feb:0,februari:9,femdgfaddfgallqalarrhgwlgi:4,few:[0,4,9],field:4,file:[3,6,8,9,10,11],fileinputstream:4,filenam:4,filenotfoundexcept:4,fileoutputstream:4,find:[0,4],fine:[4,10],finish:[4,5,9],first:[0,4,9,10],five:4,fix:1,flag:[4,11],flexibl:11,folder:[4,10,11],follow:[0,4,9,11],foo:4,foobar:3,foofriend:3,forget:0,format:[3,4],found:[0,4,9,11],four:[1,4],framework:4,free:10,freeli:10,friend:4,friendli:6,from:[0,1,3,6,7,8,9,10,11],full:[0,3,4,6],full_javadoc:0,fulli:[0,1],fund:[0,2],further:[0,2,4,9],furthermor:0,fusion:[6,10],futur:6,g:[0,3,4,6,10,11],ga:0,gap:4,gapopen:4,gapopenpenalti:4,gb:10,gcc:0,gener:[0,1,4,9,11],geoffrei:2,get:[0,1,4,8],getargu:4,getbyt:4,getfaarvagslnhhlgldemnvaddaafvakavalasdpaaltalharvdvlrresi:4,getjobstatu:4,getlimit:4,getport:4,getpreset:4,getpresetbynam:4,getresult:4,getrunneropt:4,git:[4,8],gitweb:4,give:11,given:[0,4,6,11],globplot:7,globplotw:[0,3],globu:11,glprob:[1,7],glprobsw:0,gnu:[6,10],go:[0,4,10],good:[0,6],googl:[1,8],googleanalyt:1,got:0,graphic:6,greater:[0,1],greatli:0,grid:11,gridwai:11,gridwar:0,group:[0,4,6,11],guid:[6,8],h:[0,3,6],h_cpu:0,h_vmem:0,ha:[0,1,3,4,6,9,10,11],hand:4,handi:[0,3,4],handl:[3,4,5,11],hard:[4,10],hardwar:6,hash:0,have:[0,1,4,5,6,8,9,10,11],health:0,heavi:10,heavili:[0,10],help:[0,1,2,4,6,9,10],here:[0,3,4,6,8,9,11],hierarchi:4,higher:3,hold:4,holder:4,home:[0,4],host:[0,3,4,10,11],host_and_context:3,hotloop:1,hour:[1,9],how:[0,3,4,6],howev:[0,4,10,11],hptglltvalfealqrrqpdlqmhlfatsgddgstlrtrlaqastlhdvtalghlatakhirhhg:4,html:0,http:[0,3,4,5,6,10,11],httpcoderesponseservicestatu:0,huge:0,i386:0,i:[0,3,4,5,6,9],id:[4,9],idea:0,identif:1,identifi:4,idl:[0,4],idllfdlrgwggggrpevfalrpapvqvnwlaypgtsgapwmdyvlgdafalppalepfysehvl:4,ignor:3,imag:[0,1,5,10],impati:6,implement:[4,7,11],improv:[1,2],includ:[0,1,3,4,6,8],incompat:1,incomplet:9,incorpor:6,increas:0,independ:[0,3,4,11],index:0,indic:[9,10],individu:[0,9],inf:[0,4,6],influenc:0,info:[0,10],inform:[0,1,3,4,6,9,10,11],infrastructur:6,initi:[0,4,9],input:[0,3,4,9],inputfil:3,inputs:9,insert:4,insid:0,instal:[0,1,4,6,8],instanc:[0,3,4,11],instead:[0,4,6],institut:6,instruct:[3,5,6],integr:1,interest:6,interfac:[4,6],intern:8,internet:[6,10],interoper:[3,6],interruptedexcept:4,intranet:6,introduc:1,involv:4,io:4,ioexcept:4,ip:[0,10],ipv4:10,ipv6:10,iscancel:9,iscollect:9,isfinish:9,isol:4,issu:[4,8],its:[0,3,4,6,11],itself:0,iupr:7,iupredw:[0,3],j:2,jaba:[0,3,4,6,9,11],jabaw:[1,2,3,11],jabaws22:5,jabaws_serv:0,jabawsadmin1:10,jabawsadmin2:10,jalview:[1,4,5,8,10],jame:2,jan:9,januari:9,jar:[0,3,4,6],java:[0,2,3,4,6,7,10,11],java_hom:0,java_opt:0,javadoc:[0,4],javascript:0,javax:4,jax:4,jaxb:4,jaxw:4,jdk1:0,jdk:0,jessi:10,job:[1,3,4,6,8,11],jobid:[4,9],jobsout:[0,4],jobstatu:4,jobsubmissionexcept:4,jobtempl:0,jpred:1,jpredalig:1,jpredw:1,jre:0,jronn:[1,7],jronnw:[0,3],jsp:0,jul:8,junit:4,just:[0,3,6,10,11],jvm:[0,4],jws2:0,jws2client:4,keep:[4,10,11],kei:[3,9],keyboard:10,know:[0,4,11],known:[0,6],l:[0,2],lab:[0,6,11],languag:[0,3,4,6],laptop:6,larg:[0,6,10],larger:10,last:9,later:[1,4,9],latest:1,latter:0,launch:[5,6],layer:4,ld:4,ld_library_path:[0,4],learn:6,least:[0,6],leav:[0,4],length:0,let:[0,3,4,9,10,11],letter:0,level:[0,4],lfldthpynahttasdalwtgcpvlttpgetfaarvagslnhhlgldemnvaddaafvakavala:4,lib:[0,6],librari:[0,1,3,4,6,11],life:4,lightweight:0,like:[0,3,4,6,10],limit:[1,3,4,8,10,11],limitexceededexcept:4,limitsmanag:4,line:[0,8,10],link:[0,4,9],linux:[0,4,6,10,11],list:[0,1,3,4,6,8],littl:[0,4],llnwrrrlcdwraldvlsaqvraavaqgvgavepfaflsedasaaeqlacartraqaiaasvrpl:4,lm:4,load:[1,4,8],local:[4,5,6,8,9,10,11],localengineexecutionlimit:0,localhost:[0,5,6,9,11],localhost_access_log:0,locat:[0,4,9,10],log4j2:1,log4j:[0,1],log:[8,9],logdir:0,login:[9,10],long_test:4,longer:[1,4],look:[0,4,8],lowercas:4,lrgwggggrpevfalrpapvqvnwlaypgtsgapwmdyvlgdafalppalepfysehvlrlqgaf:4,lsf:11,lx24:0,mac:[1,6,10,11],machin:[0,1,3,4,5,6,10,11],made:[4,9],madeira:2,mafft:[1,3,4,7,8],mafft_binari:0,mafftlimit:0,mafftparamet:0,mafftpreset:0,mafftw:[0,3],mai:[0,4,9,10,11],main:[0,4,6,9],make:[0,4,6,9,10,11],man_serverwar:0,manag:11,mani:[0,11],manipul:3,manner:6,manoeuvr:4,manual:[10,11],map:4,marker:4,match:4,matric:0,matrix:4,matter:3,maximum:[0,6,9],maxruntim:9,mayb:9,mb:10,mean:[0,1,3,4,6,9,10],memori:[0,10,11],mention:4,menu:[0,6,10],messag:[0,10],meta:4,metadata:4,method:[0,1,4,6],mgdttagemavqrglalhq:3,mgdttagemavqrglalhqqrhaeaavllqqasdaapehpgialwlhaledagqaeaaaaytrah:4,might:[0,4,6,10,11],mind:10,minimum:10,minor:1,minut:[1,4,9],miss:0,mode:4,model:[0,4],modifi:[0,4],monitor:[0,1,4],month:9,monthli:9,more:[0,1,3,4,6,9,10,11],most:[3,6,9,10],mostli:4,move:10,ms:[0,2,11],msa:4,msaprob:[1,7],msaprobsw:0,msaw:4,mtadgprellqlraav:3,mtadgprellqlraavrhrpqdfvawl:3,mtadgprellqlraavrhrpqdfvawlmladaelgmgdttagemavqrglalhpghpeavarlgr:4,mtadgprellqlraavrhrpqdvawlmladaelgmgdttagemavqrglalhpghpeavarlgrv:4,multi:9,multipl:[0,1,2,4,6,8],muscl:[0,7],musclew:[0,3],must:[0,1,11],my:6,myhost:[0,3],mylabserv:3,mysql:10,myuni:3,n:4,name:[0,3,4,9,10,11],namespac:4,nat:10,nativ:[0,3,4],natur:9,navig:[0,9],necessari:[4,11],necessarili:9,need:[0,3,4,5,6,9,10,11],net:4,network:10,never:[0,1,9],newer:1,next:[3,4],nine:4,node:[0,11],nofft:3,non:0,none:10,normal:0,noscor:3,note:[3,4,9],noth:[4,10],notic:4,now:[1,3,4,6],nucleotid:0,number:[0,1,4,9,11],o:3,object:[1,4],obtain:[4,8],obvious:11,oct:8,octob:6,off:3,offer:[0,1,4,10],offici:11,often:0,ok:[0,4],older:11,omega:[1,7],onc:[0,4,5,6,10],one:[0,1,3,4,6,9,10,11],ones:0,onli:[0,3,4,9,10,11],op:3,open:[0,3,4,6,8,10],oper:[0,6,10,11],oppos:9,optim:0,option:[0,1,3,4,6,9,10],optionlist:4,oracl:[10,11],order:[0,5,9],org:[0,4],organ:6,orient:[0,4],os:[0,3,10],other:[0,3,4,6,9,10,11],otherwis:[0,11],our:[0,1,4,8],out:[0,3,4,9,11],output:[0,3,4],outputfil:3,outsid:[0,9,10],outstream:4,over:[3,6,10],overhead:0,overload:11,overview:[0,8],ovf:10,own:[0,3,6],p:[4,5],packag:[0,1,3,4,6],page:[0,1,3,4,5,6,9,10],pam300:4,panel:6,paper:2,parallel:[10,11],paramet:[0,1,3,8],parameterinputfil:3,parser:4,part:[0,3,4,6,9],parti:11,particular:[0,4,9,11],pass:[0,4],password:[9,10],patch:1,path:[0,1,3,4,6,11],path_to_jar_fil:3,pattern:0,paus:4,pb:11,pbspro:11,pdf:8,peer:1,per:9,perfectli:11,perform:[0,4,6],period:[1,4,9],pertain:4,peter:[2,9],pipedexecut:4,plai:10,plain:[4,9],platform:[4,10,11],player:[6,10],pleas:[0,3,4,9,10,11],plugin:4,pm:4,point:[0,3,4,6,9,10,11],port:[0,4],portabl:4,posix:0,possibl:[9,10,11],post:0,power:[0,5,10],powerpc:11,pqsmarmlavlrevpdsvlwllsgpgeadarlrafahaqgvdaqrlvfmpklphpqylaryrhad:4,pre:[1,4,8,10,11],preconfigur:10,predict:[0,1,6,8],prefer:[0,6,10],prefix:0,prepar:[2,8,10],preprocess:9,present:9,preset:[0,3,8],presetalign:4,presetman:4,presetmanag:4,presetnam:[3,4],press:6,prevent:[0,4,11],previou:4,print:3,println:4,privaci:6,privat:[0,4,6,10,11],privileg:[8,11],prm:3,probabl:0,probcon:[0,7],probconsw:[0,3],problem:[0,4],procedur:[4,11],procerror:9,process:[0,1,3,4,9],procoutput:9,procter:2,produc:[0,9],product:[0,6,10],profil:[0,4],prog_doc:0,program:[0,1,3,6,8,10,11],programmat:3,prohibit:0,project:[1,2,8],prolong:4,proper:1,properli:5,properti:[0,1,4,9],protein:[0,1,2,6,8],protocol:0,provid:[0,1,3,4,5,6,10],proxi:4,publicli:[4,6],publish:0,pullexecstatist:4,purpos:0,put:[0,4,11],pvlttpgetfaarvagslnhhlgldemnvaddaafvakavalasdpaaltalharvdvlrresgv:4,q:0,qllpeepyitaqllnavaqgvgavepfaflsedasaaesvrplaptrvrskgplrvgfvsngfga:4,qname:4,qpsdtsrvvaeppsrtqcglpeqgvvlccfnnsyklnpqsmarmlavlrevpdsvlwllsgpgea:4,qualifi:4,qualifiednam:4,qualifiedservicenam:4,queer:0,queri:0,quickstart:6,r:[3,4],rais:0,ram:[0,10],rang:6,rather:10,rc:4,re:[4,6],read:[0,4,6,11],readfasta:4,readi:6,real:4,reason:0,rebuild:4,rebuilt:4,recent:0,recheck:4,recommend:[0,1,3,4,6,10,11],recompil:[4,8,11],reconfigur:10,record:[1,4,9],redirect:0,reduc:[0,11],refer:[0,4,10],reflect:1,refresh:1,refus:11,regist:4,reject:0,rel:0,relat:[0,4],releas:8,rem465:1,remot:0,remov:[0,11],repeat:0,replac:[0,1,4,9],report:[0,4,8],repositori:[0,4],repres:4,request:[4,8,9,11],requir:[0,1,4,5,6,10,11],rerun_failed_test:4,reserv:0,reset:4,resid:[0,11],resili:11,resolut:0,resolvehost:0,resourc:[0,4,10],respect:[0,9],respond:0,respons:0,rest:[1,11],restart:[0,9,11],restructuredtext:4,result:[0,4,9],resultnotavailableexcept:4,results:9,retre:3,retriev:[0,4,9],reus:[4,8],review:0,right:11,rlqgafqpsdtsrvvaeppsrtqcglpeqgvvlccfnnsyklnpqsmarmlavlrevpdsvlwl:4,rm:5,rna:[0,2,8],rnaalifold:7,rnaalifoldw:[0,1],rnastructscoremanag:1,role:9,rolenam:9,ronn:7,root:[4,10,11],rout:10,row:9,rule:0,run:[0,1,3,4,6,8,9,10,11],run_cluster_dependent_test:4,runner:4,runnerconfig:[4,9],runtest:4,runtim:[9,11],rwtqqrhaeaavllqqasdaapehpgialwlghaledhqllpeepyitaqldvlsaqvraavaqg:4,s:[0,1,3,6,9,11],sai:10,same:[0,3,4,6,9,10,11],satisfi:4,scientif:1,score:1,scoremanag:1,screen:[0,10],screenshot:9,script:[0,3,4,6,11],search:0,second:[4,9],secondari:[0,1,2,8],section:[0,4,9],secur:[1,6],see:[0,3,4,6,9,10],select:6,self:4,semicolon:0,send:[6,11],sensit:6,sent:0,separ:[0,3,11],sequenc:[0,1,2,3,6,8],sequenceannot:4,sequencelist:4,sequenceutil:4,sequenti:4,serial:4,serv:[0,4,11],server:[3,4,5,8,10,11],server_url:0,servic:[0,1,2,3,6,8,9,10,11],servicenam:[0,3],servicestatu:0,servlet:[1,11],set:[0,3,4,9,10,11],setenv:0,setexecflag:[0,4],setexecutableflag:4,setnativespecif:0,setup:[5,6],setvalu:4,seven:4,sever:[0,1,4,6],sftp:10,sge:0,sge_root:0,sgpgeadarlrafahaqgvdaqrlvfmpklphpqylaryrhadlfldthpynahttasdalwtgc:4,sh:[0,4,6],share:11,shell:10,sherstnev:2,ship:6,shot:10,should:[0,1,4,6,9,10,11],show:[3,9],shown:[3,6],side:4,sign:[1,3],signific:0,silent:4,similar:[4,10],similarli:[1,10],simpl:[0,4,6],simplest:9,simpli:[0,4,6,10,11],simplifi:[0,1],sinc:[0,4,6,11],singl:[6,10,11],site:[3,11],six:4,size:[6,8,9],skeletalexecut:4,sleep:4,slightli:6,small:[0,11],smaller:0,so:[0,3,4,9,10,11],soap:[0,3,4,6],softwar:[3,4,6],some:[0,1,4],someth:4,sometim:[4,9,11],soon:9,sourc:[0,3,6,8,11],space:[4,11],special:4,specif:[0,3,4,11],specifi:[0,3,9],speed:[0,4],sphinx:1,split:4,src:[0,4,6],ssh:10,stabil:4,stage:4,stand:6,standalon:10,standard:[0,1,4,9],standlon:10,start:[0,8,9,10],startup:0,stat:9,statist:[0,1,4,8],statpag:[0,4],statu:[0,1,6,8],step:0,still:11,stlhdvtalghlatakhirhhgidllfdlrgwggggrpevfalrpapvqvnwlaypgtsgapwmd:4,stop:1,storag:0,store:[0,4],stori:9,straight:0,straightforward:6,stream:9,string:[1,4],structur:[0,1,2,8],stub:4,subfold:4,submiss:0,submit:[0,4,6,9],substitut:0,successfulli:0,suffici:[4,10,11],suffix:0,suggest:[0,4],suit:[0,4,6,10],suitabl:0,summari:9,sun:[0,4,11],suppli:[0,1,4,11],support:[0,1,3,4,6,10,11],sure:[0,4,9,11],swap:1,symbol:[0,1,9],system:[4,5,6,8,9,10,11],t:[0,1,4,5,6,7],tabl:[0,9],take:[0,4,10],task:[0,4,6,10,11],tcoffeew:[0,3],tell:0,temp:4,templat:8,temporari:[0,4,9],ten:4,tend:4,termin:0,test:[3,6,8,10,11],testcas:4,testng:4,testoutput:0,testsrc:4,text:[4,9],than:[0,1,4,10,11],thei:[0,4,6,10],them:[0,3,4,6,10,11],thi:[0,1,3,4,5,6,8,9,10,11],thin:4,third:[4,11],though:4,thread:[0,1,4,11],three:[0,4],through:[4,6],thu:[0,4],thw:0,time:[0,1,4,9,10],timestamp:9,tip:0,titl:9,tmp:0,togeth:[3,4],tomcat:[0,1,5,6,8,10,11],tomcat_dir:0,tomcat_root:[0,9],tomcatroot:11,too:[0,6,11],tool:[0,4,6,8,10],top:4,tostr:4,total:9,trace:0,tracker:[4,8],treat:0,trim:3,troshin:2,troubleshoot:8,tune:10,turnkei:[6,10],tvalfealqrrqpdlqmhlfatsgddgstlrtrlaqastlhdvtalghlatakhirhhgidllfd:4,two:[0,1,4,11],txt:[0,4,9],type:[0,4,6],uk:[0,3,4,5,11],uncom:0,undeploi:11,undeploy:11,under:[0,4,6],underneath:4,uniqu:9,unit:8,univers:[0,4,6],unix:[6,9],unless:10,unlik:[6,10],unpack:[6,10,11],unsupportedruntimeexcept:4,until:[0,4],up:[0,1,3,4,6,9,10,11],updat:[0,1,4],upon:[0,4],upper:4,url:[0,3,4,6,10,11],us:[0,1,2,3,4,5,6,9,10,11],us_intl:10,usag:[1,8],user:[0,1,6,9,10,11],usernam:9,utf:[9,11],util:[0,4],v1:[1,11],v2:1,v:[2,10,11],va:[5,8,9],valid:8,valu:[0,3,4],valv:0,variabl:[4,8],variou:0,veri:[0,1,4,6],verifi:5,version:[0,3,6,7,8,9,10,11],vgavepfaflsedasaaeqlacartraqaiaasvrplaptrvrskgplrvgfvsngfgahptgl:4,via:[3,6,10],viennarna:7,view:[4,8],violat:4,virtial:10,virtual:[0,5,8,9],virtualbox:[1,10],visial:0,visit:6,visual:[1,9],visualis:9,vm:8,vm_ip:10,vmdk:10,vmware:[1,6,10],vmx:10,vrwtqqrhaeaavllqqasdaapehpgialwlghaledagqaeaaaaaytrahqllpeepyitaq:4,vulner:1,vwmare:10,wa:[0,1,4,9],wai:[0,3,4,6,9,10],wait:[0,4],want:[0,3,4,6,8,10],war:[1,4,5,8,9,10],warn:0,wast:0,watch:4,we:[0,1,2,4,5,6,10,11],web:[0,1,2,3,5,8,10],webal:0,webapp:[0,6,11],webapplicationpath:0,webmean:10,webservic:[0,4,6],websit:[1,4],weight:4,welcom:3,well:[0,4,6,11],were:[1,4,9,11],what:[0,6,10],whatev:[0,4],when:[0,2,9,10],whenev:4,where:[0,3,4,6,9,10],wherea:0,whether:[4,5,9,10],which:[0,1,3,4,5,6,9,10,11],who:[0,4,6,10],whole:[0,9],whose:9,why:0,wide:6,window:[0,4,6,10,11],wish:0,within:[0,1,4,9],without:[0,4,10,11],work:[2,4,6,8,10,11],worldwid:6,would:[0,3,4,6,10],wrap:4,wrapper:4,write:[3,6,8],writeclustalalign:4,written:0,wrongparameterexcept:4,ws:[0,1,3,4,6],wsbuild:4,wsdl:[4,8],wsimport:[0,4],www:[0,4,5,11],x86:[0,11],x:[0,1,10],xincgc:0,xml:[0,4,9,11],xms512m:0,xmx1024m:0,xxx:0,xxxlimit:0,xxxparamet:[0,4],xxxpreset:0,yesterdai:3,you:[0,2,3,4,5,6,8,9,10,11],your:[3,5,6,8,9,10,11],your_jaba_context_nam:0,your_jabaws_server_url:0,yourself:[0,6],yvlgdafalppalepfysehvlrlqgafqpsdtsrvvaeppsrtqcglpeqgvvlccfnnsykln:4,zip:11},titles:["Advanced Usage","Changelog","Citations","Command Line Client (CLI)","For Developers","Docker Container","Getting Started","Included Tools","Welcome to JABAWS\u2019s documentation!","Usage Statistics","Virtual Appliance (VA)","Web Application Archive (WAR)"],titleterms:{"0":1,"1":1,"16th":1,"18":1,"1st":1,"2":1,"2011":1,"2013":1,"2017":1,"2021":1,"2nd":1,"function":4,"new":4,"public":6,A:4,For:4,The:4,accept:0,access:[4,9],acid:7,ad:4,advanc:0,align:[4,7],amino:7,analyt:0,api:4,applianc:[6,10],applic:[6,9,11],archiv:[6,11],artifact:4,august:1,balanc:0,benefit:6,binari:0,brief:4,build:4,calcul:4,changelog:1,check:4,citat:2,cli:[3,6],client:[3,4,6],cluster:0,code:4,command:[3,4,6],compil:0,complet:4,configur:[0,9,10],connect:4,conserv:7,contain:5,content:[0,8,9],custom:4,dec:1,defin:0,detail:9,develop:4,directori:9,disord:7,distribut:[4,6],docker:5,document:8,engin:0,environ:0,exampl:[3,4],execut:[0,9],file:[0,4],from:4,get:6,googl:0,guid:4,includ:7,instal:[3,5,10,11],intern:0,jabaw:[0,4,5,6,8,9,10],jalview:6,job:[0,9],jul:1,limit:0,line:[3,4,6],list:9,load:0,local:0,log:0,mafft:0,multipl:7,obtain:0,oct:1,overview:4,paramet:4,pre:0,predict:7,prepar:4,preset:4,privileg:9,program:4,project:4,protein:7,recompil:0,releas:1,request:0,reus:0,rna:7,run:5,s:8,secondari:7,sequenc:[4,7],server:[0,6,9],servic:4,size:0,sourc:4,start:6,statist:9,statu:4,structur:[4,7],system:0,templat:4,test:[0,4],tomcat:9,tool:7,troubleshoot:11,unit:4,usag:[0,3,9,10,11],va:[6,10],valid:0,variabl:0,version:1,view:9,virtual:[6,10],vm:10,war:[0,6,11],web:[4,6,9,11],welcom:8,work:0,write:4,wsdl:0,your:[0,4]}}) \ No newline at end of file diff --git a/website/docs/stats.html b/website/docs/stats.html index 6276852..1705422 100644 --- a/website/docs/stats.html +++ b/website/docs/stats.html @@ -5,7 +5,8 @@ - + + Usage Statistics — JABAWS 2.2 documentation @@ -30,6 +31,10 @@ + + + + Contents:

                    +

                    Contents:

                    • Getting Started
                    • Included Tools
                    • @@ -174,7 +179,7 @@
                      -
                      +

                      Usage Statistics¶

                      JABAWS comes with a web application for visualizing usage statistics. The screenshot below shows the main page of this application. The individual month is linked to detailed usage statistics (described later). Please note, that the links to the detailed monthly statistics are only available for authenticated users in the role admin. There is a link at the bottom of the page that lets you login, if you have not done so.

                      If you are using JABAWS VA (Virtual Appliance) then the username is jabaws and password is not defined, i.e. empty.

                      @@ -183,53 +188,53 @@

                      The table contains the number of jobs processed by JABAWS per month, for the whole period when the statistics was collected.

                      For each month the table contains the following information.

                        -
                      • Month - the period of time for which statistics is displayed. For example Jan 2011 means period of time from the first of January to the first of February
                      • -
                      • Total - the total number of jobs accepted by JABAWS
                      • -
                      • Incomplete - the number of jobs for which the result file was not found or was empty excluding cancelled
                      • -
                      • Cancelled - the number of jobs cancelled by the user
                      • -
                      • Abandoned - the number of jobs which result(s) were not collected
                      • +
                      • Month - the period of time for which statistics is displayed. For example Jan 2011 means period of time from the first of January to the first of February

                      • +
                      • Total - the total number of jobs accepted by JABAWS

                      • +
                      • Incomplete - the number of jobs for which the result file was not found or was empty excluding cancelled

                      • +
                      • Cancelled - the number of jobs cancelled by the user

                      • +
                      • Abandoned - the number of jobs which result(s) were not collected

                      The summary for each column is displayed in the last row of the table.


                      -
                      +

                      Detailed View¶

                      Detailed execution statistics for each month is available for authenticated users only.

                      _images/usage_statistics_month.gif

                      Each table contains the number of jobs processed by JABAWS during the period of time specified in the title:

                        -
                      • The “All Jobs” table contains the summary of all jobs
                      • -
                      • “Local Jobs” table - contains the summary of the jobs calculated by the local engine
                      • -
                      • “Cluster Jobs” table - contains the summary of the jobs calculated by the cluster
                      • +
                      • The “All Jobs” table contains the summary of all jobs

                      • +
                      • “Local Jobs” table - contains the summary of the jobs calculated by the local engine

                      • +
                      • “Cluster Jobs” table - contains the summary of the jobs calculated by the cluster

                      Each table contains the following information for each web service:

                        -
                      • Total - the total number of jobs accepted by a particular JABA service
                      • -
                      • Incomplete - the number of jobs for which the result file was not found or was empty excluding cancelled
                      • -
                      • Cancelled - the number of jobs cancelled by the user
                      • -
                      • Abandoned - the number of jobs which result(s) were not collected
                      • +
                      • Total - the total number of jobs accepted by a particular JABA service

                      • +
                      • Incomplete - the number of jobs for which the result file was not found or was empty excluding cancelled

                      • +
                      • Cancelled - the number of jobs cancelled by the user

                      • +
                      • Abandoned - the number of jobs which result(s) were not collected


                      -
                      -
                      +
                      +

                      Job List¶

                      Please note that if you deployed JABAWS WAR, in order to be able to navigate to the job directory from this view, the application server may need to be configured. Please see the Configuring JABAWS execution statistics section for further details.

                      _images/usage_statistics_details.gif

                      Columns:

                        -
                      • JobID - the JABAWS job id, unique for every job
                      • -
                      • Cluster JobID - cluster job id
                      • -
                      • InputSize - input size in bytes
                      • -
                      • ResultSize - result size in bytes
                      • -
                      • Runtime (s) - job’s runtime in seconds
                      • -
                      • Start time (s)- job’s start time and date
                      • -
                      • Finish time (s)- job’s finish time and date
                      • -
                      • isCancelled - whether the job was cancelled
                      • -
                      • isCollected - whether the job was collected. False for the jobs that has been initiated but which results has never been retrieved
                      • -
                      • isFinished - whether the job has finished. This does not necessarily mean that the job has produced the result. The job can sometime finish in failure
                      • +
                      • JobID - the JABAWS job id, unique for every job

                      • +
                      • Cluster JobID - cluster job id

                      • +
                      • InputSize - input size in bytes

                      • +
                      • ResultSize - result size in bytes

                      • +
                      • Runtime (s) - job’s runtime in seconds

                      • +
                      • Start time (s)- job’s start time and date

                      • +
                      • Finish time (s)- job’s finish time and date

                      • +
                      • isCancelled - whether the job was cancelled

                      • +
                      • isCollected - whether the job was collected. False for the jobs that has been initiated but which results has never been retrieved

                      • +
                      • isFinished - whether the job has finished. This does not necessarily mean that the job has produced the result. The job can sometime finish in failure


                      -
                      -
                      + +

                      Job Directory Contents¶

                      _images/usage_statistics_job_details.gif

                      STARTED and FINISHED files contain Unix timestamp - when the job was started and completed respectively. STARTED is replaced by SUBMITTED if the job has been submitted to the cluster, as opposed to executed locally, on the server.

                      @@ -240,44 +245,44 @@

                      input.txt file contains input into the process.

                      There are maybe other files depending on the nature of the job, but the one described above will be present in most cases. In this example, stat.log file stories the execution statistics generated by (clustal executable in this example) process.

                      If you have deployed JABAWS WAR file or made changes to JABAWS configuration you may need to make a few changes to the Tomcat configuration to be able to see the content of the job directory. Please see the Configuring JABAWS execution statistics section for further details.

                      -
                      -
                      + +

                      Configuring JABAWS execution statistics¶

                      JABAWS execution statistics is a multi-component system. First is a crawler whose job is to collect and preprocess the statistics from the job temporary directories and record the collected statistics into the database. The second part of the system is a web application whose job is to visualise the statistics from the database.

                      -

                      It is possible to enable/disable the statistics collector by changing the following properties in the conf/Cluster.engine.properties and conf/Local.engine.properties files.

                      -
                      # Enable/disable cluster statistics collector true = enable, false = disable
                      +

                      It is possible to enable/disable the statistics collector by changing the following properties in the conf/Cluster.engine.properties and conf/Local.engine.properties files.

                      +
                      # Enable/disable cluster statistics collector true = enable, false = disable
                       cluster.stat.collector.enable=false
                       # Maximum amount of time the job is considered be running in hours. Optional defaults to 7 days (168h)
                       cluster.stat.maxruntime=24
                       
                      -
                      # Enable/disable cluster statistics collector true = enable, false = disable
                      +
                      # Enable/disable cluster statistics collector true = enable, false = disable
                       local.stat.collector.enable=true
                       # Maximum amount of time the job is considered to be running in hours. Optional defaults to 24 hours
                       local.stat.maxruntime=6
                       

                      If the statistics collector is enabled then the crawler starts automatically soon after (10 minutes for local engine, and 60 minutes for cluster engine) the JABAWS web application and will be collecting the execution statistics every 24 hours after the start.

                      -

                      The details of the job are only available if the job temporary directory is located within a JABAWS web application. If not, the system administrator can create a symbolic link pointing to the temporary job directories outside of a web application and configure the application server to allow navigation to the links. For the Tomcat application server the context configuration file should be created and copied to the <TOMCAT_ROOT>/conf/Catalina/localhost directory. The name of the file should be the same as the web application context name, for example jabaws.xml for jabaws. Where the TOMCAT_ROOT is the location of the Tomcat web application server. Here is an example of such a file:

                      -
                      <?xml version="1.0" encoding="UTF-8"?>
                      +

                      The details of the job are only available if the job temporary directory is located within a JABAWS web application. If not, the system administrator can create a symbolic link pointing to the temporary job directories outside of a web application and configure the application server to allow navigation to the links. For the Tomcat application server the context configuration file should be created and copied to the <TOMCAT_ROOT>/conf/Catalina/localhost directory. The name of the file should be the same as the web application context name, for example jabaws.xml for jabaws. Where the TOMCAT_ROOT is the location of the Tomcat web application server. Here is an example of such a file:

                      +
                      <?xml version="1.0" encoding="UTF-8"?>
                       <Context antiResourceLocking="false" privileged="true" allowLinking="true"/>
                       
                      -

                      The key option here is this: allowLinking="true". Please also make sure that you have defined the user in role admin as described below.

                      -
                      -
                      +

                      The key option here is this: allowLinking="true". Please also make sure that you have defined the user in role admin as described below.

                      +
                      +

                      Configuring a privileged access for Tomcat web application server¶

                      Access to configuration files, detailed job execution statistics and job directories are allowed only for authenticated users in role admin.

                      -

                      If you use Tomcat, then the simplest way to set up privileged access is to use a plain text configuration file conf/tomcat-user.xml. Here is an example of such configuration file defining user “peter” in role admin.

                      -
                      <tomcat-users>
                      +

                      If you use Tomcat, then the simplest way to set up privileged access is to use a plain text configuration file conf/tomcat-user.xml. Here is an example of such configuration file defining user “peter” in role admin.

                      +
                      <tomcat-users>
                       <role rolename="admin"/>
                       <user username="peter" password="your password here " roles="admin"/>
                       </tomcat-users>
                       

                      For more information on users and roles please consult Apache-Tomcat help pages.

                      -
                      -
                      +
                      +
                      @@ -330,6 +335,7 @@ local.stat.maxruntime=6 SOURCELINK_SUFFIX: '.txt' }; + diff --git a/website/docs/va.html b/website/docs/va.html index 273ea4a..e7046ba 100644 --- a/website/docs/va.html +++ b/website/docs/va.html @@ -5,7 +5,8 @@ - + + Virtual Appliance (VA) — JABAWS 2.2 documentation @@ -30,6 +31,10 @@ + + + + Contents:

                      +

                      Contents:

                      • Getting Started
                      • Included Tools
                      • @@ -176,83 +181,83 @@
                        -
                        +

                        Virtual Appliance (VA)¶

                        -

                        The JABAWS Virtual Appliance is a way to run a JABAWS server locally, without the need to connect to the internet or configure JABAWS. What the appliance provides is a ‘virtual server machine’ (or more simply - virtual machine or VM), running an installation of the JABAWS Web Application Archive (WAR) on TurnKey Linux 12.1 (Standlone Tomcat). Once this has started up, it displays a message indicating the IP address of the JABAWS server, allowing any JABAWS client (such as Jalview or the JABAWS command line client) to connect to it.

                        -

                        You can run the appliance with freely available program such as VMware Player, but you will need to install it first. We have tested the JABAWS appliance with VMware Player v 3.1.2 on Windows and Linux, and VMware Fusion on Mac. However, you are not limited to these virtualization systems and can use the JABAWS Appliance with any other virtualization platform. You can use VMware OVF tool to prepare JABAWS image for a different virtualization platform e.g. VirtualBox. VirtualBox can also use the jabaws*.vmdk directly as an existing preconfigured virtual hard disk file, when creating a new Linux 2.4 / 3.x / 4.x 64-bit VM.

                        +

                        The JABAWS Virtual Appliance is a way to run a JABAWS server locally, without the need to connect to the internet or configure JABAWS. What the appliance provides is a ‘virtual server machine’ (or more simply - virtual machine or VM), running an installation of the JABAWS Web Application Archive (WAR) on TurnKey Linux 12.1 (Standlone Tomcat). Once this has started up, it displays a message indicating the IP address of the JABAWS server, allowing any JABAWS client (such as Jalview or the JABAWS command line client) to connect to it.

                        +

                        You can run the appliance with freely available program such as VMware Player, but you will need to install it first. We have tested the JABAWS appliance with VMware Player v 3.1.2 on Windows and Linux, and VMware Fusion on Mac. However, you are not limited to these virtualization systems and can use the JABAWS Appliance with any other virtualization platform. You can use VMware OVF tool to prepare JABAWS image for a different virtualization platform e.g. VirtualBox. VirtualBox can also use the jabaws*.vmdk directly as an existing preconfigured virtual hard disk file, when creating a new Linux 2.4 / 3.x / 4.x 64-bit VM.

                        -

                        Note

                        -

                        The appliance best suits users who would like to use the JABAWS web-services locally. This might be because they do not want to access systems over an internet, or just want to keep their data private. It is also the recommended option for users who want to install JABAWS on Windows, which does not support all the bioinformatics programs that JABAWS can run.

                        +

                        Note

                        +

                        The appliance best suits users who would like to use the JABAWS web-services locally. This might be because they do not want to access systems over an internet, or just want to keep their data private. It is also the recommended option for users who want to install JABAWS on Windows, which does not support all the bioinformatics programs that JABAWS can run.

                        For servers that will be used heavily, we recommend that a JABAWS Server WAR distribution is deployed, rather than the Virtual Appliance version of JABAWS. This is because the JABAWS appliance is pre-configured to use only 1 CPU and 512M of memory (where the minimum amount of memory required for a JABAWS server is about 378M), which is unlikely to be sufficient for heavy computation. It is possible to reconfigure the virtual appliance so it uses more computation resources, but for most production environments, the JABAWS WAR distribution will be easier to deploy and fine tune to take advantage of the available resources.


                        -
                        +

                        Installing¶

                        -

                        Tip

                        -

                        Check if you are running the recommended version of VWMare.

                        +

                        Tip

                        +

                        Check if you are running the recommended version of VWMare.

                        The free VMware Player can be used to run the JABAWS services from the Windows and Linux host operating systems. VMware Fusion, a commercial VMware product, offers virtual machine support for Mac.

                        -

                        To run the JABAWS server on VMware player, unpack the JABAWS VM into one of the folders on your local hard drive. Open VMware Player, click “Open Virtual Machine” and point the Player to the location of the JABAWS, then choose the jabaws*.vmx file to open an appliance.

                        -

                        When you play the machine for the first time the Player might ask you whether “This virtual machine may have been moved or copied.”, say that you have copied it. That is all.

                        +

                        To run the JABAWS server on VMware player, unpack the JABAWS VM into one of the folders on your local hard drive. Open VMware Player, click “Open Virtual Machine” and point the Player to the location of the JABAWS, then choose the jabaws*.vmx file to open an appliance.

                        +

                        When you play the machine for the first time the Player might ask you whether “This virtual machine may have been moved or copied.”, say that you have copied it. That is all.


                        -
                        -
                        +
                        +

                        Usage¶

                        By default, the JABAWS virtual appliance is configured with 512M of memory and 1 CPU, but you are free to change these settings. If you have more than one CPU or CPU core on your computer you can make them available for the JABAWS virtual machine by editing virtual machine settings. Please bear in mind that more CPU power will not make a single calculation go faster, but it will enable the VM to do calculations in parallel. Similarly, you can add more memory to the virtual machine. More memory lets your VM deal with larger tasks, e.g. work with large alignments.

                        _images/VMware_cpu.png

                        The VMware Player screen shot above displays JABAWS VM CPU settings.


                        -
                        -
                        + +

                        Configuration¶

                        -
                        +

                        VM configuration¶

                        VMware info

                          -
                        • CPUs : 1
                        • -
                        • RAM : 512 MB
                        • -
                        • Networking : Host only (the VM has no access to the outside network, nothing from the outside network can access the VM)
                        • -
                        • Hard disk : 20 GB (expanding)
                        • -
                        • VMware tools : Installed
                        • +
                        • CPUs : 1

                        • +
                        • RAM : 512 MB

                        • +
                        • Networking : Host only (the VM has no access to the outside network, nothing from the outside network can access the VM)

                        • +
                        • Hard disk : 20 GB (expanding)

                        • +
                        • VMware tools : Installed

                        OS information

                          -
                        • OS : TurnKey Linux (v. 14.1, Standalone Tomcat) based on Debian GNU/Linux 8 (Jessie)
                        • -
                        • Installation : Oracle Java 7, Tomcat 7, JABAWS v. 2.2
                        • -
                        • IPv4 address : dhcp
                        • -
                        • IPv6 address : auto
                        • -
                        • DNS name : none
                        • -
                        • Name server : dhcp
                        • -
                        • Route : dhcp
                        • -
                        • Keyboard : US_intl
                        • +
                        • OS : TurnKey Linux (v. 14.1, Standalone Tomcat) based on Debian GNU/Linux 8 (Jessie)

                        • +
                        • Installation : Oracle Java 7, Tomcat 7, JABAWS v. 2.2

                        • +
                        • IPv4 address : dhcp

                        • +
                        • IPv6 address : auto

                        • +
                        • DNS name : none

                        • +
                        • Name server : dhcp

                        • +
                        • Route : dhcp

                        • +
                        • Keyboard : US_intl

                        Login credentials

                          -
                        • Root password: JabawsAdmin1
                        • -
                        • MySQL password: JabawsAdmin1
                        • -
                        • Tomcat admin password: JabawsAdmin2
                        • +
                        • Root password: JabawsAdmin1

                        • +
                        • MySQL password: JabawsAdmin1

                        • +
                        • Tomcat admin password: JabawsAdmin2

                        Services available at the virtial machine IP (e.g. VM_IP = 172.16.232.149)


                        -
                        -
                        +
                        +

                        JABAWS configuration¶

                        After booting the JABAWS VM, you should see similar screen, however, the IP address of your VM may be different. To enable Jalview to work with your JABAWS appliance you need to go to Jalview->Tools->Preferences->Web Services -> New Service URL, and add JABAWS URL into the box provided. For more information please refer to Jalview help pages.

                        _images/vm_welcome_screen.png

                        If you click on Advanced Menu, you will see the configuration console, similar to the one below.

                        _images/VMware_booted.png

                        By default the JABAWS VM is configured to use host-only networking. This means that the host can communicate with the VM via a network, but no other machines can. Similarly, the VM cannot communicate with any other computers apart from the host. If you want to connect to the Internet from the VM, configure your VM to use NAT network. However, you will not be able to connect to the VM from the host in such case. If you want to be able to connect to your VM and let VM connect to the internet at the same time you would have to use a Bridged network. In such a case you would have to configure the VM IP address manually (unless of course your network has a DHCP server to do that).

                        -
                        -
                        -
                        + + +
                      @@ -305,6 +310,7 @@ SOURCELINK_SUFFIX: '.txt' }; + diff --git a/website/docs/war.html b/website/docs/war.html index 7a95950..ab9ea9d 100644 --- a/website/docs/war.html +++ b/website/docs/war.html @@ -5,7 +5,8 @@ - + + Web Application Archive (WAR) — JABAWS 2.2 documentation @@ -30,6 +31,10 @@ + + + + Contents:

                      +

                      Contents:

                      • Getting Started
                      • Included Tools
                      • @@ -172,27 +177,27 @@
                        -
                        +

                        Web Application Archive (WAR)¶

                        JABAWS Web Application aRchive can run on any host operating system that supports Java and Apache-Tomcat. JABAWS requires a Java web application server compliant with version 2.4 of the Java Servlet specification, and a Java 7 runtime environment. We recommend using an official Oracle Java 7 runtime environment, and Apache-Tomcat web application server version 8.5, but older Tomcat versions above 5.5 will work too.

                        -

                        Danger

                        -

                        The JABAWS WAR is not generally compatible with older Mac systems based on the PowerPC architecture, since Java 1.7 is not available to run JABAWS.

                        +

                        Danger

                        +

                        The JABAWS WAR is not generally compatible with older Mac systems based on the PowerPC architecture, since Java 1.7 is not available to run JABAWS.

                        However JABAWS depends on a number of third party programs which are not available for all operating systems. In particular, not all web services are currently available for MS Windows platform. JABAWS comes with pre-compiled MS Windows and Linux x86 binaries, as well as the source code and build scripts necessary to recompile them.

                        To run JABAWS on the cluster you must have shared disk space accessible from all cluster nodes.


                        -
                        +

                        Installing¶

                        -

                        Tip

                        -

                        Check if you are running the recommended versions of Java and Apache-Tomcat.

                        +

                        Tip

                        +

                        Check if you are running the recommended versions of Java and Apache-Tomcat.

                        -

                        JABAWS is distributed as a web application archive (WAR). To deploy JABAWS in Apache-Tomcat - simply drop the war file into the webapps directory of a running Tomcat, and it will do the rest. If you used this deployment procedure, do not remove the Jabaws WAR file, otherwise Tomcat will undeploy your application! The context path for your deployed application will be the same as the name of the war file. For example, assuming the Tomcat server is running on the localhost:8080 and jaba.war file is put into the <tomcat server root>/webapps directory, the deployed application from the jabaws.war file then can be accessed by this URL http://localhost:8080/jabaws.

                        -

                        For any other web application server, please follow your server’s specific deployment procedure for ‘WAR’ files. If you install JABAWS on a MS Windows machine, then at this point your JABAWS installation will already be up and running, and you can try its services out as described here in the documentation. If you install JABAWS on Linux you will need to compile the binaries for your system and set an executable flag for binaries (more details here and here).

                        +

                        JABAWS is distributed as a web application archive (WAR). To deploy JABAWS in Apache-Tomcat - simply drop the war file into the webapps directory of a running Tomcat, and it will do the rest. If you used this deployment procedure, do not remove the Jabaws WAR file, otherwise Tomcat will undeploy your application! The context path for your deployed application will be the same as the name of the war file. For example, assuming the Tomcat server is running on the localhost:8080 and jaba.war file is put into the <tomcat server root>/webapps directory, the deployed application from the jabaws.war file then can be accessed by this URL http://localhost:8080/jabaws.

                        +

                        For any other web application server, please follow your server’s specific deployment procedure for ‘WAR’ files. If you install JABAWS on a MS Windows machine, then at this point your JABAWS installation will already be up and running, and you can try its services out as described here in the documentation. If you install JABAWS on Linux you will need to compile the binaries for your system and set an executable flag for binaries (more details here and here).


                        -
                        -
                        +
                        +

                        Usage¶

                        Running many JABAWS instances on the same server

                        JABAWS is supplied as a Web Application aRchive which can be dealt with as any other web applications. So it is perfectly possible to run two JABAWS instances from the same server. Just make two different contexts on your application server and unpack JABAWS in both of them. For example if your server name is http://www.align.ac.uk, and the context names are public and private. Than one group of users could be given a URL http://www.align.ac.uk/public and another http://www.align.ac.uk/private. These contexts will be served by two independent JABAWS instances, and could be configured differently. If you keep local engine enabled, make sure you reduce the number of threads local engine is allowed to use to avoid overloading the server. Alternatively two completely separate web application server instances (e.g. Apache-Tomcat) could be used. This will give you a better resilience and more flexibility in memory settings.

                        @@ -201,24 +206,24 @@

                        JABAWS supported cluster batch management systems

                        JABAWS uses DRMAA v1.0 library to send and manage jobs on the cluster. DRMAA supports many different cluster job management systems. Namely Sun Grid Engine, Condor, PBS, GridWay, Globus 2/4, PBSPro, LSF. For up to date information please consult DRMAA web site. We found that DRMAA implementation differ from platform to platform and were trying to use only the basic functions. We have only tested JABAWS on Sun Grid Engine v 6.2. Please let use know if you have any experience of running JABAWS on other platforms.


                        -
                        -
                        + +

                        Troubleshooting¶

                        If Apache-Tomcat fails to deploy jabaws.war file:

                          -
                        • Make sure Tomcat has sufficient access rights to read your war file.
                        • -
                        • Restart the Tomcat, sometimes it will not restart after the new war file is added without restart
                        • -
                        • If Tomcat still refuses to unpack the war file, unpack it manually into web application folder (the war file is just a zip archive). Restart the Tomcat.
                        • +
                        • Make sure Tomcat has sufficient access rights to read your war file.

                        • +
                        • Restart the Tomcat, sometimes it will not restart after the new war file is added without restart

                        • +
                        • If Tomcat still refuses to unpack the war file, unpack it manually into web application folder (the war file is just a zip archive). Restart the Tomcat.

                        If Tomcat undeployes your application:

                        -

                        If the war file is automatically removed by Tomcat use an explicit application descriptor. Add a context descriptor file into <tomcatRoot>conf/Catalina/localhost directory. Name your context file the same as your application folder e.g. if your JABAWS resides in webapps/jabaws folder, then call the context file jabaws.xml. Below is an example of content this file might have.

                        -
                        <?xml version="1.0" encoding="UTF-8"?>
                        +

                        If the war file is automatically removed by Tomcat use an explicit application descriptor. Add a context descriptor file into <tomcatRoot>conf/Catalina/localhost directory. Name your context file the same as your application folder e.g. if your JABAWS resides in webapps/jabaws folder, then call the context file jabaws.xml. Below is an example of content this file might have.

                        +
                        <?xml version="1.0" encoding="UTF-8"?>
                         <Context antiResourceLocking="false" privileged="true" />
                         

                        This should be sufficient to prevent Tomcat from removing your JABAWS from WEBAPPS. For more information about the Tomcat deployer read this documentation on the Apache-Tomcat web site.

                        -
                        -
                        +
                        +
                        @@ -271,6 +276,7 @@ SOURCELINK_SUFFIX: '.txt' }; + diff --git a/website/download.jsp b/website/download.jsp index ba4d6e9..d5654f9 100644 --- a/website/download.jsp +++ b/website/download.jsp @@ -98,16 +98,16 @@

                        @@ -174,7 +174,7 @@

                        @@ -208,10 +208,10 @@ <%----%> <%-- download (92M)--%>

                      • - + The complete project
                      • - + JABAWS source
                      • diff --git a/website/getting_started.jsp b/website/getting_started.jsp index 9f6f0a0..161b006 100644 --- a/website/getting_started.jsp +++ b/website/getting_started.jsp @@ -103,7 +103,7 @@ (version 1.7)
                      • Provided that you have the Java ready to run, you can get command line help by changing to the directory where you downloaded the client jar, and typing:
                        -
                        java -jar jabaws-full-client-2.2.0.jar
                        +
                        java -jar jabaws-full-client-2.2.1.jar
                      • diff --git a/website/index.jsp b/website/index.jsp index 2e27946..a1567bc 100644 --- a/website/index.jsp +++ b/website/index.jsp @@ -15,7 +15,7 @@

                        -

                        Welcome to the JABAWS 2.2 website

                        +

                        Welcome to the JABAWS 2.2.1 website

                        @@ -152,7 +152,7 @@ JABAWS CLI, or with your own program. The latest versions of Jalview (version 2.9 or later) are fully compatible - with JABAWS 2.2 and are configured to use the public JABAWS server by default. + with JABAWS 2.2.1 and are configured to use the public JABAWS server by default.

                        • The JABAWS public web services address is http://www.compbio.dundee.ac.uk/jabaws
                        • @@ -174,11 +174,15 @@
                          -

                          New in JABAWS 2.2

                          +

                          New in JABAWS 2.2.1

                          -

                          - The current JABAWS version is 2.2 released on 18 August 2017. Among the new developments in JABAWS 2.2 are: +

                          Version 2.2.1 was released on 16th December + 2021. It is JABAWS 2.2, minimally patched to address the widely + publicised Log4Shell vulnerability.

                          +

                          + + The JABAWS 2.2 series was first released on 18 August 2017. Among the new developments in JABAWS 2.2 are:

                          • Several programs included in JABAWS, including Clustal Omega, ClustalW, Mafft and T-coffee, were updated. diff --git a/website/template_header.jsp b/website/template_header.jsp index dcfda0e..2dc858f 100644 --- a/website/template_header.jsp +++ b/website/template_header.jsp @@ -18,7 +18,7 @@ - + JABAWS | Java Bioinformatics Analyses Web Services (JABAWS) | ${param.title}