JWS-109 New JSP-based webpages generated from the original HTML files. These pages...
authorFábio Madeira <fmmarquesmadeira@dundee.ac.uk>
Mon, 13 Feb 2017 17:29:50 +0000 (17:29 +0000)
committerFábio Madeira <fmmarquesmadeira@dundee.ac.uk>
Mon, 13 Feb 2017 17:29:50 +0000 (17:29 +0000)
website/getting_started.jsp [new file with mode: 0644]
website/index.jsp [new file with mode: 0644]
website/man_about.jsp [new file with mode: 0644]
website/man_client.jsp [new file with mode: 0644]
website/man_configuration.jsp [new file with mode: 0644]
website/man_dev.jsp [new file with mode: 0644]
website/man_server_dev.jsp [new file with mode: 0644]
website/man_servervm.jsp [new file with mode: 0644]
website/man_serverwar.jsp [new file with mode: 0644]
website/man_stats.jsp [new file with mode: 0644]

diff --git a/website/getting_started.jsp b/website/getting_started.jsp
new file mode 100644 (file)
index 0000000..084da3b
--- /dev/null
@@ -0,0 +1,199 @@
+<%--<?xml version="1.0" encoding="ISO-8859-1" ?>--%>
+<%--<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>--%>
+
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
+<%@ taglib uri="http://displaytag.sf.net" prefix="dt" %>
+
+
+<c:import url="template_header.jsp" >
+    <c:param name="title">Getting Started</c:param>
+</c:import>
+
+<div class="row">
+    <div class="col-md-12">
+        <div class="panel panel-default">
+            <div class="panel panel-heading">
+                <h1 class="panel-title">Choose a JABAWS distribution</h1>
+            </div>
+            <div class="panel-body">
+                <p class="justify">
+                    Choose the JABAWS distribution that better suits your needs and read the quickstart guides below.
+                    Detailed information is available in the <a href="${pageContext.request.contextPath}/man_docs.jsp">JABAWS docs pages</a>.
+                </p>
+                <br>
+                <div class="row">
+                    <!--<div class="col-md-1"></div>-->
+                    <div class="col-md-10">
+                        <table class="table">
+                            <tr>
+                                <th>Quick Guide</th>
+                                <th>I want to use JABAWS for...</th>
+                            </tr>
+                            <tr>
+                                <td><a href="#va">JABAWS Virtual Appliance (VA)</a></td>
+                                <td>Running Multiple Sequence Alignments through Jalview on my
+                                    <strong>own</strong> computer</td>
+                            </tr>
+                            <tr>
+                                <td><a href="#war">JABAWS Web Application aRchive (WAR)</a></td>
+                                <td>Running JABAWS for my group, lab, or organization on the
+                                    <strong>local</strong> infrastructure </td>
+                            </tr>
+                            <tr>
+                                <td><a href="#client">JABAWS Java Client</a></td>
+                                <td>Accessing a JABAWS server from my own code</td>
+                            </tr>
+                        </table>
+                    </div>
+                    <div class="col-md-2"></div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<div class="row" id="va">
+    <div class="col-md-12">
+        <div class="panel panel-default">
+            <div class="panel panel-heading">
+                <h1 class="panel-title">JABAWS Virtual Appliance (VA)</h1>
+            </div>
+            <div class="panel-body">
+                <!--<h4>Running JABAWS on your local machine</h4>-->
+
+                <p class="justify">
+                    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 <a href="man_servervm.jsp#whenvm">complete guide
+                    to the JABAWS VA</a> is given in the manual, but for the impatient, a brief instructions are given below:
+                </p>
+
+                <p class="justify">
+                    If you work on Windows, Linux or Unix:
+                </p>
+                <ol>
+                    <li>Download <a href="http://gjb-www-1.cluster.lifesci.dundee.ac.uk:8086/download">JABAWS Virtual Appliance</a></li>
+                    <li>Download and install <a href="http://www.vmware.com/products/player">VMWare Player</a>.</li>
+                    <li>Unpack the JABAWS virtual appliance and open it with VMware Player.</li>
+                </ol>
+
+                <p class="justify">
+                    If you work on Mac do the same using
+                    <a href="http://www.vmware.com/products/fusion/overview.html">
+                        VMware Fusion</a>, or for free alternative use a WAR JABAWS package.
+                </p>
+
+                <p><strong>Testing</strong></p>
+                <p class="justify">
+                    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.
+                </p>
+                <p class="justify">
+                    Alternatively you can use Jalview to complete the testing.
+                </p>
+                <ol>
+                    <li>Launch the desktop version of <a href="http://www.jalview.org/download.html">Jalview</a></li>
+                    <li>Open the Jalview desktop's preferences panel (from the Tools-&gt;Preferences menu option), select the
+                        <em2>Webservices</em2> panel and press the
+                        <em2>New Service URL</em2> button.</li>
+                    <li>Enter the JABAWS URL for your new server. This is shown once the appliance is booted up.</li>
+                </ol>
+            </div>
+        </div>
+    </div>
+</div>
+<div class="row" id="war">
+    <div class="col-md-12">
+        <div class="panel panel-default">
+            <div class="panel panel-heading">
+                <h1 class="panel-title">JABAWS Web Application aRchive (WAR)</h1>
+            </div>
+            <div class="panel-body">
+
+                <!--<h4>Installing a JABAWS Server Web Application Archive (WAR) package</h4>-->
+                <p class="justify">
+                    This is for anyone who wants to run JABAWS for their group, lab or organization, or wants to enable
+                    their local JABA server to use the cluster or perform very large tasks.
+                </p>
+                <ol>
+                    <li>Download the <a href="http://gjb-www-1.cluster.lifesci.dundee.ac.uk:8086/download">JABAWS WAR file</a></li>
+                    <li>Download and install <a href="http://tomcat.apache.org/download-70.cgi">Apache-Tomcat</a>.<br/>
+                        <em2>You will need at least Tomcat version 5.5 of
+                            (we would recommend version 7.0) and at least Java 1.6 (i.e. JAVA 6).</em2>
+                    </li>
+                    <li>Drop the JABAWS WAR file into <em2>tomcat/webapps</em2> directory.</li>
+                    <li>(Re)start the Tomcat.</li>
+                    <li>Once the tomcat has started, it should automatically unpack the WAR
+                        into the webapps directory (if it doesn't, then you'll need to do this
+                        manually, it's just a zip archive in the end).</li>
+                    <li> If you are on Mac or other unix-like architecture with GNU compilers
+                        available or you'd like to get a maximum performance <br/>
+                        <em2>cd</em2> to
+                        <em2>webapps/jabaws/binaries/src/</em2>
+                        and execute <em2>./compilebin.sh</em2>
+                        script to compile all binaries JABAWS depends on.
+                    </li>
+                </ol>
+
+                <p><strong>Testing</strong></p>
+                <p class="justify">
+                    You can test that your JABAWS server is working in several ways.
+                </p>
+                <ol>
+                    <li>Visit Services Status page available from the JABAWS main page using your web browser.</li>
+
+                    <li>If you are working on the command line, then use the command line client shipped with the
+                        JABAWS war to test it by running:
+                        <pre><code class="bash">java -jar &lt;Path to tomcat WebApp directory&gt;/jabaws/WEB-INF/lib/jaba-client.jar -h=http://localhost:8080/jabaws</code></pre>
+                        In this example we assumed that your JABAWS server URL is
+                        <em2>http://localhost:8080</em2> and JABAWS context path is
+                        <em2>jabaws</em2>
+                    </li>
+                    <li>Alternately, you can point Jalview at your new server:
+                        <ul>
+                            <li>Launch the desktop version of <a href="http://www.jalview.org/download.html">Jalview</a></li>
+                            <li>Open the Jalview desktop's preferences panel (from the Tools-&gt;Preferences menu option),
+                                elect the <em2>Webservices</em2> panel and press
+                                the <em2>New Service URL</em2> button.</li>
+                            <li>Enter the URL for the tomcat server, including the context path for the
+                                JABAWS web app (e.g. http://localhost:8080/jabaws).</li>
+                        </ul>
+                    </li>
+                </ol>
+            </div>
+        </div>
+    </div>
+</div>
+<div class="row" id="client">
+    <div class="col-md-12">
+        <div class="panel panel-default">
+            <div class="panel panel-heading">
+                <h1 class="panel-title">JABAWS Command Line Java Client</h1>
+            </div>
+            <div class="panel-body">
+                <p class="justify">
+                    This is a single java archive which contains the JABAWS command line client. It requires Java
+                    version 1.6 to run, and allows anyone who wants to connect to and to use JABAWS from their own
+                    software.
+                </p>
+                <ol>
+                    <li>Download <a href="http://gjb-www-1.cluster.lifesci.dundee.ac.uk:8086/download">the Client Jar file</a></li>
+                </ol>
+                <p class="justify">
+                    You can read more about how to use command line client <a href="man_client.jsp">in
+                    the CMD Client</a> section of the manual. You can also get command line help by changing to
+                    the directory where you downloaded the client jar, and typing:
+                </p>
+                <pre><code class="bash">java -jar jaba-client.jar</code></pre>
+                <p class="justify">
+                    A 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.
+                    <!-- TODO Provide list of libraries for different languages -->
+                </p>
+            </div>
+        </div>
+    </div>
+</div>
+
+<jsp:include page="template_footer.jsp" />
\ No newline at end of file
diff --git a/website/index.jsp b/website/index.jsp
new file mode 100644 (file)
index 0000000..0aee088
--- /dev/null
@@ -0,0 +1,185 @@
+<%--<?xml version="1.0" encoding="ISO-8859-1" ?>--%>
+<%--<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>--%>
+
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
+<%@ taglib uri="http://displaytag.sf.net" prefix="dt" %>
+
+
+<c:import url="template_header.jsp" >
+    <c:param name="title">Main Page</c:param>
+</c:import>
+
+<div class="row">
+    <div class="col-md-12">
+        <div class="panel panel-default">
+            <div class="panel panel-heading">
+                <h1 class="panel-title">Welcome to the JABAWS website</h1>
+            </div>
+            <div class="panel-body">
+                <p class="justify">
+                <p style="color:black; font-weight:normal; text-align:left;">
+                    <span style="border-bottom:dotted 1px #666" title="JAva Bioinformatics Analysis Web Services">JABAWS</span>
+                    is free software which provides <a href="http://en.wikipedia.org/wiki/Web_service">web services</a> conveniently
+                    packaged to run on your local computer, server or cluster.
+                </p>
+                <p class="justify">
+                    Services for multiple sequence alignment include
+                    <a href="http://www.clustal.org/omega">Clustal Omega</a>,
+                    <a href="http://www.clustal.org/clustal2">Clustal W</a>,
+                    <a href="http://align.bmr.kyushu-u.ac.jp/mafft/software/">MAFFT</a>,
+                    <a href="http://www.drive5.com/muscle">MUSCLE</a>,
+                    <a href="http://www.tcoffee.org/Projects_home_page/t_coffee_home_page.html">T-Coffee</a>,
+                    <a href="http://probcons.stanford.edu/">ProbCons</a>,
+                    <a href="http://msaprobs.sourceforge.net/">MSAProbs</a>, and
+                    <a href="http://sourceforge.net/projects/glprobs/">GLProbs</a>.
+                    Analysis services allow prediction of the protein disorder with
+                    <a href="http://dis.embl.de/">DisEMBL</a>,
+                    <a href="http://iupred.enzim.hu">IUPred</a>,
+                    Jronn (a Java implementation of <a href="http://www.strubi.ox.ac.uk/RONN">Ronn</a> by P. Troshin and G. Barton, unpublished), and
+                    <a href="http://globplot.embl.de/">GlobPlot</a>; and calculation of amino acid alignment conservation
+                    with <a href="http://www.compbio.dundee.ac.uk/aacon">AACon</a>.
+                    The secondary structure for an RNA aligment can be predicted with the RNAalifold program from the
+                    <a href="http://www.tbi.univie.ac.at/RNA">Vienna RNA package</a>.
+                </p>
+                <p class="justify">
+                        <span style="color:black; font-weight:normal; text-align:left;">
+                        JABAWS 2.2 installation can be accessed from the <strong><a href="http://www.jalview.org">Jalview</a> desktop
+                        application</strong> (version 2.8 onwards) and the <a href="man_client.jsp">JABAWS command-line client</a>.
+                        JABAWS is able to provide multiple alignment and sequence analysis calculations limited only by your own
+                        computing resources.<br/>
+                        </span>
+                </p>
+            </div>
+        </div>
+    </div>
+</div>
+<div class="row">
+    <div class="col-md-4">
+        <div class="panel panel-default">
+            <div class="panel panel-heading">
+                <h1 class="panel-title">For Users</h1>
+            </div>
+            <div class="panel-body">
+                <p class="justify">
+                    <strong>The Server: </strong><a href="http://gjb-www-1.cluster.lifesci.dundee.ac.uk:8086/jabaws-dev/get?id=JABAWS201.pack.tar.gz">JABAWS Virtual Appliance:</a> (440M)
+                    or <a href="2.1/man_awscloud.html">JABAWS on Amazon Webservices Cloud</a><br/>
+                    <strong>The Main Client: </strong><a href="http://www.jalview.org/download.html">Jalview</a> (18M)
+                </p>
+                <p class="justify">
+                    To use JABAWS web services on most operating systems, just download and <a href="2.1/manual_qs_va.html#qsc">install</a>
+                    the JABAWS Virtual Appliance (VA). Or even easier - just start JABAWS machine on the cloud and point Jalview at it!
+                </p>
+            </div>
+        </div>
+    </div>
+    <div class="col-md-4">
+        <div class="panel panel-default">
+            <div class="panel panel-heading">
+                <h1 class="panel-title">For System Administrators</h1>
+            </div>
+            <div class="panel-body">
+                <p class="justify">
+                    <strong>The Server: </strong><a href="http://gjb-www-1.cluster.lifesci.dundee.ac.uk:8086/jabaws-dev/get?id=jabaws.war">JABAWS Web
+                    Application aRchive</a> (55M)
+                </p>
+                <p class="justify">
+                    JABAWS requires a Servlet 2.4 compatible servlet container like <a href="http://tomcat.apache.org">Apache Tomcat</a>
+                    to run. Please check the <a href="2.1/manual_qs_war.html#qsc">quick start guide</a> for installation instructions.
+                </p>
+            </div>
+        </div>
+    </div>
+    <div class="col-md-4">
+        <div class="panel panel-default">
+            <div class="panel panel-heading">
+                <h1 class="panel-title">For Bioinformaticians/Developers</h1>
+            </div>
+            <div class="panel-body">
+                <strong>The Server: </strong><a href="http://gjb-www-1.cluster.lifesci.dundee.ac.uk:8086/jabaws-dev/get?id=jabaws.war">JABAWS Web Application aRchive</a>  (55M)
+                <br/>
+                <strong>The Client: </strong>
+                Command Line Client <a href="http://gjb-www-1.cluster.lifesci.dundee.ac.uk:8086/jabaws-dev/get?id=min-jaba-client-2.1.jar">binary</a> |
+                <a href="http://gjb-www-1.cluster.lifesci.dundee.ac.uk:8086/jabaws-dev/get?id=jaba-client-src-2.1.jar">source</a>
+                <p class="justify">
+                    You can either use the JABAWS Virtual Appliance or the JABAWS Web Application aRchive (WAR) from your own computer or a lab server.
+                    The WAR version gives greater flexibility but requires a bit more configuration. Alternatively you can script against our public
+                    server (see below) with the command line client or you own script.
+                    Check out the <a href="2.1/manual_qs_client.html#qsc">quick start guide</a> for further details.
+                </p>
+            </div>
+        </div>
+    </div>
+</div>
+<div class="row">
+    <div class="col-md-12">
+        <div class="panel panel-default">
+            <div class="panel panel-heading">
+                <h1 class="panel-title">Public JABAWS Server</h1>
+            </div>
+            <div class="panel-body">
+
+                <p class="justify">
+                    You can access our public JABAWS web services with our
+                    <a href="http://gjb-www-1.cluster.lifesci.dundee.ac.uk:8086/jabaws-dev/get?id=min-jaba-client-2.1.jar">command line client</a>,
+                    <a href="http://www.jalview.org/download.html">Jalview</a>,
+                    or with your own program. Jalview version 2.8 or later is fully compatible with JABAWS 2.1.
+                    The latest versions of Jalview are configured to use public JABAWS server by default.</p>
+                <ul>
+                    <li>The JABAWS public web services address is <strong>http://www.compbio.dundee.ac.uk/jabaws</strong> </li>
+                    <li>A detailed web services description is available from here:
+                        <a href="http://www.compbio.dundee.ac.uk/jabaws/ClustalWS?"
+                           title="http://www.compbio.dundee.ac.uk/jabaws/ClustalWS?" rel=nofollow">WSDL List</a></li>
+                </ul>
+                <p class="justify">
+                    These web services accept submissions of <strong>less than one thousand sequences</strong>.
+                    Should you find this to be insufficient for your needs, or if you are concerned about privacy
+                    or on an unreliable network connection, then you can
+                    <a href="http://gjb-www-1.cluster.lifesci.dundee.ac.uk:8086/download">download</a> and
+                    run the JABAWS Server on your own hardware.
+                </p>
+            </div>
+        </div>
+    </div>
+</div>
+<div class="row">
+    <div class="col-md-12">
+        <div class="panel panel-default">
+            <div class="panel panel-heading">
+                <h1 class="panel-title">Previous versions of JABAWS</h1>
+            </div>
+            <div class="panel-body">
+                <p class="justify">
+                    We advise you to update to JABAWS 2.1 as this version is fully backward compatible with JABAWS v1.0 and v2.0 and contains
+                    <a href="man_about.jsp#jaba2.2">some important bug fixes</a>. Please consult the <a href="man_about.jsp#jalviewsup">manual</a>
+                    for more information on compatibility between versions.</p><p>Should you require them, however, old versions of JABAWS are available here:</p>
+                <ul>
+                    <li><strong><a href="http://www.compbio.dundee.ac.uk/jabaws1">http://www.compbio.dundee.ac.uk/jabaws1</a></strong></li>
+                    <li><strong><a href="http://www.compbio.dundee.ac.uk/jabaws2">http://www.compbio.dundee.ac.uk/jabaws2</a></strong></li>
+                    <li><strong><a href="http://www.compbio.dundee.ac.uk/jabaws201">http://www.compbio.dundee.ac.uk/jabaws201</a></strong></li>
+                </ul>
+            </div>
+        </div>
+    </div>
+</div>
+<div class="row">
+    <div class="col-md-12">
+        <div class="panel panel-default">
+            <div class="panel panel-heading">
+                <h1 class="panel-title">Reference</h1>
+            </div>
+            <div class="panel-body">
+                <p class="justify">
+                    Peter V. Troshin, James B. Procter and Geoffrey J. Barton -
+                    Java Bioinformatics Analysis Web Services for Multiple Sequence Alignment - JABAWS:MS
+                    <em>Bioinformatics</em> 2011. 27 (14): 2001-2002. doi: <a href="http://bioinformatics.oxfordjournals.org/content/early/2011/05/18/bioinformatics.btr304.abstract?keytype=ref&amp;ijkey=gd0DwuYBzFRhe4T">
+                    10.1093/bioinformatics/btr304</a>.
+                </p>
+            </div>
+        </div>
+    </div>
+</div>
+
+
+<jsp:include page="template_footer.jsp" />
\ No newline at end of file
diff --git a/website/man_about.jsp b/website/man_about.jsp
new file mode 100644 (file)
index 0000000..a4444e9
--- /dev/null
@@ -0,0 +1,301 @@
+<%--<?xml version="1.0" encoding="ISO-8859-1" ?>--%>
+<%--<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>--%>
+
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
+<%@ taglib uri="http://displaytag.sf.net" prefix="dt" %>
+
+
+<c:import url="template_header.jsp" >
+    <c:param name="title">Documentation</c:param>
+</c:import>
+
+<ol class="breadcrumb">
+    <li><a href="${pageContext.request.contextPath}/index.jsp">Home</a></li>
+    <li><a href="man_docs.jsp">Documentation</a></li>
+    <li class="active"><a href="man_server_dev.jsp">Develop JABAWS</a></li>
+</ol>
+<div class="row">
+    <div class="col-md-12">
+        <div class="panel panel-default">
+            <div class="panel panel-heading">
+                <h1 class="panel-title">What is JABAWS?</h1>
+            </div>
+            <div class="panel-body">
+                <!--<h4>About</h4>-->
+                <ul>
+                    <li><a href="#wisjaba">What is JABAWS?</a></li>
+                    <li><a href="#wjaba">JABAWS Benefits</a></li>
+                    <li><a href="#alprog">JABA Web Services Programs</a></li>
+                    <li><a href="#jaba2.2">What is new in JABAWS 2.2?</a> </li>
+                    <li><a href="#jabaclient">What is JABAWS Client</a>?</li>
+                    <li><a href="#jalviewsup">JABAWS versions compatibility and Jalview support </a></li>
+                    <li><a href="#cmdclient">Programmatic access to JABAWS</a></li>
+                </ul>
+                <!--<p class="justify">-->
+                <!--</p>-->
+            </div>
+        </div>
+    </div>
+</div>
+
+<div class="row" id="wisjaba">
+    <div class="col-md-12">
+        <div class="panel panel-default">
+            <div class="panel panel-heading">
+                <h1 class="panel-title">What is JABAWS?</h1>
+            </div>
+            <div class="panel-body">
+                <p class="justify">
+                    JABAWS stands for JAva Bioinformatics Analysis Web Services. As the name suggests, 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 <a href="#alprog">the list of currently supported programs</a>) from <a href="http://www.jalview.org">Jalview</a>.
+                    Future versions of JABAWS will incorporate other tools.
+                </p>
+                <strong>Getting JABAWS</strong>
+                <p>
+                    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. 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. 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 client is what you need.
+                </p>
+                <p class="text-right">
+                    <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+                </p>
+            </div>
+        </div>
+    </div>
+</div>
+<div class="row" id="wjaba">
+    <div class="col-md-12">
+        <div class="panel panel-default">
+            <div class="panel panel-heading">
+                <h1 class="panel-title">JABAWS Benefits</h1>
+            </div>
+            <div class="panel-body">
+                <ul>
+                    <li>Can be deployed on most operating systems, as a VMware or other compatible Virtual Appliance or a Tomcat Java Web Application.</li>
+                    <li>Comes complete with sources and binaries for all the bioinformatics programs that it runs.</li>
+                    <li>Can operate as a stand alone server or one that submits jobs to a cluster <em>via</em> <a href="http://www.drmaa.org/">DRMAA</a>.</li>
+                    <li>Easy to access from <a href="http://www.jalview.org">Jalview</a> using its graphical client, or using the JABAWS command line client.</li>
+                    <li>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 <a href="http://www.compbio.dundee.ac.uk/">University of Dundee</a>.</li>
+                    <li>Local or intranet installation eliminates any security concerns you might have about sending sensitive data over the internet.</li>
+                    <li>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.</li>
+                </ul>
+                <p class="text-right">
+                    <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+                </p>
+            </div>
+        </div>
+    </div>
+</div>
+<div class="row" id="alprog">
+    <div class="col-md-12">
+        <div class="panel panel-default">
+            <div class="panel panel-heading">
+                <h1 class="panel-title">JABA Web Services Programs</h1>
+            </div>
+            <div class="panel-body">
+                <p>JABAWS currently provides access to the following programs:</p>
+                <strong>Multiple Sequence Alignment</strong>
+                <ul>
+                    <li><a href="http://www.clustal.org/omega">Clustal Omega </a> (version 1.0.2)</li>
+                    <li><a href="http://www.clustal.org/clustal2">ClustalW</a> (version 2.52)</li>
+                    <li><a href="http://align.bmr.kyushu-u.ac.jp/mafft/software/">Mafft</a> (version 6.857)</li>
+                    <li><a href="http://www.drive5.com/muscle">Muscle</a> (version 3.8.31) </li>
+                    <li><a href="http://www.tcoffee.org/Projects_home_page/t_coffee_home_page.html">Tcoffee</a> (version 8.99) </li>
+                    <li><a href="http://probcons.stanford.edu/">Probcons</a> (version 1.12)</li>
+                    <li><a href="http://msaprobs.sourceforge.net/">MSAProbs</a> (version 0.9.7)</li>
+                    <li><a href="http://sourceforge.net/projects/glprobs/">GLProbs</a> (version 0.9.7)</li>
+                </ul>
+
+                <strong>Protein disorder prediction</strong>
+                <ul>
+                    <li><span style="color:black; font-weight:normal; text-align:left;"><a href="http://dis.embl.de/">DisEMBL</a></span> (version 1.5) </li>
+                    <li><span style="color:black; font-weight:normal; text-align:left;"><a href="http://iupred.enzim.hu">IUPred</a></span> (version 1.0) </li>
+                    <li><span style="color:black; font-weight:normal; text-align:left;">Jronn - Java implementation of <a href="http://www.strubi.ox.ac.uk/RONN">Ronn</a></span> (version 3.1) </li>
+                    <li><span style="color:black; font-weight:normal; text-align:left;"><a href="http://globplot.embl.de/">GlobPlot</a></span> (version 2.3) </li>
+                </ul>
+                <strong>Amino Acid conservation</strong>
+                <ul>
+                    <li><span style="color:black; font-weight:normal; text-align:left;"><a href="http://www.compbio.dundee.ac.uk/aacon">AACon</a></span> (version 1.0) </li>
+                </ul>
+                <strong>Secondary structure for an RNA aligment</strong>
+                <ul>
+                    <li><span style="color:black; font-weight:normal; text-align:left;">RNAalifold from <a href="http://www.tbi.univie.ac.at/RNA">ViennaRNA</a></span> (version 2.0) </li>
+                </ul>
+
+                <!--<p>Protein Secondary structure prediction</p>-->
+                <!--<ul>-->
+                    <!--<li><span style="color:black; font-weight:normal; text-align:left;"><a href="http://www.compbio.dundee.ac.uk/jpred/">Jpred</a></span> (version 4.0) is now provided by-->
+                        <!--the <a href="http://www.compbio.dundee.ac.uk/jpred/api.shtml">Jpred REST API</a>.</li>-->
+                <!--</ul>-->
+
+                <!--<p class="justify">-->
+                    <!--All these codes including Jronn and AAcon are available at the <a href="http://gjb-www-1.cluster.lifesci.dundee.ac.uk:8086/download">Download</a>-->
+                    <!--section (registration is required).-->
+                <!--</p>-->
+                <p class="text-right">
+                    <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+                </p>
+            </div>
+        </div>
+    </div>
+</div>
+<div class="row" id="jaba2.2">
+    <div class="col-md-12">
+        <div class="panel panel-default">
+            <div class="panel panel-heading">
+                <h1 class="panel-title">What is new in JABAWS 2.2?</h1>
+            </div>
+            <div class="panel-body">
+
+                <strong>JABAWS Version 2.2 (Released XX Feb 2017)</strong>
+                <p >The website was improved and several service programs were update:</p>
+                <ul>
+                    <li>The versions of several application programs provided by JABAWS were bumped to the latest available.
+                        Updated programs include: <mark> X, Y, Z</mark></li>
+                    <li>
+                        Protein secondary structure prediction with <a href="http://www.compbio.dundee.ac.uk/jpred/">Jpred</a> (version 3.0.3)
+                        was dropped from the list of provided services, as the use of the dedicated
+                        <a href="http://www.compbio.dundee.ac.uk/jpred/api.shtml">Jpred REST API</a> (Jpred 4) is encouraged and recommended.
+                        This is the version that is currently provided within <a href="http://www.jalview.org/">Jalview</a> 2.9 or later.
+                    </li>
+                    <li>
+                        The pre-configured JABAWS Amazon Machine Image (AMI),
+                        which allowed for JABAWS to be run
+                        in the <a href="http://aws.amazon.com/what-is-aws">Amazon EC2 cloud</a>, is no longer provided
+                        due to very limited use by the scientific community.
+                    </li>
+                </ul>
+
+                <strong>JABAWS Version 2.1 (Released 1st Oct 2013)</strong>
+                <p>Several new web services are available in this version of JABAWS:</p>
+                <ul>
+                    <li>Two multiple sequence aligners (MSAprobs and GLprobs), both services return the standard Alignment object</li>
+                    <li>RNAalifoldWS returns RNAStructScoreManager, which is the standard ScoreManager objects with several additional methods</li>
+                    <li>
+                        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
+                    </li>
+                </ul>
+
+                <p>Some bugs have been fixed and several improvements have been done:</p>
+                <ul>
+                    <li>WS status servlet returns version and some additional information on each web service</li>
+                    <li>a bug with path to help in the client</li>
+                    <li>Fix two bug with the Google Analytics library: no-stop due to running thread</li>
+                    <li>GoogleAnalytics gets proper JABAWS version</li>
+                </ul>
+
+
+                <strong>JABAWS Version 2.0.1 (Released 2nd Jul 2013)</strong><p>JABAWS 2.0.1 includes several bug fixes and minor updates for <a href="#jaba2">JABAWS Version 2.0</a>. These are listed below:</p>
+                <ul>
+                    <li>Disembl returned swapped strings for HOTLOOPS and REM465</li>
+                    <li>Jronn failed to process jobs with more than 3 sequences</li>
+                    <li>JABAWS could not deal with FASTA records with '&gt;' symbols in the record identificator</li>
+                    <li>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</li>
+                    <li>JABAWS never cleaned up job directories. Now JABAWS deletes the job directory if it exist longer than a period defined in Engine.properties</li>
+                    <li>Default web security has been incompatible with Tomcat 7.0.31 and newer</li>
+                    <li>Documentation has been updated</li>
+                </ul>
+
+                <div id="jaba2"></div><strong>JABAWS Version 2 (Released 16th Dec 2011)</strong><p>Compared to JABAWS 1, JABAWS 2 offers a greater number and diversity of web services, Amazon EC2 integration and improved ease of use.</p><p>It contains:</p>
+                <ul><li>updates for all multiple sequence alignment services</li>
+                    <li>four new protein disorder prediction services</li>
+                    <li>Clustal Omega multiple sequence alignment web service</li>
+                    <li>amino acid conservation service</li>
+                    <li>web services execution statistics visualization </li>
+                    <li>web services status check from a web page</li>
+                    <li>VirtualBox support was dropped in favour of VMware</li>
+                    <li>new WAR package for Mac users</li>
+                    <li>Amazon Machine Image (AMI) distributive to enable users to use JABAWS on the EC2 cloud</li>
+                    <li>Improved web services client API</li>
+                    <li>Simplified WAR package installation</li>
+                </ul>
+
+                <p class="text-right">
+                    <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+                </p>
+            </div>
+        </div>
+    </div>
+</div>
+<div class="row" id="jabaclient">
+    <div class="col-md-12">
+        <div class="panel panel-default">
+            <div class="panel panel-heading">
+                <h1 class="panel-title">What is the JABAWS Client?</h1>
+            </div>
+            <div class="panel-body">
+                <p class="justify">A JABAWS client is a Java application that lets you run the programs for which a JABAWS server provides web
+                    services. The most basic JABAWS client is a 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 theJABAWS 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.
+                    <a href="http://www.jalview.org/">Jalview</a>, a multiple sequence alignment and analysis application, is a good
+                    example of a graphical JABAWS client. This client uses the same functionality as the command line client, but
+                    instead allows JABAWS services to be accessed in a more user-friendly manner, through a graphical user interface.
+                </p>
+                <p class="text-right">
+                    <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+                </p>
+            </div>
+        </div>
+    </div>
+</div>
+<div class="row" id="jalviewsup">
+    <div class="col-md-12">
+        <div class="panel panel-default">
+            <div class="panel panel-heading">
+                <h1 class="panel-title">JABAWS versions compatibility and Jalview support</h1>
+            </div>
+            <div class="panel-body">
+                <p class="justify">
+                    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. To access the analysis web services introduced in
+                    JABAWS 2.0, however, clients that were designed for JABAWS v1.0 must be updated.
+                </p>
+                <p class="text-right">
+                    <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+                </p>
+            </div>
+        </div>
+    </div>
+</div>
+<div class="row" id="cmdclient">
+    <div class="col-md-12">
+        <div class="panel panel-default">
+            <div class="panel panel-heading">
+                <h1 class="panel-title">Programmatic access to JABAWS</h1>
+            </div>
+            <div class="panel-body">
+                <p class="justify">
+                    JABAWS web services are WS-I basic profile compliant, which means they can be accessed
+                    using any programming language
+                    or system that can utilize standard SOAP web services. The WSDL for each service is
+                    published on the JABAWS home
+                    page, and you can use this to automatically generate service bindings for your program.
+                    If you use Java
+                    you may wish to use our
+                    <a href="http://gjb-www-1.cluster.lifesci.dundee.ac.uk:8086/jabaws-dev">client package</a> to access JABAWS.
+                    This package is based on the autogenerated source code produced by
+                    <em2>wsimport</em2>, which
+                    is the Java tool for creating web service bindings. In addition, this offers some
+                    additional methods that simplify
+                    working with JABAWS. For more information please refer to the
+                    <a href="dm_javadoc/index.html">data model javadoc</a>.
+                </p>
+            </div>
+        </div>
+    </div>
+</div>
+
+<jsp:include page="template_footer.jsp" />
\ No newline at end of file
diff --git a/website/man_client.jsp b/website/man_client.jsp
new file mode 100644 (file)
index 0000000..1925d2c
--- /dev/null
@@ -0,0 +1,115 @@
+<%--<?xml version="1.0" encoding="ISO-8859-1" ?>--%>
+<%--<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>--%>
+
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
+<%@ taglib uri="http://displaytag.sf.net" prefix="dt" %>
+
+
+<c:import url="template_header.jsp" >
+    <c:param name="title">Documentation</c:param>
+</c:import>
+
+<ol class="breadcrumb">
+    <li><a href="${pageContext.request.contextPath}/index.jsp">Home</a></li>
+    <li><a href="man_docs.jsp">Documentation</a></li>
+    <li class="active"><a href="man_server_dev.jsp">Develop JABAWS</a></li>
+</ol>
+<div class="row" id="usingcclient">
+    <div class="col-md-12">
+        <div class="panel panel-default">
+            <div class="panel panel-heading">
+                <h1 class="panel-title">JABAWS Command Line Client Usage</h1>
+            </div>
+            <div class="panel-body">
+                <p class="justify">
+                    The command line client comes as a part of
+                    <a href="http://gjb-www-1.cluster.lifesci.dundee.ac.uk:8086/download"> client package</a>
+                    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
+                    <a href="dm_javadoc/index.html">JABAWS API</a>. 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.
+                </p>
+                <pre><strong>Usage:</strong>
+java -jar &lt;path_to_jar_file&gt; -h=host_and_context -s=serviceName ACTION [OPTIONS]
+-h=&lt;host_and_context&gt; - a full URL to the JABAWS web server including context path e.g. http://10.31.10.159:8080/ws
+-s=&lt;ServiceName&gt; - one of [MafftWS, MuscleWS, ClustalWS, ClustalOWS, TcoffeeWS, ProbconsWS, AAConWS, JronnWS, DisemblWS, GlobPlotWS, IUPredWS]
+<br/>
+<strong>ACTIONS:</strong>
+-i=&lt;inputFile&gt; - full path to fasta formatted sequence file, from which to align sequences
+-parameters - lists parameters supported by web service
+-presets - lists presets supported by web service
+-limits - lists web services limits
+Please note that if input file is specified other actions are ignored
+<br/>
+<strong> OPTIONS:</strong> (only for use with -i action):
+-r=&lt;presetName&gt; - name of the preset to use
+-o=&lt;outputFile&gt; - full path to the file where to write an alignment
+-f=&lt;parameterInputFile&gt; - the name of the file with the list of parameters to use.<br />
+Please note that -r and -f options cannot be used together. Alignment is done with either preset or aparameters from the file, but not both!</pre>
+
+                <p class="justify">
+                    Align sequences from input.fasta file using Mafft web
+                    service with default settings, print alignment in Clustal format to console.
+                </p>
+                <pre><code class="bash">java -jar jabaws-min-client.jar -h=http://myhost.compbio.ac.uk:8080/jabaws -s=MafftWS -i=d:\input.fasta</code></pre>
+                <p class="justify">
+                    Content of input.fasta file is show below (please note sequences has been
+                    trimmed for clarity)
+                </p>
+                <pre>&gt;Foobar
+MTADGPRELLQLRAAVRHRPQDFVAWL
+&gt;Bar
+MGDTTAGEMAVQRGLALHQ
+&gt;Foofriend
+MTADGPRELLQLRAAV</pre>
+                <p class="justify">
+                    Align as in above example, but write output alignment in a
+                    file out.clustal, using parameters defined in prm.in file
+                </p>
+                <pre><code class="bash">java -jar jabaws-min-client.jar -h=http://myhost.compbio.ac.uk:8080/jabaws  -s=MafftWS -i=d:\input.fasta -o=d:\out.clustal -f=prm.in</code></pre>
+                <p class="justify">
+                    The content of the prm.in file is shown below
+                <pre><code class="bash">--nofft
+--noscore
+--fastaparttree
+--retree=10
+--op=2.2</code></pre>
+                <p class="justify">
+                    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 <em2>prm.in</em2> 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.
+                </p>
+                <pre><code class="bash">java -jar jabaws-min-client.jar -h=http://myhost.compbio.ac.uk:8080/jabaws -s=MafftWS -parameters</code></pre>
+
+                <p class="justify">
+                    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.
+                </p>
+                <p class="justify">
+                    For example you used
+                    <em2>-h=http://myhost.compbio.ac.uk:8080/jabaws</em2> server,
+                    now you want to use another server to
+                    <em2>-h=http://mylabserver.myuni.edu.</em2> This comes handy if
+                    your favorite server is off and you need to do the job yesterday.
+                </p>
+
+            </div>
+        </div>
+    </div>
+</div>
+
+<jsp:include page="template_footer.jsp" />
\ No newline at end of file
diff --git a/website/man_configuration.jsp b/website/man_configuration.jsp
new file mode 100644 (file)
index 0000000..cb967bf
--- /dev/null
@@ -0,0 +1,656 @@
+<%--<?xml version="1.0" encoding="ISO-8859-1" ?>--%>
+<%--<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>--%>
+
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
+<%@ taglib uri="http://displaytag.sf.net" prefix="dt" %>
+
+
+<c:import url="template_header.jsp" >
+  <c:param name="title">Documentation</c:param>
+</c:import>
+
+<ol class="breadcrumb">
+  <li><a href="${pageContext.request.contextPath}/index.jsp">Home</a></li>
+  <li><a href="man_docs.jsp">Documentation</a></li>
+  <li class="active"><a href="man_server_dev.jsp">Develop JABAWS</a></li>
+</ol>
+<div class="row">
+  <div class="col-md-12">
+    <div class="panel panel-default">
+      <div class="panel panel-heading">
+        <h1 class="panel-title">JABAWS Server Configuration</h1>
+      </div>
+      <div class="panel-body">
+        <!--<h4>JABAWS Server Virtual Appliance</h4>-->
+        <ul>
+          <li><a href="#defjabaconf">JABAWS Configuration </a></li>
+          <li><a href="#locEngConf">Local Engine Configuration</a></li>
+          <li><a href="#clustEngConf">Cluster Engine Configuration</a></li>
+          <li><a href="#exec">Executable Configuration</a></li>
+          <li><a href="#setexecenv">Defining Environment Variables for Executables</a></li>
+          <li><a href="#mafftconf">Configure JABAWS to Work with Mafft</a></li>
+          <li><a href="#settinglimit">Limiting the size of the job accepted by JABAWS Server </a></li>
+          <li><a href="#diffbin">Using a different version of the alignment program with JABAWS</a></li>
+          <li><a href="#mixuse">Load balancing </a></li>
+          <li><a href="#testingJaba">Testing JABA Web Services</a></li>
+          <li><a href="#logs">JABAWS requests logging </a></li>
+          <li><a href="#logfiles">JABAWS internal logging </a></li>
+          <li><a href="#warfile">JABAWS War File Content</a></li>
+          <li><a href="#ga">JABAWS and Google Analytics</a></li>
+        </ul>
+        <!--<p class="justify">-->
+        <!--</p>-->
+      </div>
+    </div>
+  </div>
+</div>
+<div class="row" id="defjabaconf">
+  <div class="col-md-12">
+    <div class="panel panel-default">
+      <div class="panel panel-heading">
+        <h1 class="panel-title">JABAWS Configuration</h1>
+      </div>
+      <div class="panel-body">
+        <p class="justify">
+          There are three parts of the system you can configure. The local
+          and the cluster engines, and the paths to the individual executables for
+          each engine. These settings are stored in configuration files
+          within the web application directory (for an overview, then take a
+          look at the <a href="#warfile">war file content table</a>).
+        </p>
+        <p class="justify">
+          Initially, JABAWS is configured with only the local engine
+          enabled, with job output written to directory called &quot;jobsout&quot;
+          within the web application itself. This means that JABAWS will work
+          out of the box, but may not be suitable for serving a whole lab or
+          a university.
+        </p>
+        <p class="text-right">
+          <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+        </p>
+      </div>
+    </div>
+  </div>
+</div>
+<div class="row" id="locEngConf">
+  <div class="col-md-12">
+    <div class="panel panel-default">
+      <div class="panel panel-heading">
+        <h1 class="panel-title">Local Engine Configuration</h1>
+      </div>
+      <div class="panel-body">
+        <p class="justify">
+          The Local execution engine configuration is defined in the
+          properties file <em2>conf/Engine.local.properties.</em2> The supported
+          configuration settings are:</p>
+        <p>
+          <em2>engine.local.enable=true</em2> - #
+          enable or disable local engine, valid values true | false</p>
+        <p>
+          <em2>local.tmp.directory=D:\\clusterengine\\testoutput</em2>
+          - a directory to use for temporary files storage, optional,
+          defaults to java temporary directory</p>
+        <p>
+          <em2>engine.local.thread.number=4</em2> -
+          Number of threads for tasks execution (valid values between 1 and
+          2x cpu. Where x is a number of cores available in the system).
+          Optional defaults to the number of cores for core number &lt;=4 and
+          number of cores-1 for greater core numbers.
+        </p>
+
+        <p class="justify">
+          If the local engine going to be heavily loaded (which is often the case if
+          you do not have a cluster) it is a good idea to increase
+          the amount of memory available for the web application server. If
+          you are using Apache-Tomcat, then you can define its memory
+          settings in the JAVA_OPTS environment variable. To specify which
+          JVM to use for Apache-Tomcat, put the full path to the JRE
+          installation in the JAVA_HOME environment variable. (We would
+          recommend using Sun Java Virtual Machine (JVM) in preference to
+          Open JDK). Below is an example of code which can be added to
+          <em2>&lt;tomcat_dir&gt;/bin/setenv.sh</em2> script
+          to define which JVM to use and a memory settings for Tomcat server.
+          Tomcat server startup script (<em2>catalina.sh</em2>)
+          will execute <em2>setenv.sh</em2> on each server start automatically.
+        </p>
+          <pre><code class="bash">export JAVA_HOME=/homes/ws-dev2/jdk1.6.0_17/
+export JAVA_OPTS=&quot;-server -Xincgc -Xms512m -Xmx1024m&quot;</code></pre>
+        <p class="text-right">
+          <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+        </p>
+      </div>
+    </div>
+  </div>
+</div>
+<div class="row" id="clustEngConf">
+  <div class="col-md-12">
+    <div class="panel panel-default">
+      <div class="panel panel-heading">
+        <h1 class="panel-title">Cluster Engine Configuration</h1>
+      </div>
+      <div class="panel-body">
+        <p>Supported configuration settings:
+          <em2>engine.cluster.enable=true</em2> - #
+          enable or disable local engine true | false, defaults to
+          false</p>
+        <p><em2>cluster.tmp.directory=/homes/clustengine/testoutput-</em2>
+          a directory to use for temporary files storage. The value must be
+          an absolute path to the temporary directory. This is required. The value
+          must be different from what is defined for local engine. This
+          directory must be accessible from all cluster nodes.</p>
+        <p>
+          For the cluster engine to work, the SGE_ROOT and LD_LIBRARY_PATH
+          environment variables have to be defined. They tell the cluster
+          engine where to find DRMAA libraries. These variables
+          should be defined when the web application server starts up, e.g.
+        </p>
+
+        <pre><code class="bash">SGE_ROOT=/gridware/sge
+LD_LIBRARY_PATH=/gridware/sge/lib/lx24-amd64</code></pre>
+
+        <p class="justify">
+          Finally, do not forget to configure executables for the cluster
+          execution, they may be the same as for the local execution but may
+          be different. Please refer to the executable configuration section
+          for further details.
+        </p>
+
+
+        <p class="text-right">
+          <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+        </p>
+      </div>
+    </div>
+  </div>
+</div>
+<div class="row" id="exec">
+  <div class="col-md-12">
+    <div class="panel panel-default">
+      <div class="panel panel-heading">
+        <h1 class="panel-title">Executable Configuration</h1>
+      </div>
+      <div class="panel-body">
+        <p class="justify">
+          All the executable programs
+          are configured in <em2>conf/Executable.properties</em2> file. Each executable
+          is configured with a number of options. They are:
+        </p>
+          <pre><code class="bash">local.X.bin.windows=&lt;path to executable under windows system, optional&gt;
+local.X.bin=&lt;path to the executable under non-windows system, optional&gt;
+cluster.X.bin=&lt;path to the executable on the cluster, all cluster nodes must see it, optional&gt;<
+X.bin.env=&lt;semicolon separated list of environment variables for executable, use hash symbol as name value separator, optional&gt;
+X.--aamatrix.path=&lt;path to the directory containing substitution matrices, optional&gt;
+X.presets.file=&lt;path to the preset configuration file, optional&gt;
+X.parameters.file=&lt;path to the parameters configuration file, optional&gt;
+X.limits.file=&lt;path to the limits configuration file, optional&gt;
+X.cluster.settings=&lt;list of the cluster specific options, optional&gt;</code></pre>
+
+        <p>Where X is either  clustal, muscle, mafft, probcons or tcoffee.</p>
+
+        <p class="justify">
+          Default JABAWS configuration includes path to local executables
+          to be run by the local engine only, all cluster related settings
+          are commented out, but they are there for you as examples. Cluster
+          engine is disabled by default. To configure executable for cluster
+          execution uncomment the X.cluster settings and change them
+          appropriately.
+        </p>
+        <p class="justify">
+          By default limits are set well in excess of what you may want to offer to the users outside your lab,
+          to make sure that the tasks are never rejected. The default limit is 100000 sequences of 100000
+          letters on average for all of the JABA web services.  You can adjust the limits according to your
+          needs by editing <em2>conf/settings/&lt;X&gt;Limit.xml</em2> files.<br />
+          After you have completed the editing your configuration may look like
+          this:
+        </p>
+        <pre><code class="bash">local.mafft.bin=binaries/mafft
+cluster.mafft.bin=/homes/cengine/mafft
+mafft.bin.env=MAFFT_BINARIES#/homes/cengine/mafft;FASTA_4_MAFFT#/bin/fasta34;
+mafft.--aamatrix.path=binaries/matrices
+mafft.presets.file=conf/settings/MafftPresets.xml
+mafft.parameters.file=conf/settings/MafftParameters.xml
+mafft.limits.file=conf/settings/MafftLimits.xml
+mafft.cluster.settings=-q bigmem.q -l h_cpu=24:00:00 -l h_vmem=6000M -l ram=6000M</code></pre>
+
+        <p class="justify">
+          Please not that relative paths must only be specified for the
+          files that reside inside web application directory, all other paths
+          must be supplied as absolute!</p>
+
+        <p class="justify">
+          Furthermore, you should avoid using environment variables within the paths or options - since
+          these will not be evaluated correctly.  Instead, please explicitly specify the absolute path
+          to anything normally evaluated from an environment variable at execution time.
+        </p>
+
+        <p class="justify">
+          If you are using JABAWS to submit jobs to the cluster (with
+          cluster engine enabled), executables must be available from all
+          cluster nodes the task can be sent to, also paths to the
+          executables on the cluster e.g. <em2>cluster.&lt;exec_name&gt;.bin</em2> must be
+          absolute.
+        </p>
+
+        <p class="justify">Executables can be located anywhere in your system, they do not
+          have to reside on the server as long as the web application server
+          can access and execute them.
+        </p>
+
+        <p class="justify">
+          Cluster settings are treated as a black box, the system will
+          just pass whatever is specified in this line directly to the
+          cluster submission library. This is how DRMAA itself treats this
+          settings. More exactly DRMAA <em2>JobTemplate.setNativeSpecification()</em2>
+          function will be called.
+        </p>
+        <p class="justify">
+          For further details and examples of configuration please refer to the
+          <em2>Executable.properties</em2> file supplied with JABAWS.
+        </p>
+
+        <p class="text-right">
+          <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+        </p>
+      </div>
+    </div>
+  </div>
+</div>
+<div class="row" id="setexecenv">
+  <div class="col-md-12">
+    <div class="panel panel-default">
+      <div class="panel panel-heading">
+        <h1 class="panel-title">Defining Environment Variables for
+          Executables</h1>
+      </div>
+      <div class="panel-body">
+        <p>Environment variables can be defined in property</p>
+        <pre><code class="bash">x.bin.env</code></pre>
+          <p>
+            Where <em2>x</em2> is one of five executables supported by JABAWS. Several environment
+            variables can be specified in the same line. For example.
+          </p>
+        <pre><code class="bash">mafft.bin.env=MAFFT_BINARIES#/homes/cengine/mafft;FASTA_4_MAFFT#/bin/fasta34;</code></pre>
+
+        <p class="justify">
+          The example above defines two environment variables with names
+          MAFFT-BINARIES and FASTA_4_MAFFT and values /homes/cengine/mafft
+          and /bin/fasta34 respectively. Semicolon is used as a separator
+          between different environment variables whereas hash is used as a
+          separator for name and value of the variable.
+        </p>
+
+        <p class="text-right">
+          <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+        </p>
+      </div>
+    </div>
+  </div>
+</div>
+<div class="row" id="mafftconf">
+  <div class="col-md-12">
+    <div class="panel panel-default">
+      <div class="panel panel-heading">
+        <h1 class="panel-title">Configure JABAWS to Work
+          with Mafft</h1>
+      </div>
+      <div class="panel-body">
+        <p class="justify">
+          If you use default configuration you do not need to read any
+          further. The default configuration will work for you without any
+          changes, however, if you want to install Mafft yourself then there
+          is a couple of more steps to do.
+        </p>
+
+        <p class="justify">
+          Mafft executable needs to know the location of other files
+          supplied with Mafft. In addition some Mafft functions depends on
+          the fasta executable, which is not supplied with Mafft, but is a
+          separate package. Mafft needs to know the location of fasta34
+          executable.
+        </p>
+
+        <p class="justify">
+          To let Mafft know where the other files from its package are,
+          change the value of MAFFT-BINARIES environment variables. To let
+          Mafft know where is the fasta34 executable set the value of
+          FASTA_4_MAFFT environment variable to point to a location of
+          fasta34 program. The latter can be added to the PATH variable
+          instead. If you are using executables supplied with JABAWS, the
+          path to Mafft binaries would be like
+          <em2>&lt;relative path to web application directory&gt;/binaries/src/mafft/binaries</em2>
+          and the path to fasta34 binary would be
+          <em2>&lt;relative path to web application directory&gt;/binaries/src/fasta34/fasta34</em2>.
+          You can specify the location of Mafft binaries as well as fasta34 program elsewhere
+          by providing an absolute path to them. All these settings are
+          defined in <em2>conf/Executable.properties</em2> file.
+        </p>
+        <p class="text-right">
+          <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+        </p>
+      </div>
+    </div>
+  </div>
+</div>
+<div class="row" id="settinglimit">
+  <div class="col-md-12">
+    <div class="panel panel-default">
+      <div class="panel panel-heading">
+        <h1 class="panel-title">Limiting the size of the job accepted by JABAWS</h1>
+      </div>
+      <div class="panel-body">
+        <p class="justify">
+          JABAWS can be configured to reject excessively large tasks.  This is useful if you operate JABAWS service
+          for many users. By defining a  maximum allowed task size you can provide an even service for all users and
+          prevents waste of resources on the tasks too large to complete  successfully. You can define the maximum
+          number of sequences and the maximum average  sequence length that JABAWS accepts for each JABA Web Service
+          independently. Furthermore, you can define different limits for different  presets of the same web service.
+        </p>
+        <p class="justify">
+          By default limits are disabled. You can enable them by editing
+          <em2>conf/Executable.properties</em2>
+          file. You can adjust the limits according  to your needs by editing
+          <em2>conf/settings/&lt;X&gt;Limit.xml</em2>
+          files.
+        </p>
+        <p class="text-right">
+          <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+        </p>
+      </div>
+    </div>
+  </div>
+</div>
+<div class="row" id="diffbin">
+  <div class="col-md-12">
+    <div class="panel panel-default">
+      <div class="panel panel-heading">
+        <h1 class="panel-title">Using a different version of the alignment program with JABAWS</h1>
+      </div>
+      <div class="panel-body">
+        <p class="justify">
+          JABAWS is supplied with binaries and source code of the executables related to the version it supports. So normally you
+          would not need to install your own executables. However, if you have a different version of an executable
+          (e.g. an alignment program) which you prefer, you could use it as long as it supports all the functions
+          JABAWS executable require. This could be the case with more recent executable. If the options supported
+          by your chosen executable is different from the standard JABAWS executable, then you need to edit
+          <em2>ExecutableName</em2>Paramaters.xml&nbsp; configuration file.
+        </p>
+        <p class="text-right">
+          <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+        </p>
+      </div>
+    </div>
+  </div>
+</div>
+<div class="row" id="mixuse">
+  <div class="col-md-12">
+    <div class="panel panel-default">
+      <div class="panel panel-heading">
+        <h1 class="panel-title">Load balancing</h1>
+      </div>
+      <div class="panel-body">
+        <p class="justify">
+          If your cluster is busy and has significant waiting times, you can achieve a faster response by allowing
+          the server machine to calculate small tasks and then reserve the cluster for bigger jobs. This works
+          especially well if your server is a powerful machine with many CPUs. To do this you need to enable and
+          configure both the cluster and the local engines. Once this is done decide on the maximum size of a task
+          to be run on the server locally. Then, edit
+          <em2>&quot;# LocalEngineExecutionLimit #&quot; </em2>preset
+          in <em2> &lt;ServiceName&gt;Limits.xml</em2> file accordingly. JABAWS server then
+          will balance the load according to the following rule: If the task size is smaller than the maximum task
+          size for local engine, and the local engine has idle threads, then it calculates task locally otherwise it submit
+          the task to the cluster.
+        </p>
+        <p class="text-right">
+          <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+        </p>
+      </div>
+    </div>
+  </div>
+</div>
+<div class="row" id="testingJaba">
+  <div class="col-md-12">
+    <div class="panel panel-default">
+      <div class="panel panel-heading">
+        <h1 class="panel-title">Testing JABA Web Services</h1>
+      </div>
+      <div class="panel-body">
+        <p class="justify">
+          Access <em2>&lt;your_JABAWS_server_URL&gt;/ServiceStatus</em2> to test all web services.
+          Each time you access this URL, all services are tested.
+          For production configuration we recommend prohibiting requests to this URL for non
+          authenticated users to prevent excessive load on the server.
+        </p>
+        <p class="justify">
+          Alternatively, you can use a command line client (part of the client only
+          package) to test your JABAWS installation as described <a href="man_client.jsp">here</a>.
+          If you downloaded a JABAWS server package, you can use
+          <em2>&lt;your_jaba_context_name&gt;/WEB-INF/lib/jaba-client.jar</em2> to test JABAWS installation as
+          described <a href="man_serverwar.jsp#usingWsTester">here</a>. If you downloaded the source
+          code, then you could run a number of test suites defined in the
+          build.xml Apache Ant file.
+        </p>
+        <p class="text-right">
+          <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+        </p>
+      </div>
+    </div>
+  </div>
+</div>
+<div class="row" id="logs">
+  <div class="col-md-12">
+    <div class="panel panel-default">
+      <div class="panel panel-heading">
+        <h1 class="panel-title">JABAWS requests logging</h1>
+      </div>
+      <div class="panel-body">
+        <p class="justify">
+          Enable Tomcat log valve. To do this uncomment the following section of
+          <em2>&lt;tomcat_root&gt;/conf/server.xml</em2> configuration file.
+        </p>
+        <pre><code class="bash">&lt;Valve className=&quot;org.apache.catalina.valves.AccessLogValve&quot; directory=&quot;logs&quot;
+          prefix=&quot;localhost_access_log.&quot; suffix=&quot;.txt&quot; pattern=&quot;common&quot; resolveHosts=&quot;false&quot;/&gt;</code></pre>
+
+        <p> The following information will be logged:</p>
+        <table class="table">
+          <tr>
+            <th>Remote IP</th>
+            <th>Date</th>
+            <th>Method server_URL protocol </th>
+            <th>HTTP status </th>
+            <th>Response size in bytes </th>
+          </tr>
+          <tr>
+            <td>10.31.11.159</td>
+            <td>[10/Feb/2010:16:51:32 +0000]</td>
+            <td>&quot;POST /jws2/MafftWS HTTP/1.1&quot;</td>
+            <td>200</td>
+            <td>2067</td>
+          </tr>
+        </table>
+        <p>Which can be processed in various programs for log analysis,
+          such as <a href="http://www.webalizer.org/">WebAlizer</a>,
+          <a href="http://www.analog.cx/">Analog</a>,
+          <a href="http://awstats.sourceforge.net/">AWStats</a>.
+        </p>
+        <p class="text-right">
+          <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+        </p>
+      </div>
+    </div>
+  </div>
+</div>
+<div class="row" id="logfiles">
+  <div class="col-md-12">
+    <div class="panel panel-default">
+      <div class="panel panel-heading">
+        <h1 class="panel-title">JABAWS internal logging</h1>
+      </div>
+      <div class="panel-body">
+        <p class="justify">
+
+          JABAWS can be configured to log what it is doing. This comes in
+          handy if you would like to see who is using your web services or
+          need to chase some problems. JABAWS uses
+          <a href="http://logging.apache.org/log4j/1.2/">log4j</a> to do the logging,
+          the example of log4j configuration is bundled with JABAWS war file.
+          You will find it in the <em2>/WEB-INF/classes/log4j.properties</em2> file. All the
+          lines in this file are commented out. The reason why the logging is
+          disabled by default it simple, log4j has to know the exact
+          location of where the log files are stored. This is not known up
+          until the deployment time. To enable the logging you need to
+          define<em2> logDir</em2> property in the <em2>log4j.properties</em2> and uncomment section of
+          the file which corresponds to your need. More information is given
+          in the <em2>log4j.properties</em2> file
+          itself. Restart the Tomcat or the JABAWS web application to apply
+          the settings.
+        </p>
+        <p>
+          After you have done this, assuming that you did not change the
+          log4j.properties file yourself, you should see the application log
+          file called <em2>activity.log</em2>. The
+          file called <em2>activity.log</em2>. The
+          amount of information logged can be adjusted using different
+          logging levels, it is reduced in the following order of log levels
+          TRACE, DEBUG, INFO, WARN, ERROR, FATAL.
+        </p>
+        <p>
+          If you would like to know who is using your services, you might
+          want to <a href="#logs">enable Tomcat request
+            logging</a>.
+        </p>
+        <p class="text-right">
+          <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+        </p>
+      </div>
+    </div>
+  </div>
+</div>
+<div class="row" id="warfile">
+  <div class="col-md-12">
+    <div class="panel panel-default">
+      <div class="panel panel-heading">
+        <h1 class="panel-title">JABAWS War File Content</h1>
+      </div>
+      <div class="panel-body">
+        <table class="table">
+          <tr>
+            <th style="width:19%">Directory</th>
+            <th style="width:81%">Content description</th>
+          </tr>
+          <tr>
+            <td>conf/</td>
+            <td>contains configuration files such as Executable.properties,
+              Engine.local.properties, Engine.cluster.properties</td>
+          </tr>
+          <tr>
+            <td>conf/settings</td>
+            <td>Contains individual executable description files. In particular
+              XXXParameters.xml, XXXPresets.xml, XXXLimits.xml where XXX is the
+              name of the executable</td>
+          </tr>
+          <tr>
+            <td>ExecutionStatistics</td>
+            <td>The database for storing the execution statistics </td>
+          </tr>
+          <tr>
+            <td>statpages</td>
+            <td>Web pages for usage statistics visialization and webservices status queries </td>
+          </tr>
+          <tr>
+            <td>jobsout/</td>
+            <td>Contains directories generated when running an individual executable. E.g. input and output files and some other task
+              related data (optional)</td>
+          </tr>
+          <tr>
+            <td>binaries/</td>
+            <td>Directory contains native executables - programs,
+              windows binaries (optional)</td>
+          </tr>
+          <tr>
+            <td>binaries/src</td>
+            <td>Contains source of native executables and Linux i386
+              binaries</td>
+          </tr>
+          <tr>
+            <td>binaries/windows</td>
+            <td>Contains binaries for MS Windows operating system </td>
+          </tr>
+          <tr>
+            <td>binaries/matrices</td>
+            <td>Substitution matrices
+              <!-- what format ? --></td>
+          </tr>
+          <tr>
+            <td>WEB-INF</td>
+            <td>Web application descriptor</td>
+          </tr>
+          <tr>
+            <td>WEB-INF/lib</td>
+            <td>Web application libraries</td>
+          </tr>
+          <tr>
+            <td>WEB-INF/classes</td>
+            <td>log4j.properties - log configuration file (optional)</td>
+          </tr>
+          <tr>
+            <td colspan="2"><strong>Help Pages</strong> </td>
+          </tr>
+          <tr>
+            <td>/</td>
+            <td>help pages, index.html is the starting page</td>
+          </tr>
+          <tr>
+            <td>dm_javadoc</td>
+            <td>javadoc for JABAWS client (the link is available from How To
+              pages)</td>
+          </tr>
+          <tr>
+            <td>prog_docs</td>
+            <td>documentation for programs that JABAWS uses</td>
+          </tr>
+          <tr>
+            <td>images</td>
+            <td>images referenced by html pages</td>
+          </tr>
+        </table>
+        <p class="text-right">
+          <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+        </p>
+      </div>
+    </div>
+  </div>
+</div>
+<div class="row" id="ga">
+  <div class="col-md-12">
+    <div class="panel panel-default">
+      <div class="panel panel-heading">
+        <h1 class="panel-title">JABAWS and Google Analytics</h1>
+      </div>
+      <div class="panel-body">
+        <p class="justify">
+          JABAWS reports web services usage to our group Google Analytics (GA) account.
+          JABAWS usage statistics are collected for funding and reporting purposes, and
+          no private information is collected. The data sent by JABAWS is as follows:
+        </p>
+        <ol>
+          <li>The IP address of the JABAWS server machine (the server IP can anonymized see
+            <em2>conf/GA.properties</em2> config file)</li>
+          <li>The name of the web service that was called. </li>
+          <li>A few details of the system such as JABAWS version, java version, user language,
+            color depth, screen
+            resolution and character encoding.</li>
+        </ol>
+        <p> Google Analytics can be disabled or adjusted by removing/editing
+          <em2>conf/GA.properties</em2> Google Analytics (GA) settings file. We would
+          appreciate it greatly if you could leave it on!</p>
+        <p>All calls to GA are very lightweight, completed asynchronously, create very
+          little overhead and do not influence the server response time or performance.
+        </p>
+      </div>
+    </div>
+  </div>
+</div>
+
+<jsp:include page="template_footer.jsp" />
\ No newline at end of file
diff --git a/website/man_dev.jsp b/website/man_dev.jsp
new file mode 100644 (file)
index 0000000..3605da6
--- /dev/null
@@ -0,0 +1,567 @@
+<%--<?xml version="1.0" encoding="ISO-8859-1" ?>--%>
+<%--<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>--%>
+
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
+<%@ taglib uri="http://displaytag.sf.net" prefix="dt" %>
+
+
+<c:import url="template_header.jsp" >
+       <c:param name="title">Documentation</c:param>
+</c:import>
+
+<ol class="breadcrumb">
+       <li><a href="${pageContext.request.contextPath}/index.jsp">Home</a></li>
+       <li><a href="man_docs.jsp">Documentation</a></li>
+       <li class="active"><a href="man_server_dev.jsp">Develop JABAWS</a></li>
+</ol>
+<div class="row">
+       <div class="col-md-12">
+               <div class="panel panel-default">
+                       <div class="panel panel-heading">
+                               <h1 class="panel-title">Using JABAWS From Your Program</h1>
+                       </div>
+                       <div class="panel-body">
+                               <!--<h4>JABAWS Server Virtual Appliance</h4>-->
+                               <ul>
+                                       <li><a href="#wsfunctions">Web services functions overview </a></li>
+                                       <li><a href="#templatestr">The template client structure</a></li>
+                                       <li><a href="#connectto">Connecting to JABAWS</a></li>
+                                       <li><a href="#validnames">Valid JABAWS service names and WSDL files</a></li>
+                                       <li><a href="#defalign">Aligning sequences</a></li>
+                                       <li><a href="#checkresults">Checking the status of the calculation </a></li>
+                                       <li><a href="#presetalign">Aligning with presets</a></li>
+                                       <li><a href="#customalign">Aligning with custom parameters</a></li>
+                                       <li><a href="#writingaltofile">Writing alignments to a file</a></li>
+                                       <li><a href="#compex">A complete client example </a></li>
+                                       <li><a href="#buildart">Building web services artifacts</a></li>
+                               </ul>
+                               <!--<p class="justify">-->
+                               <!--</p>-->
+                       </div>
+               </div>
+       </div>
+</div>
+
+<div class="row" id="wsfunctions">
+       <div class="col-md-12">
+               <div class="panel panel-default">
+                       <div class="panel panel-heading">
+                               <h1 class="panel-title">Web services functions overview</h1>
+                       </div>
+                       <div class="panel-body">
+                               <p class="justify">
+                                       All JABA multiple sequence alignment web services comply to the same
+                                       interface, thus the function described below are available from all the services.
+                               </p>
+                               <strong>Functions for initiating the alignment </strong>
+                               <pre><code class="java">String id = align(List&lt;FastaSequence&gt; list)
+String id = customAlign(List&lt;FastaSequence&gt; sequenceList, List&lt;Option&gt; optionList)
+String id = presetAlign(List&lt;FastaSequence&gt; sequenceList, Preset preset)</code></pre>
+
+                               <strong>Functions pertaining to job monitoring and control</strong><br />
+                               <pre><code class="java">JobStatus status = getJobStatus(String id)
+Alignment al = getResult(String id)
+boolean cancelled = cancelJob(String id)
+ChunkHolder chunk = pullExecStatistics(String id, long marker)</code></pre>
+                               <strong>Functions relating to service features discovery</strong><br />
+                               <pre><code class="java">RunnerConfig rc = getRunnerOptions()
+Limit limit = getLimit(String name)
+LimitsManager lm = getLimits()
+PresetManager pm = getPresets()</code></pre>
+                               <p class="justify">
+                                       Please refer to a <a href="dm_javadoc/compbio/data/msa/MsaWS.html">data model
+                                       javadoc</a> for a detailed description of each methods.
+                               </p>
+                               <p class="text-right">
+                                       <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+                               </p>
+                       </div>
+               </div>
+       </div>
+</div>
+<div class="row" id="templatestr">
+       <div class="col-md-12">
+               <div class="panel panel-default">
+                       <div class="panel panel-heading">
+                               <h1 class="panel-title">Structure of the template command line client</h1>
+                       </div>
+                       <div class="panel-body">
+                               <table class="table">
+                                       <tr>
+                                               <td style="width:19%"><strong>Packages</strong></td>
+                                               <td style="width:81%"><strong>Classes and Interfaces </strong></td>
+                                       </tr>
+                                       <tr>
+                                               <td>compbio.data.msa </td>
+                                               <td>MsaWS the interface for all multiple sequence alignment web services </td>
+                                       </tr>
+                                       <tr>
+                                               <td>compbio.data.sequence</td>
+                                               <td>JABAWS data types </td>
+                                       </tr>
+                                       <tr>
+                                               <td>compbio.metadata</td>
+                                               <td>JABAWS meta data types </td>
+                                       </tr>
+                                       <tr>
+                                               <td>compbio.ws.client</td>
+                                               <td>JABAWS command line client </td>
+                                       </tr>
+                               </table>
+                               <p class="justify">
+                                       Additional utility libraries that this client depend upon is the
+                                       compbio-util-1.3.jar and compbio-annotation-1.0.jar.
+                               </p>
+                               <p class="justify">
+                                       Please refer to a <a href="dm_javadoc/index.html">data model javadoc</a>
+                                       for a detailed description of each class and its methods.
+                               </p>
+                               <p class="text-right">
+                                       <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+                               </p>
+                       </div>
+               </div>
+       </div>
+</div>
+<div class="row" id="connectto">
+       <div class="col-md-12">
+               <div class="panel panel-default">
+                       <div class="panel panel-heading">
+                               <h1 class="panel-title">Connecting to JABAWS</h1>
+                       </div>
+                       <div class="panel-body">
+                               <p class="justify">
+                                       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
+                                       <a href="http://gjb-www-1.cluster.lifesci.dundee.ac.uk:8086/jabaws-dev">download page</a>.
+                                       Please note that for now all
+                                       the examples are in Java, other languages will follow if there is sufficient demand.
+                               </p>
+                               <p class="justify">
+                                       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.
+                               </p>
+                               <pre><code class="java">import java.net.URL;
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+// (...)
+String qualifiedName = &quot;http://msa.data.compbio/01/01/2010/&quot;;
+URL url = new URL(&quot;http://www.compbio.dundee.ac.uk/jabaws/ClustalWS?wsdl&quot;);
+QName qname = new QName(, &quot;ClustalWS&quot;);
+Service serv = Service.create(url, qname);
+MsaWS msaws = serv.getPort(new QName(qualifiedName, &quot;ClustalWSPort&quot;),
+MsaWS.class);</code></pre>
+                               <p>Line 1 makes a qualified name for JABA web services.</p>
+                               <p>Line 2 constructs the URL to the web services WSDL.</p>
+                               <p>Line 3 makes a qualified name instance for Clustal JABA web service.</p>
+                               <p>Line 4 creates a service instance.</p>
+                               <p>Line 5 makes a connection to the server.</p>
+                               <p>A more generic connection method would look like this</p>
+
+                               <pre><code class="java">import java.net.URL;
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+import compbio.ws.client.Services
+// (...)
+String qualifiedServiceName = &quot;http://msa.data.compbio/01/01/2010/&quot;;
+String host = &quot;http://www.compbio.dundee.ac.uk/jabaws&quot;;
+// In real life the service name can come from args
+Services clustal = Services.ClustalWS;
+URL url = new URL(host + &quot;/&quot; + clustal.toString() + &quot;?wsdl&quot;);
+QName qname = new QName(qualifiedServiceName, clustal.toString());
+Service serv = Service.create(url, qname);
+MsaWS msaws = serv.getPort(new QName(qualifiedServiceName, clustal + &quot;Port&quot;), MsaWS.class);</code></pre>
+
+                               <p class="justify">
+                                       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 <a href="dm_javadoc/compbio/data/msa/MsaWS.html">javadoc</a>.
+                               </p>
+
+                               <p class="text-right">
+                                       <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+                               </p>
+                       </div>
+               </div>
+       </div>
+</div>
+<div class="row" id="validnames">
+       <div class="col-md-12">
+               <div class="panel panel-default">
+                       <div class="panel panel-heading">
+                               <h1 class="panel-title">Valid JABAWS service names and WSDL files</h1>
+                       </div>
+                       <div class="panel-body">
+                               <p>Multiple sequence alignment services</p>
+                               <ul><li><a href="http://www.compbio.dundee.ac.uk/jabaws-dev/ClustalOWS?wsdl">ClustalOWS</a> (http://www.compbio.dundee.ac.uk/jabaws-dev/ClustalOWS?wsdl) </li>
+                                       <li><a href="http://www.compbio.dundee.ac.uk/jabaws-dev/ClustalWS?wsdl">ClustalWS</a> (http://www.compbio.dundee.ac.uk/jabaws-dev/ClustalWS?wsdl) </li>
+                                       <li><a href="http://www.compbio.dundee.ac.uk/jabaws-dev/MuscleWS?wsdl">MuscleWS</a> (http://www.compbio.dundee.ac.uk/jabaws-dev/MuscleWS?wsdl) </li>
+                                       <li><a href="http://www.compbio.dundee.ac.uk/jabaws-dev/MafftWS?wsdl">MafftWS</a> (http://www.compbio.dundee.ac.uk/jabaws-dev/MafftWS?wsdl) </li>
+                                       <li><a href="http://www.compbio.dundee.ac.uk/jabaws-dev/TcoffeeWS?wsdl">TcoffeeWS</a> (http://www.compbio.dundee.ac.uk/jabaws-dev/TcoffeeWS?wsdl) </li>
+                                       <li><a href="http://www.compbio.dundee.ac.uk/jabaws-dev/ProbconsWS?wsdl">ProbconsWS</a> (http://www.compbio.dundee.ac.uk/jabaws-dev/ProbconsWS?wsdl) </li>
+                                       <li><a href="http://www.compbio.dundee.ac.uk/jabaws-dev/MSAprobsWS?wsdl">MSAprobsWS</a> (http://www.compbio.dundee.ac.uk/jabaws-dev/MSAprobsWS?wsdl) </li>
+                                       <li><a href="http://www.compbio.dundee.ac.uk/jabaws-dev/GLprobsWS?wsdl">GLprobsWS</a> (http://www.compbio.dundee.ac.uk/jabaws-dev/GLprobsWS?wsdl) </li>
+                               </ul>
+                               <p>Protein disorder prediction services</p>
+                               <ul>
+                                       <li><a href="http://www.compbio.dundee.ac.uk/jabaws-dev/IUPredWS?wsdl">IUPredWS</a> (http://www.compbio.dundee.ac.uk/jabaws-dev/IUPredWS?wsdl) </li>
+                                       <li><a href="http://www.compbio.dundee.ac.uk/jabaws-dev/GlobPlotWS?wsdl">GlobPlotWS</a> (http://www.compbio.dundee.ac.uk/jabaws-dev/GlobPlotWS?wsdl) </li>
+                                       <li><a href="http://www.compbio.dundee.ac.uk/jabaws-dev/DisemblWS?wsdl">DisemblWS</a> (http://www.compbio.dundee.ac.uk/jabaws-dev/DisemblWS?wsdl) </li>
+                                       <li><a href="http://www.compbio.dundee.ac.uk/jabaws-dev/JronnWS?wsdl">JronnWS</a> (http://www.compbio.dundee.ac.uk/jabaws-dev/JronnWS?wsdl) </li>
+                               </ul>
+                               <p>Amino acid conservation service</p>
+                               <ul>
+                                       <li><a href="http://www.compbio.dundee.ac.uk/jabaws-dev/AAConWS?wsdl">AAConWS</a> (http://www.compbio.dundee.ac.uk/jabaws-dev/AAConWS?wsdl) </li>
+                               </ul>
+                               <p>Protein and RNA Secondary Structure Prediction</p>
+                               <ul>
+                                       <li><a href="http://www.compbio.dundee.ac.uk/jabaws-dev/JpredWS?wsdl">JpredWS</a> (http://www.compbio.dundee.ac.uk/jabaws-dev/JpredWS?wsdl) </li>
+                                       <li><a href="http://www.compbio.dundee.ac.uk/jabaws-dev/RNAalifoldWS?wsdl">RNAalifoldWS</a> (http://www.compbio.dundee.ac.uk/jabaws-dev/RNAalifoldWS?wsdl) </li>
+                               </ul>
+                               <p class="justify">
+                                       Please replace <em2>http://www.compbio.dundee.ac.uk/</em2> with your JABAWS instance host name, and
+                                       <em2>jabaws</em2> with your JABAWS context name to access your local version of JABAWS web services.
+                                       For example <em2>http://localhost:8080/jabaws</em2> would be a valid URL for the default Apache-Tomcat
+                                       installation and jabaws.war file deployment.
+                               </p>
+                               <p class="text-right">
+                                       <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+                               </p>
+                       </div>
+               </div>
+       </div>
+</div>
+<div class="row" id="defalign">
+       <div class="col-md-12">
+               <div class="panel panel-default">
+                       <div class="panel panel-heading">
+                               <h1 class="panel-title">Aligning sequences</h1>
+                       </div>
+                       <div class="panel-body">
+                               <p class="justify">
+                                       Given that <em2>msaws</em2> is web service proxy, created as described in &quot;Connecting to JABAWS&quot;
+                                       section, the actual alignment can be obtained as follows:
+                               </p>
+                               <pre><code class="java">List&lt;FastaSequence&gt; fastalist = SequenceUtil.readFasta(new FileInputStream(file));
+String jobId = msaws.align(fastalist);
+Alignment alignment = msaws.getResult(jobId);</code></pre>
+
+                               <p>Line  one loads FASTA sequence from the file.</p>
+                               <p>Line two submits them to web service represented by msaws proxy.</p>
+                               <p class="justify">
+                                       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
+                                       (<a href="http://www.compbio.dundee.ac.uk/jabaws">www.compbio.dundee.ac.uk/jabaws</a>) 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.<br />
+                                       Methods and classes mentioned in the excerpt are available from the JABAWS client library.
+                               </p>
+                               <p class="text-right">
+                                       <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+                               </p>
+                       </div>
+               </div>
+       </div>
+</div>
+<div class="row" id="checkresults">
+       <div class="col-md-12">
+               <div class="panel panel-default">
+                       <div class="panel panel-heading">
+                               <h1 class="panel-title">Checking the status of the calculation</h1>
+                       </div>
+                       <div class="panel-body">
+                               <p class="justify">
+                                       You may have noticed that there was no pause between submitting the job and retrieving of the results. This is
+                                       because <em2>getResult(jobId)</em2> method block the processing until the calculation is completed.
+                                       However, taking into account that the connection holds server resources, our public server
+                                       (<a href="http://www.compbio.dundee.ac.uk/jabaws">www.compbio.dundee.ac.uk/jabaws</a>) 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:
+                               </p>
+                               <pre><code class="java">while (msaws.getJobStatus(jobId) != JobStatus.FINISHED) {
+&nbsp;&nbsp;&nbsp;&nbsp;Thread.sleep(2000); // wait two  seconds, then recheck the status
+}</code></pre>
+                               <p class="text-right">
+                                       <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+                               </p>
+                       </div>
+               </div>
+       </div>
+</div>
+<div class="row" id="presetalign">
+       <div class="col-md-12">
+               <div class="panel panel-default">
+                       <div class="panel panel-heading">
+                               <h1 class="panel-title">Aligning with presets</h1>
+                       </div>
+                       <div class="panel-body">
+                                <pre><code class="java">PresetManager presetman = msaws.getPresets();
+Preset preset = presetman.getPresetByName(presetName);
+List&lt;FastaSequence&gt; fastalist = SequenceUtil.readFasta(new FileInputStream(file));
+String jobId = msaws.presetAlign(fastalist, preset);
+Alignment alignment = msaws.getResult(jobId);</code></pre>
+                               <p>Line one obtains the lists of presets supported by a web service.</p>
+                               <p>Line two return a particular Preset by its name.</p>
+                               <p>
+                                       Lines three to five  are doing the same job as in the first <a href="#defalign">
+                                       aligning sequences example</a>.
+                               </p>
+                               <p class="text-right">
+                                       <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+                               </p>
+                       </div>
+               </div>
+       </div>
+</div>
+<div class="row" id="customalign">
+       <div class="col-md-12">
+               <div class="panel panel-default">
+                       <div class="panel panel-heading">
+                               <h1 class="panel-title">Aligning with custom parameters</h1>
+                       </div>
+                       <div class="panel-body">
+                               <pre><code class="java">RunnerConfig options = msaws.getRunnerOptions();
+Argument matrix = options.getArgument(&quot;MATRIX&quot;);
+matrix.setValue(&quot;PAM300&quot;);
+Argument gapopenpenalty = options.getArgument(&quot;GAPOPEN&quot;);
+gapopenpenalty.setValue(&quot;20&quot;);
+List&lt;Argument&gt; arguments = new ArrayList&lt;Argument&gt;();
+arguments.add(matrix); arguments.add(gapopenpenalty);
+List&lt;FastaSequence&gt; fastalist = SequenceUtil.readFasta(new FileInputStream(file));
+String jobId = msaws.customAlign(fastalist, arguments);
+Alignment alignment = msaws.getResult(jobId);</code></pre>
+
+                               <p>Line one obtains the <em2>RunnerConfig</em2> object that holds information on
+                                       supported parameters and their values</p>
+                               <p>Line two retrieve a particular parameter from the holder by its name.</p>
+                               <p>Lines three sets a value to this parameter which will be used in the calculation. </p>
+                               <p>Line four and five do the same but for another parameter.</p>
+                               <p>Line six makes a List to hold the parameters.</p>
+                               <p>Line seven puts the parameters into that list.</p>
+                               <p>Line eight and ten is the same as in previous examples.</p>
+                               <p>Line nine submit an alignment request with the sequences and the parameters.</p>
+                               <p class="justify">The names of all the parameters supported by a web service e.g. &quot;PAM300&quot; can be obtained
+                                       using <em2>options.getArguments()</em2>method. Further details on the methods
+                                       available from <em2>RunnerConfig</em2> object are available from the
+                                       <a href="dm_javadoc/index.html">javadoc</a>.
+                               </p>
+                               <p class="text-right">
+                                       <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+                               </p>
+                       </div>
+               </div>
+       </div>
+</div>
+<div class="row" id="writingaltofile">
+       <div class="col-md-12">
+               <div class="panel panel-default">
+                       <div class="panel panel-heading">
+                               <h1 class="panel-title">Writing alignments to a file</h1>
+                       </div>
+                       <div class="panel-body">
+                               <p class="justify">
+                                       There is a utility method in the client library that does exactly that.
+                               </p>
+                               <pre><code class="java">Alignment alignment = align(...)
+FileOutputStream outStream = new FileOutputStream(file);
+ClustalAlignmentUtil.writeClustalAlignment(outStream, align);</code></pre>
+                               <p class="text-right">
+                                       <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+                               </p>
+                       </div>
+               </div>
+       </div>
+</div>
+<div class="row" id="compex">
+       <div class="col-md-12">
+               <div class="panel panel-default">
+                       <div class="panel panel-heading">
+                               <h1 class="panel-title">A complete client example</h1>
+                       </div>
+                       <div class="panel-body">
+                               <p class="justify">
+                                       Finally, a complete example of the program that connects to JABAWS Clustal
+                                       service and aligns sequences using
+                                       one of the  Clustal web service presets. There is also a
+                                       <a href="2.1/Example_template.pdf">PDF version</a> of
+                                       this example with syntax highlighted. The text comments are commented by block
+                                       style comments e.g. /* comment */,
+                                       the alternatives given in the code are line commented // comment. You may want
+                                       to remove line style comments to
+                                       test alternatives of the functions. All you need for this to work is a
+                                       <a href="http://gjb-www-1.cluster.lifesci.dundee.ac.uk:8086/jabaws-dev/get?id=min-jaba-client-2.0.jar">JABAWS binary client</a>.
+                                       Please make sure that the client is in the Java class path before running this example.
+                               </p>
+                               <pre><code class="java">
+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
+ */
+static final String input = &quot;&gt;Foo\r\n&quot;
+               + &quot;MTADGPRELLQLRAAVRHRPQDFVAWLMLADAELGMGDTTAGEMAVQRGLALHPGHPEAVARLGR&quot;
+               + &quot;VRWTQQRHAEAAVLLQQASDAAPEHPGIALWLGHALEDAGQAEAAAAAYTRAHQLLPEEPYITAQ&quot;
+               + &quot;LLNWRRRLCDWRALDVLSAQVRAAVAQGVGAVEPFAFLSEDASAAEQLACARTRAQAIAASVRPL&quot;
+               + &quot;APTRVRSKGPLRVGFVSNGFGAHPTGLLTVALFEALQRRQPDLQMHLFATSGDDGSTLRTRLAQA&quot;
+               + &quot;STLHDVTALGHLATAKHIRHHGIDLLFDLRGWGGGGRPEVFALRPAPVQVNWLAYPGTSGAPWMD&quot;
+               + &quot;YVLGDAFALPPALEPFYSEHVLRLQGAFQPSDTSRVVAEPPSRTQCGLPEQGVVLCCFNNSYKLN&quot;
+               + &quot;PQSMARMLAVLREVPDSVLWLLSGPGEADARLRAFAHAQGVDAQRLVFMPKLPHPQYLARYRHAD&quot;
+               + &quot;LFLDTHPYNAHTTASDALWTGCPVLTTPGETFAARVAGSLNHHLGLDEMNVADDAAFVAKAVALAS&quot;
+               + &quot;DPAALTALHARVDVLRRESGVFEMDGFADDFGALLQALARRHGWLGI\r\n&quot;
+               + &quot;\r\n&quot;
+               + &quot;&gt;Bar\r\n&quot;
+               + &quot;MGDTTAGEMAVQRGLALHQQRHAEAAVLLQQASDAAPEHPGIALWLHALEDAGQAEAAAAYTRAH&quot;
+               + &quot;QLLPEEPYITAQLLNAVAQGVGAVEPFAFLSEDASAAESVRPLAPTRVRSKGPLRVGFVSNGFGA&quot;
+               + &quot;HPTGLLTVALFEALQRRQPDLQMHLFATSGDDGSTLRTRLAQASTLHDVTALGHLATAKHIRHHG&quot;
+               + &quot;IDLLFDLRGWGGGGRPEVFALRPAPVQVNWLAYPGTSGAPWMDYVLGDAFALPPALEPFYSEHVL&quot;
+               + &quot;RLQGAFQPSDTSRVVAEPPSRTQCGLPEQGVVLCCFNNSYKLNPQSMARMLAVLREVPDSVLWLL&quot;
+               + &quot;SGPGEADARLRAFAHAQGVDAQRLVFMPKLPHPQYLARYRHADLFLDTHPYNAHTTASDALWTGC&quot;
+               + &quot;PVLTTPGETFAARVAGSLNHHLGLDEMNVADDAAFVAKAVALASDPAALTALHARVDVLRRESGV&quot;
+               + &quot;FEMDGFADDFGALLQALARRHGWLGI\r\n&quot;
+               + &quot;\r\n&quot;
+               + &quot;&gt;Friends\r\n&quot;
+               + &quot;MTADGPRELLQLRAAVRHRPQDVAWLMLADAELGMGDTTAGEMAVQRGLALHPGHPEAVARLGRV&quot;
+               + &quot;RWTQQRHAEAAVLLQQASDAAPEHPGIALWLGHALEDHQLLPEEPYITAQLDVLSAQVRAAVAQG&quot;
+               + &quot;VGAVEPFAFLSEDASAAEQLACARTRAQAIAASVRPLAPTRVRSKGPLRVGFVSNGFGAHPTGLL&quot;
+               + &quot;TVALFEALQRRQPDLQMHLFATSGDDGSTLRTRLAQASTLHDVTALGHLATAKHIRHHGIDLLFD&quot;
+               + &quot;LRGWGGGGRPEVFALRPAPVQVNWLAYPGTSGAPWMDYVLGDAFALPPALEPFYSEHVLRLQGAF&quot;
+               + &quot;QPSDTSRVVAEPPSRTQCGLPEQGVVLCCFNNSYKLNPQSMARMLAVLREVPDSVLWLLSGPGEA&quot;
+               + &quot;DARLRAFAHAQGVDAQRLVFMPKLPHPQYLARYRHADLFLDTHPYNAHTTASDALWTGCPVLTTP&quot;
+               + &quot;GETFAARVAGSLNHHLGLDEMNVADDAAFVAKAVALASDPAALTALHARVDVLRRESI&quot;;
+
+public static void main(String[] args) throws UnsupportedRuntimeException,
+               LimitExceededException, JobSubmissionException,
+               WrongParameterException, FileNotFoundException, IOException,
+               ResultNotAvailableException, InterruptedException {
+
+       String qualifiedServiceName = &quot;http://msa.data.compbio/01/01/2010/&quot;;
+
+       /* Make a URL pointing to web service WSDL */
+       URL url = new URL(&quot;http://www.compbio.dundee.ac.uk/jabaws/ClustalWS?wsdl&quot;);
+
+       /*
+        * If you are making a client that connects to different web services
+        * you can use something like this:
+        */
+       // URL url = new URL(host + &quot;/&quot; + Services.ClustalWS.toString() +
+       // &quot;?wsdl&quot;);
+
+       QName qname = new QName(qualifiedServiceName, &quot;ClustalWS&quot;);
+       Service serv = Service.create(url, qname);
+       /*
+        * Multiple sequence alignment interface for Clustal web service
+        * instance
+        */
+       MsaWS msaws = serv.getPort(new QName(qualifiedServiceName, &quot;ClustalWS&quot;
+                       + &quot;Port&quot;), MsaWS.class);
+
+       /* Get the list of available presets */
+       PresetManager presetman = msaws.getPresets();
+
+       /* Get the Preset object by preset name */
+       Preset preset = presetman
+                       .getPresetByName(&quot;Disable gap weighting (Speed-oriented)&quot;);
+
+       /*
+        * Load sequences in FASTA format from the file You can use something
+        * like new FileInputStream(&lt;filename&gt;) to load sequence from the file
+        */
+       List&lt;FastaSequence&gt; fastalist = SequenceUtil
+                       .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);
+
+       /* This method will block for the duration of the calculation */
+       Alignment alignment = msaws.getResult(jobId);
+
+       /*
+        * This is a better way of obtaining results, it does not involve
+        * holding the connection open for the duration of the calculation,
+        * Besides, as the University of Dundee public server will reset the
+        * connection after 10 minutes of idling, this is the only way to obtain
+        * the results of long running task from our public server.
+        */
+       // while (msaws.getJobStatus(jobId) != JobStatus.FINISHED) {
+       // Thread.sleep(1000); // wait a second, then recheck the status
+       // }
+
+       /* Output the alignment to standard out */
+       System.out.println(alignment);
+
+       // Alternatively, you can record retrieved alignment into the file in
+       // ClustalW format
+
+       // ClustalAlignmentUtil.writeClustalAlignment(new FileOutputStream(
+       // &quot;output.al&quot;), alignment);
+
+}
+}
+</code></pre>
+                               <p>For a more detailed description of all available types and their functions please
+                                       refer to the <a href="dm_javadoc/index.html">data model javadoc</a>.
+                               </p>
+                               <p class="text-right">
+                                       <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+                               </p>
+                       </div>
+               </div>
+       </div>
+</div>
+<div class="row" id="buildart">
+       <div class="col-md-12">
+               <div class="panel panel-default">
+                       <div class="panel panel-heading">
+                               <h1 class="panel-title">Building web services artifacts</h1>
+                       </div>
+                       <div class="panel-body">
+                               <p class="justify">
+                                       JABAWS are the standard <a href="http://jax-ws.java.net/">JAX-WS</a> SOAP web
+                                       services, which are <a href="http://www.ws-i.org/">WS-I</a>
+                                       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.
+                               </p>
+                               <pre><code class="bash">wsimport -keep http://www.compbio.dundee.ac.uk/jabaws/ClustalWS?wsdl</code></pre>
+                       </div>
+               </div>
+       </div>
+</div>
+
+<jsp:include page="template_footer.jsp" />
\ No newline at end of file
diff --git a/website/man_server_dev.jsp b/website/man_server_dev.jsp
new file mode 100644 (file)
index 0000000..c276e11
--- /dev/null
@@ -0,0 +1,429 @@
+<%--<?xml version="1.0" encoding="ISO-8859-1" ?>--%>
+<%--<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>--%>
+
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
+<%@ taglib uri="http://displaytag.sf.net" prefix="dt" %>
+
+
+<c:import url="template_header.jsp" >
+       <c:param name="title">Documentation</c:param>
+</c:import>
+
+<ol class="breadcrumb">
+       <li><a href="${pageContext.request.contextPath}/index.jsp">Home</a></li>
+       <li><a href="man_docs.jsp">Documentation</a></li>
+       <li class="active"><a href="man_server_dev.jsp">Develop JABAWS</a></li>
+</ol>
+<div class="row">
+       <div class="col-md-12">
+               <div class="panel panel-default">
+                       <div class="panel panel-heading">
+                               <h1 class="panel-title">For JABAWS Developers</h1>
+                       </div>
+                       <div class="panel-body">
+                               <!--<h4>JABAWS Server Virtual Appliance</h4>-->
+                               <ul>
+                                       <li><a href="#api">The API</a></li>
+                                       <li><a href="#thesrc">The source code</a></li>
+                                       <li><a href="#projstruct">Structure of the project</a></li>
+                                       <li><a href="#thecode">The code structure</a></li>
+                                       <li><a href="#runtests">Running tests</a></li>
+                                       <li><a href="#prepexec">Preparing distributive's</a></li>
+                                       <li><a href="#buildstubs">Building web services artifacts</a></li>
+                                       <li><a href="#addnewws">Adding a new web service (rough guide)</a></li>
+                               </ul>
+                               <!--<p class="justify">-->
+                               <!--</p>-->
+                       </div>
+               </div>
+       </div>
+</div>
+<div class="row" id="api">
+       <div class="col-md-12">
+               <div class="panel panel-default">
+                       <div class="panel panel-heading">
+                               <h1 class="panel-title">The API</h1>
+                       </div>
+                       <div class="panel-body">
+                               <p>This page is for anyone who wants to add a new webservice into the JABAWS framework.</p>
+                               <p><a href="dm_javadoc/index.html">Data model</a> javadoc- read this if your are coding
+                                       against JABA Web Services
+                               </p>
+                               <p><a href="full_javadoc/index.html">Complete</a> javadoc - for developers who want to
+                                       use JABAWS framework and use Engines and Executables directly
+                               </p>
+                               <p class="text-right">
+                                       <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+                               </p>
+                       </div>
+               </div>
+       </div>
+</div>
+<div class="row" id="thesrc">
+       <div class="col-md-12">
+               <div class="panel panel-default">
+                       <div class="panel panel-heading">
+                               <h1 class="panel-title">The source code</h1>
+                       </div>
+                       <div class="panel-body">
+                               <p><a name="svn">Publicly available Git repository:</a>
+                                       <a href="http://source.jalview.org/gitweb/?p=jabaws.git;a=summary">
+                                               http://source.jalview.org/gitweb/?p=jabaws.git;a=summary</a></p>
+                               <p>Another publicly available JABAWS repository, containing the code for each
+                                       JABAWS public release, is located at
+                                       <a href="https://jabaws.googlecode.com">jabaws.googlecode.com</a></p>
+                               <p>The repositories contain a complete JABAWS
+                                       <a href="http://www.eclipse.org">Eclipse</a> project. </p>
+                               <p>Of course if you want to make a modification to the source code you would need to
+                                       generate distributives yourself. To do that, first generate JAX-WS artifacts using
+                                       <em2>build-server</em2> task from <em2>wsbuild.xml</em2>
+                                       ant script, then you could use build.xml tasks to generate any of the distributives you need.
+                               </p>
+                               <p class="text-right">
+                                       <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+                               </p>
+                       </div>
+               </div>
+       </div>
+</div>
+<div class="row" id="projstruct">
+       <div class="col-md-12">
+               <div class="panel panel-default">
+                       <div class="panel panel-heading">
+                               <h1 class="panel-title">Structure of the project</h1>
+                       </div>
+                       <div class="panel-body">
+                               <ul>
+                                       <li><i class="fa fa-folder-o" aria-hidden="true"></i> <span class="directory">binaries</span>   contains native executables e.g. clustalw</li>
+                                       <li style="list-style-position:inside"><i class="fa fa-folder-o" aria-hidden="true"></i> <span class="directory">src</span>     contains sources of native executables</li>
+                                       <li style="list-style-position:inside"><i class="fa fa-folder-o" aria-hidden="true"></i> <span class="directory">windows</span> contains pre-compiled Windows binaries</li>
+                                       <li style="list-style-position:inside"><i class="fa fa-folder-o" aria-hidden="true"></i> compilebin.sh - the script to complile binaries</li>
+                                       <li style="list-style-position:inside"><i class="fa fa-folder-o" aria-hidden="true"></i> setexecflag.sh - the script to set executable flag for the binaries</li>
+                                       <li><span class="directory"><i class="fa fa-folder-o" aria-hidden="true"></i> conf</span>       contains JABAWS configuration files     </li>
+                                       <li><span class="directory"><i class="fa fa-folder-o" aria-hidden="true"></i> ExecutionStatistics</span>        the database for storing collected execution statistics </li>
+                                       <li><span class="directory"><i class="fa fa-folder-o" aria-hidden="true"></i> jobsout</span> a default folder for temporary job directories </li>
+                                       <li><span class="directory"><i class="fa fa-folder-o" aria-hidden="true"></i> statpages</span> the web pages for execution statistics display</li>
+                                       <li><span class="directory"><i class="fa fa-folder-o" aria-hidden="true"></i> WEB-INF</span> default </li>
+                                       <li><span class="directory"><i class="fa fa-folder-o" aria-hidden="true"></i> website</span> contains the JABAWS web pages </li>
+                                       <li style="list-style-position:inside"><i class="fa fa-folder-o" aria-hidden="true"></i> <span class="directory">archive</span> contains JABAWS packages, the WAR and JAR files</li>
+                               </ul>
+                               <p class="text-right">
+                                       <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+                               </p>
+                       </div>
+               </div>
+       </div>
+</div>
+<div class="row" id="thecode">
+       <div class="col-md-12">
+               <div class="panel panel-default">
+                       <div class="panel panel-heading">
+                               <h1 class="panel-title">The code structure</h1>
+                       </div>
+                       <div class="panel-body">
+                               <ul>
+                                       <li><span class="directory"><i class="fa fa-folder-o" aria-hidden="true"></i> datamodel</span> contains the JABAWS datamodel </li>
+                                       <li><span class="directory"><i class="fa fa-folder-o" aria-hidden="true"></i> engine</span> contains the JABAWS engine - the code that abstract the execution environment and executes native binaries</li>
+                                       <li><span class="directory"><i class="fa fa-folder-o" aria-hidden="true"></i> runner</span> contains the JABAWS runners - thin wrappers for native binaries </li>
+                                       <li><span class="directory"><i class="fa fa-folder-o" aria-hidden="true"></i> webservices</span> contains the JABAWS SOAP web services </li>
+                                       <li><span class="directory"><i class="fa fa-folder-o" aria-hidden="true"></i> testsrc</span> contains the JABAWS unit tests</li>
+                               </ul>
+                               <p class="justify">
+                                       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.
+                               </p>
+                               <p class="justify">
+                                       So the JABAWS project is split into 4 layers. From bottom-up the first layer
+                                       consists from the value classes used by all other layers of the hierarchy, in
+                                       particular web services. So, to be able to use JABAWS one needs to have these
+                                       classes. At the same time classes on this layer does not have any dependencies
+                                       on the layers above.
+                               </p>
+                               <p class="justify">
+                                       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.
+                               </p>
+                               <p class="justify">
+                                       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.
+                               </p>
+                               <p class="justify">
+                                       Finally, the upper layer contains the web services, that depend on all the layers below.
+                               </p>
+                               <p class="justify">
+                                       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 &quot;Compile&quot; or &quot;Complile_with_debug&quot;
+                                       tasks to perform the staged compilation.
+                               </p>
+                               <p class="justify">
+                                       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.
+                               </p>
+                               <p class="text-right">
+                                       <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+                               </p>
+                       </div>
+               </div>
+       </div>
+</div>
+<div class="row" id="runtests">
+       <div class="col-md-12">
+               <div class="panel panel-default">
+                       <div class="panel panel-heading">
+                               <h1 class="panel-title">Running tests</h1>
+                       </div>
+                       <div class="panel-body">
+                               <p class="justify">
+                                       JABAWS uses TestNG framework for testing. The test results for the JABAWS
+                                       package offered for download can be found at:
+                                       <a href="http://www.compbio.dundee.ac.uk/user/www-jws2/tests/index.html">
+                                               Test Results</a><br/>
+                                       JABAWS uses <a href="http://testng.org/doc/index.html">TestNG</a>
+                                       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.
+                               </p>
+                               <p class="justify">
+                                       The best way to ensure that JABAWS framework is completely functional on your
+                                       system is to run all test cases.
+                                       Test cases tests all aspects of JABAWS functionality. Consequently, one need
+                                       to have non windows operation system and support
+                                       of the cluster to be able to run all tests. If your system does not support
+                                       cluster, then you could run all test excluding those that depends on the cluster.
+                               </p>
+
+                               <p>Several testing groups are supported:</p>
+                               <ul>
+                                       <li>All tests (Test)</li>
+                                       <li>Cluster tests (Run_cluster_dependent_test)</li>
+                                       <li>Cluster independent tests () </li>
+                                       <li>Windows only tests (All_cluster_independent_windows_only_tests) </li>
+                                       <li>Performance and stability tests (Long_tests) </li>
+                                       <li>Re-run failed tests (Rerun_failed_tests) </li>
+                                       <li>Run custom test (CustomTest) </li>
+                               </ul>
+
+                               <p class="justify">
+                                       To run the tests you need to download all sources from <a href="#svn">repository</a>.
+                                       Once you have done that, enter into the command line mode, change directory to the
+                                       project directory and type:
+                               </p>
+                               <pre><code class="bash">ant -f build.xml &lt;test group name&gt;</code></pre>
+                               <p class="justify">
+                                       Make sure you have <a href="http://ant.apache.org/">Apache Ant</a>
+                                       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:</p>
+                               <pre><code class="bash">ant -f build.xml Run_cluster_dependent_test</code></pre>
+                               <p class="justify">
+                                       If you work under Linux you could use a simple script from the root folder of repository called <em2>runtests.sh</em2>
+                                       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.
+                               </p>
+                               <p class="justify">
+                                       A handy feature of TestNG is its ability to re-run failed tests. Failed test
+                                       ant file is stored in
+                                       <em2>test-output/testng-failed.xml</em2>. and is used in the ant task called
+                                       <em2>Rerun_failed_tests</em2>. So re-running failed tests requires no more
+                                       work than running any other test group and could be accomplished with the command:
+                               </p>
+                               <pre><code class="bash">ant -f build.xml Rerun_failed_tests</code></pre>
+                               <p class="justify">
+                                       CustomTest runs the test defined in the project root directory file called
+                                       <em2>temp-testng-customsuite.xml</em2>. 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.
+                               </p>
+                               <p class="justify">
+                                       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.
+                               </p>
+                               <p class="text-right">
+                                       <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+                               </p>
+                       </div>
+               </div>
+       </div>
+</div>
+<div class="row" id="prepexec">
+       <div class="col-md-12">
+               <div class="panel panel-default">
+                       <div class="panel panel-heading">
+                               <h1 class="panel-title">Preparing distributive's</h1>
+                       </div>
+                       <div class="panel-body">
+                               <p class="justify">
+                                       There are a number of ant tasks aimed for preparing distributives for download.
+                                       Currently a few types of JABAWS packages are offered:
+                               </p>
+                               <ol>
+                                       <li>Client only (contains classes required to access JABA Web Services)</li>
+                                       <li>Platform specific JABAWS (windows and other)</li>
+                                       <li>JABAWS without binaries</li>
+                                       <li>JABAWS framework </li>
+                               </ol>
+                               <p>Corresponding build task names are:</p>
+                               <ol>
+                                       <li>min-jaba-client</li>
+                                       <li>jaba-windows, jaba-complete</li>
+                                       <li>jaba-no-binaries</li>
+                                       <li>full-jaba-client</li>
+                               </ol>
+                               <p class="justify">
+                                       The easiest way to build all distributives is to call
+                                       <em2>build-all</em2> ant task.
+                                       There are more tasks defined in build.xml than described here.
+                                       They are mostly self explanatory.
+                               </p>
+                               <p class="justify">
+                                       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.
+                               </p>
+                               <p class="text-right">
+                                       <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+                               </p>
+                       </div>
+               </div>
+       </div>
+</div>
+<div class="row" id="buildstubs">
+       <div class="col-md-12">
+               <div class="panel panel-default">
+                       <div class="panel panel-heading">
+                               <h1 class="panel-title">Building web services artifacts</h1>
+                       </div>
+                       <div class="panel-body">
+                               <p class="justify">
+                                       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
+                                       <em2>webservices/compbio/ws/server/resource</em2> 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.
+                               </p>
+                               <p class="text-right">
+                                       <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+                               </p>
+                       </div>
+               </div>
+       </div>
+</div>
+<div class="row" id="addnewws">
+       <div class="col-md-12">
+               <div class="panel panel-default">
+                       <div class="panel panel-heading">
+                               <h1 class="panel-title">Adding a new web service (rough guide)</h1>
+                       </div>
+                       <div class="panel-body">
+                               <ol>
+                                       <li>
+                                               <p>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
+                                                       <em2>binaries/src</em2>. Edit <em2>setexecutableflag.sh</em2>
+                                                       and <em2>compilebin.sh</em2> scripts in <em2>binaries/src</em2>
+                                                       accordingly.</p>
+                                       </li><li>
+                                       <p>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
+                                               <em2>compilebin.sh</em2> and <em2>setexecflag.sh</em2> scripts accordingly.</p>
+                               </li><li>
+                                       <p>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.</p>
+                               </li><li>
+                                       <p>Describe executable in <em2>conf/Exectuable.properties</em2> 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.
+                                       </p>
+                               </li><li>
+                                       <p>Describe the executable supported parameters in the
+                                               <em2>&lt;ExecutableName&gt;Parameters.xml</em2>, presets in the
+                                               <em2>&lt;ExecutableName&gt;Presets.xml</em2> and the execution limits in the
+                                               <em2>&lt;ExecutableName&gt;Limit.xml</em2>. By convention these files are stored
+                                               in <em2>conf/settings</em2>. All of these are optional. If the executable
+                                               does not support parameters you do not have to mention the <em2>XXXParameter.xml</em2> file
+                                               in the <em2>Executable.properties</em2> file at all. The same is true for
+                                               Presets and Limits.</p>
+                               </li><li>
+                                       <p>Create a Java wrapper class for your executable. Create it within <em2>runner</em2> source directory.
+                                               Examples of other wrappers can be found in <em2>compbio.runner.msa</em2> or
+                                               in other <em2>compbio.runner.*</em2> packages. Wrapper should extend
+                                               <em2>SkeletalExecutable&lt;T&gt;</em2> and implement
+                                               <em2>PipedExecutable&lt;T&gt;</em2>
+                                               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 <em2>SkeletalExecutable&lt;T&gt;</em2>
+                                               if input/output can be set as a parameter for an executable. Please see the ClustalW code as example.</p>
+                               </li><li>
+                                       <p>Create a testcase suit for your wrapper in <em2>testsrc</em2> and run the test cases.</p>
+                               </li><li>
+                                       <p>Create parser for the output files of your executable. Suggested location
+                                               compbio.data.sequence.SequenceUtil . </p>
+                               </li><li>
+                                       <p>Test the parser.</p>
+                               </li><li>
+                                       <p>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.</p>
+                               </li><li>
+                                       <p>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. </p>
+                               </li><li>
+                                       <p>Register web service in <em2>WEB-INF/web.xml</em2>
+                                               and <em2>WEB-INF/sun-jaxws.xml</em2>.</p>
+                               </li><li>
+                                       <p>Add generated wsdl to wsbuild.xml ant script to generate the stubs.</p>
+                               </li><li>
+                                       <p>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: </p>
+                                       <ul>
+                                               <li>you do not have interfaces to serialize, since JAXB cannot serialize them</li>
+                                               <li>you have a default no args constructor (can be private if you do not need it)</li>
+                                               <li>JAXB cannot serialize Java Map class, use a custom data structure instead</li>
+                                               <li>Enum cannot be serialized as its abstract class (do not confuse with enum which is fine)</li>
+                                               <li> Fields serialization leaves a little more space for manoeuvre.
+                                                       If you do this then you may accept<br/> and return interfaces, e.g. List, Map; abstract classes etc, from your methods
+                                               </li>
+                                       </ul>
+                                       <p>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!</p>
+                               </li><li>
+                                       <p>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.</p>
+                               </li><li>
+                                       <p>Test the web service with the client.</p>
+                               </li><li>
+                                       <p>Test on the cluster.</p>
+                               </li>
+                               </ol>
+                       </div>
+               </div>
+       </div>
+</div>
+
+<jsp:include page="template_footer.jsp" />
\ No newline at end of file
diff --git a/website/man_servervm.jsp b/website/man_servervm.jsp
new file mode 100644 (file)
index 0000000..347456d
--- /dev/null
@@ -0,0 +1,265 @@
+<%--<?xml version="1.0" encoding="ISO-8859-1" ?>--%>
+<%--<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>--%>
+
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
+<%@ taglib uri="http://displaytag.sf.net" prefix="dt" %>
+
+
+<c:import url="template_header.jsp" >
+       <c:param name="title">Documentation</c:param>
+</c:import>
+
+<ol class="breadcrumb">
+       <li><a href="${pageContext.request.contextPath}/index.jsp">Home</a></li>
+       <li><a href="man_docs.jsp">Documentation</a></li>
+       <li class="active"><a href="man_server_dev.jsp">Develop JABAWS</a></li>
+</ol>
+<div class="row">
+       <div class="col-md-12">
+               <div class="panel panel-default">
+                       <div class="panel panel-heading">
+                               <h1 class="panel-title">Virtual Appliance</h1>
+                       </div>
+                       <div class="panel-body">
+                               <!--<h4>JABAWS Server Virtual Appliance</h4>-->
+                               <ul>
+                                       <li><a href="#whatisvm">What is JABAWS Virtual Appliance?</a></li>
+                                       <li><a href="#whenvm">When to use the Virtual Appliance</a> </li>
+                                       <li><a href="#howtoinstallvm">How to install VMware Player </a></li>
+                                       <li><a href="#vmplayer">VMware Player Appliance configuration </a></li>
+                                       <li><a href="#jabawsAppliance">JABAWS Appliance details </a></li>
+                                       <li><a href="#jalviewWithJaba">Configuring Jalview to work with your JABAWS VM</a></li>
+                                       <li><a href="#vmiaccess">VM Network Settings </a></li>
+                               </ul>
+                               <!--<p class="justify">-->
+                               <!--</p>-->
+                       </div>
+               </div>
+       </div>
+</div>
+
+<div class="row" id="whatisvm">
+       <div class="col-md-12">
+               <div class="panel panel-default">
+                       <div class="panel panel-heading">
+                               <h1 class="panel-title">What is JABAWS Virtual Appliance?</h1>
+                       </div>
+                       <div class="panel-body">
+                               <p class="justify">The JABAWS <a href="http://en.wikipedia.org/wiki/Virtual_appliance">Virtual Appliance</a> is a
+                                       way to run 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
+                                       <a href="http://www.turnkeylinux.org">TurnKey Linux 12.1 (Tomcat edition)</a>. 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.<br/>
+                                       You can run the appliance with freely available program such as
+                                       <a href="http://www.vmware.com/products/player">VMware Player</a>, 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
+                                       <a href="http://communities.vmware.com/community/vmtn/server/vsphere/automationtools/ovf">VMware
+                                               OVF tool</a> to prepare JABAWS image for a different virtualization platform e.g.
+                                       <a href="http://www.virtualbox.org/">VirtualBox</a>.
+                               </p>
+                               <p class="text-right">
+                                       <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+                               </p>
+                       </div>
+               </div>
+       </div>
+</div>
+<div class="row" id="whenvm">
+       <div class="col-md-12">
+               <div class="panel panel-default">
+                       <div class="panel panel-heading">
+                               <h1 class="panel-title">When to use the Virtual Appliance</h1>
+                       </div>
+                       <div class="panel-body">
+                               <p class="justify">The appliance best suits users who would like to use the JABA 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.
+                               </p>
+
+                               <p class="justify">
+                                       For servers that will be used heavily, we recommend that a <a href="man_serverwar.jsp#instwar">JABAWS Server WAR distribution</a> 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.
+                               </p>
+                               <p class="text-right">
+                                       <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+                               </p>
+                       </div>
+               </div>
+       </div>
+</div>
+<div class="row" id="howtoinstallvm">
+       <div class="col-md-12">
+               <div class="panel panel-default">
+                       <div class="panel panel-heading">
+                               <h1 class="panel-title">How to install VMware Player</h1>
+                       </div>
+                       <div class="panel-body">
+                               <p class="justify">
+                                       Please see the <a href="http://downloads.vmware.com/d/info/desktop_downloads/vmware_player/3_0">VMware Player</a>
+                                       web sites for up to date instructions and downloads.
+                               </p>
+                               <p class="text-right">
+                                       <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+                               </p>
+                       </div>
+               </div>
+       </div>
+</div>
+<div class="row" id="vmplayer">
+       <div class="col-md-12">
+               <div class="panel panel-default">
+                       <div class="panel panel-heading">
+                               <h1 class="panel-title">VMware Player Appliance configuration</h1>
+                       </div>
+                       <div class="panel-body">
+                               <p class="justify">The free <a href="http://downloads.vmware.com/d/info/desktop_downloads/vmware_player/3_0">VMware Player</a>
+                                       can be used to run the JABAWS services from the Windows and Linux host operating systems.
+                                       <a href="https://www.vmware.com/vmwarestore/buyfusion.html">VMware Fusion</a>, a commercial
+                                       VMware product, offers virtual machine support for Mac.
+                               </p>
+                               <p class="justify">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 &quot;Open Virtual Machine&quot; and point
+                                       the Player to the location of the JABAWS, then choose the JABAWS.vmx file to open an appliance.
+                               </p>
+                               <p class="justify">When you play the machine for the first time the Player might ask you whether &quot;This
+                                       virtual machine may have been moved or copied.&quot;,  say that you have copied it.
+                                       That is all.
+                               </p>
+
+                               <p class="text-right">
+                                       <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+                               </p>
+                       </div>
+               </div>
+       </div>
+</div>
+<div class="row" id="jabawsAppliance">
+       <div class="col-md-12">
+               <div class="panel panel-default">
+                       <div class="panel panel-heading">
+                               <h1 class="panel-title">JABAWS Appliance details</h1>
+                       </div>
+                       <div class="panel-body">
+                               <p class="justify">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.
+                               </p>
+                               <p class="justify">
+                                       The VMware Player screen shot below displays JABAWS VM CPU settings.
+                               </p>
+                               <p>
+                                       <img src="static/img/VMware_cpu.png" alt="vmware cpu settings" width="708"
+                                                height="267" style="border: solid black 1px" />
+                               </p>
+
+                               <p><strong>JABAWS Virtual Appliance Configuration: </strong></p>
+                               <p><strong>VMware info</strong></p>
+                               <ul>
+                                       <li>CPUs : 1</li>
+                                       <li>RAM : 512 MB</li>
+                                       <li>Networking : Host only (the VM has no access to the outside network, nothing from the
+                                               outside network can access the VM)</li>
+                                       <li>Hard disk : 20 GB  (expanding)</li>
+                                       <li>VMware tools : Installed</li>
+                               </ul>
+                               <p><strong>OS information</strong></p>
+                               <ul>
+                                       <li>OS : TurnKey Linux (v. 12.1, <a href="http://www.turnkeylinux.org/tomcat">Standalone
+                                               Tomcat</a>) based on Debian 6.0.7 (Squeeze)</li>
+                                       <li>Installation : Oracle Java 6, Tomcat 7, JABAWS v. 2.1 </li>
+                                       <li>IPv4 address : dhcp</li>
+                                       <li>IPv6 address : auto</li>
+                                       <li>DNS name : none</li>
+                                       <li>Name server : dhcp</li>
+                                       <li>Route : dhcp</li>
+                                       <li>Keyboard : US_intl</li>
+                               </ul>
+                               <p><strong>Login credentials</strong><br />
+                               <ul>
+                                       <li>Root password: jabaws</li>
+                                       <li>Tomcat admin password: adminjabaws</li>
+                               </ul>
+                               <p>  <strong>Services available at the virtial machine IP (e.g. VM_IP = 172.16.232.149)</strong></p>
+                               <ul>
+                                       <li>Tomcat Web Server: http://VM_IP (e.g. http://172.16.232.149)</li>
+                                       <li>Jabaws URL: http://VM_IP/jabaws (e.g. http://172.16.232.149/jabaws)</li>
+                                       <li>Web Shell: https://VM_IP:12320/ (e.g. https://172.16.232.149:12320)</li>
+                                       <li>Webmean: https://VM_IP:12321/ (e.g. https://172.16.232.149:12321)</li>
+                                       <li>SSH/SFTP: root@VM_IP (e.g. ssh root@172.16.232.149)</li>
+                               </ul>
+                               <p class="text-right">
+                                       <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+                               </p>
+                       </div>
+               </div>
+       </div>
+</div>
+<div class="row" id="jalviewWithJaba">
+       <div class="col-md-12">
+               <div class="panel panel-default">
+                       <div class="panel panel-heading">
+                               <h1 class="panel-title">Configuring Jalview to work with your JABAWS VM</h1>
+                       </div>
+                       <div class="panel-body">
+
+                               <p class="justify">
+                                       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-&gt;Tools-&gt;Preferences-&gt;Web Services -&gt;
+                                       New Service URL, and add JABAWS URL into the box provided. For more information please refer to Jalview
+                                       <a href="http://www.jalview.org/help/html/webServices/JABAWS.html">help pages</a>.
+                               </p>
+                               <p><img src="static/img/vm_welcome_screen.png" alt="JABAWS welcome screen" width="734"
+                                               height="461" /></p>
+                               <p class="justify">If you click on Advanced Menu, you will see the configuration console,
+                                       similar to the one below.
+                               </p>
+                               <p><img src="static/img/VMware_booted.png" alt="JABAWS welcome screen" width="735"
+                                               height="461" /></p>
+                               <p class="justify">
+                                       If you need to configure a static IP address the configuration console will
+                                       help you with this. Shutting down the VM is best from the configuration console as well.
+                               </p>
+
+                               <p class="text-right">
+                                       <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+                               </p>
+                       </div>
+               </div>
+       </div>
+</div>
+<div class="row" id="vmiaccess">
+       <div class="col-md-12">
+               <div class="panel panel-default">
+                       <div class="panel panel-heading">
+                               <h1 class="panel-title">VM Network Settings</h1>
+                       </div>
+                       <div class="panel-body">
+                               <p class="justify">
+                                       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).
+                               </p>
+                       </div>
+               </div>
+       </div>
+</div>
+
+<jsp:include page="template_footer.jsp" />
\ No newline at end of file
diff --git a/website/man_serverwar.jsp b/website/man_serverwar.jsp
new file mode 100644 (file)
index 0000000..6a538a9
--- /dev/null
@@ -0,0 +1,493 @@
+<%--<?xml version="1.0" encoding="ISO-8859-1" ?>--%>
+<%--<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>--%>
+
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
+<%@ taglib uri="http://displaytag.sf.net" prefix="dt" %>
+
+
+<c:import url="template_header.jsp" >
+    <c:param name="title">Documentation</c:param>
+</c:import>
+
+<ol class="breadcrumb">
+    <li><a href="${pageContext.request.contextPath}/index.jsp">Home</a></li>
+    <li><a href="man_docs.jsp">Documentation</a></li>
+    <li class="active"><a href="man_server_dev.jsp">Develop JABAWS</a></li>
+</ol>
+<div class="row">
+    <div class="col-md-12">
+        <div class="panel panel-default">
+            <div class="panel panel-heading">
+                <h1 class="panel-title">Web Application Archive</h1>
+            </div>
+            <div class="panel-body">
+                <ul>
+                    <li><a href="#sysreq">System Requirements</a></li>
+                    <li><a href="#instwar">Installing the JABAWS WAR file</a></li>
+                    <li><a href="#prepexec">Preparing executables for use with JABAWS</a></li>
+                    <li><a href="#useprebin">Using the pre-compiled i386 binaries on Linux</a></li>
+                    <li><a href="#recompbinaries">Recompiling the bundled programs for your system</a></li>
+                    <li><a href="#haveexec">Reuse the binaries that are already in your system</a></li>
+                    <li><a href="#obtainexec">Obtaining command line binaries </a><a href="#obtainexec">for your operating system</a></li>
+                    <li><a href="#usingWsTester">Testing JABAWS Server</a></li>
+                    <li><a href="#diffcontexts">Running many JABAWS instances on the same server</a> </li>
+                    <li><a href="#nocluster">JABAWS on a single server</a></li>
+                    <li><a href="#clustsubsys">JABAWS supported cluster batch management systems </a></li>
+                    <li><a href="#tomstopundeploy">Manually deploying JABAWS application on Apache-Tomcat </a></li>
+                    <li><a href="#tomdeploy">Apache-Tomcat fails to deploy the jabaws.war file</a></li>
+                </ul>
+                <!--<p class="justify">-->
+                <!--</p>-->
+            </div>
+        </div>
+    </div>
+</div>
+<div class="row" id="sysreq">
+    <div class="col-md-12">
+        <div class="panel panel-default">
+            <div class="panel panel-heading">
+                <h1 class="panel-title">System Requirements</h1>
+            </div>
+            <div class="panel-body">
+                <p class="justify">JABAWS requires a Java web application server compliant with
+                    version 2.4 of the Java Servlet specification, and a Java 6 runtime
+                    environment. We recommend using an official Oracle Java 6 runtime
+                    environment, and <a
+                            href="http://tomcat.apache.org/download-70.cgi">Apache-Tomcat</a>
+                    web application server version 7, but older Tomcat versions above 5.5 will
+                    work too.<br/>
+                    <span class="attention">Please Note:</span>
+                    The JABAWS WAR is not generally compatible with older Mac systems based
+                    on the PowerPC architecture, since Java 1.6 is not available to run JABAWS.
+                </p>
+                <p class="justify">
+                    JABAWS Web Application aRchive can run on any host operating system that supports
+                    Java 1.6. 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. To install Tomcat follow the
+                    intructions provided in the following
+                    <a href="http://tomcat.apache.org/tomcat-7.0-doc/">documentation</a>.
+                </p>
+                <p class="justify">
+                    JABAWS comes with pre-compiled MS Windows and Linux x86 binaries, as well as the
+                    source code and build scripts necessary to recompile them.
+                </p>
+                <p class="justify">
+                    To run JABAWS on the cluster you must have shared disk space accessible from
+                    all cluster nodes.
+                </p>
+
+                <p class="text-right">
+                    <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+                </p>
+            </div>
+        </div>
+    </div>
+</div>
+<div class="row" id="instwar">
+    <div class="col-md-12">
+        <div class="panel panel-default">
+            <div class="panel panel-heading">
+                <h1 class="panel-title">Installing the JABAWS WAR file</h1>
+            </div>
+            <div class="panel-body">
+                <p class="justify">
+                    JABAWS is distributed as a web application archive (WAR). To
+                    deploy JABAWS in Apache-Tomcat - simply drop the war file into the
+                    <em2>webapps</em2> directory of a running
+                    Tomcat, and it will do the rest. If you used this deployment procedure,
+                    <span class="attention">do not remove</span> 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 <em2>localhost:8080</em2> and
+                    <strong>jaba.war</strong> file is put into the
+                    <em2>&lt;tomcat server root&gt;/webapps</em2> directory,
+                    the deployed application from the jaba.war file then can be accessed by this
+                    URL http://localhost:8080/<strong>jaba</strong>.
+                </p>
+                <p class="justify">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
+                    <a href="#usingWsTester">as described here</a>. If you
+                    install JABAWS on Linux you will need to set an executable
+                    flag for binaries. This is described  <a href="#useprebin">here</a>.
+                    If your host operating system is different from Windows or Linux
+                    then read on.
+                </p>
+                <p class="text-right">
+                    <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+                </p>
+            </div>
+        </div>
+    </div>
+</div>
+<div class="row" id="prepexec">
+    <div class="col-md-12">
+        <div class="panel panel-default">
+            <div class="panel panel-heading">
+                <h1 class="panel-title">Preparing executables for use with JABAWS</h1>
+            </div>
+            <div class="panel-body">
+                <p class="justify">
+                    JABAWS's web services use command line programs to do
+                    the actual analysis, so it must have access to programs
+                    which can be executed on your platform. The native executables
+                    bundled with JABAWS for Windows (32-bit) and Linux (i386, 32-bit) should be
+                    OK for those systems. The source code for these
+                    programs is also provided so you can <a href="#recompbinaries">recompile for
+                    your own architecture</a> and exploit any optimizations that your system can
+                    provide. Alternately, if you have already got binaries on your
+                    system, then you can simply <a href="#haveexec">change the paths in JABAWS's
+                        configuration files</a> so these are used instead.
+                </p>
+                <p class="text-right">
+                    <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+                </p>
+            </div>
+        </div>
+    </div>
+</div>
+<div class="row" id="useprebin">
+    <div class="col-md-12">
+        <div class="panel panel-default">
+            <div class="panel panel-heading">
+                <h1 class="panel-title">Using the pre-compiled i386 binaries on Linux</h1>
+            </div>
+            <div class="panel-body">
+                <p class="justify">
+                    JABAWS comes with pre-compiled x86 Linux binaries, thus on such systems
+                    JABAWS should work straight out of the box. If you are in any doubts or
+                    experience problems you may want to make sure that the binaries supplied
+                    work under your OS. To do this just execute each binary, without any
+                    command line options or
+                    input files. If you see an error message complaining about missing
+                    libraries or other problems, then you probably need to
+                    <a href="#recompbinaries">recompile the binaries</a>.
+                </p>
+                <p class="justify">
+                    You can try the JABAWS functionality with the JABAWS<a
+                        href="#usingWsTester"> test client</a>  or have a look at <a href="http://tomcat.apache.org/tomcat-6.0-doc/deployer-howto.html">deploying on Tomcat</a> tips if you experience any problems.<br />
+                    <em2>Note: You may want to enable logging,
+                        <a href="man_configuration.jsp#logfiles"> as described here</a></em2>.
+                </p>
+                <p class="text-right">
+                    <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+                </p>
+            </div>
+        </div>
+    </div>
+</div>
+<div class="row" id="recompbinaries">
+    <div class="col-md-12">
+        <div class="panel panel-default">
+            <div class="panel panel-heading">
+                <h1 class="panel-title">Recompiling the bundled
+                    programs for your system</h1>
+            </div>
+            <div class="panel-body">
+                <p class="justify">
+                    If you have a fully equipped build environment on your
+                    (POSIX-like) system, then you should be able to recompile the
+                    programs from the source distributions which are included
+                    in the JABAWS war file. A script called 'compilebin.sh' is provided
+                    to automate this task.
+                </p>
+
+                <ol>
+                    <li>In a terminal window, change the working directory to <em2>binaries/src</em2>
+                    </li>
+
+                    <li>execute the <em2>compilebin.sh</em2> script,<br />
+                        either use:
+                        <pre><code class="bash">chmod +x compilebin.sh; compilebin.sh &gt; compilebin.out;</code></pre>
+                        or:
+                        <pre><code class="bash">sh compilebin.sh &gt; compilebin.out</code></pre>
+                    </li>
+
+                    <li>Now run <pre><code class="bash">sh setexecflag.sh</code></pre>
+                        If any of the binaries was not recompiled, then a 'file not found'
+                        error will be raised.
+                    </li>
+
+                    <li>Finally, restart your Tomcat server (or JABAWS application only), and
+                        <a href="#usingWsTester">test JABAWS</a> to
+                        check that it can use the new binaries.
+                    </li>
+                </ol>
+
+                <p class="justify">
+                    If you couldn't compile everything, then it may be that your system does
+                    not have all the tools required for compiling the programs. At the very
+                    least check that you have gcc, g++ and make installed in your
+                    system. If not install these packages and repeat the compilation
+                    steps again. You should also review the compilebin.sh output -
+                    which was redirected to compilebin.out, and any errors output to
+                    the terminal. Finally, try obtaining the <a href="#obtainexec">pre
+                    compiled binaries</a> for your OS.
+                </p>
+                <p class="text-right">
+                    <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+                </p>
+            </div>
+        </div>
+    </div>
+</div>
+<div class="row" id="haveexec">
+    <div class="col-md-12">
+        <div class="panel panel-default">
+            <div class="panel panel-heading">
+                <h1 class="panel-title">Reuse the binaries that are
+                    already in your system</h1>
+            </div>
+            <div class="panel-body">
+                <p class="justify">
+                    If you would like to use the binaries you already have, then you
+                    just need to let JABAWS know where they are. To do this, edit:
+                    <em2>conf/Executable.properties</em2>
+                </p>
+                <p class="justify">
+                    When specifying paths to executables that already exist on your system,
+                    make sure you provide an absolute path, or one relative to the JABAWS
+                    directory inside <em2>webapps</em2>. For example,
+                    the default path for clustalw is defined
+                    as <em2>local.clustalw.bin=binaries/src/clustalw/src/clustalw2</em2>
+                    Alternatively, instead of changing
+                    <em2>Executable.properties</em2>
+                    you could also replace
+                    the executables bundled with JABAWS with the ones that you have, or make
+                    symbolic links to them.
+                    Then the default configuration will work for you. More information
+                    about the <em2>Executable.properties</em2> file is given in the
+                    <a href="man_configuration.jsp#exec">JABAWS Configuration chapter.</a>
+                </p>
+                <p class="text-right">
+                    <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+                </p>
+            </div>
+        </div>
+    </div>
+</div>
+<div class="row" id="obtainexec">
+    <div class="col-md-12">
+        <div class="panel panel-default">
+            <div class="panel panel-heading">
+                <h1 class="panel-title">Obtaining command line binaries for
+                    your operating system</h1>
+            </div>
+            <div class="panel-body">
+                <p class="justify">
+                    You could search for pre-packaged compiled executable in your
+                    system package repository or alternately, download pre-compiled
+                    binaries from each alignment program's home page. Then, either
+                    replace the executables supplied with the downloaded ones, or
+                    modify the paths in <em2>executable.properties</em2>
+                    as described above. Below are some suggestions on where you may be able to
+                    get the binaries for your system.
+                </p>
+                <ul>
+                    <li><a href="http://www.clustal.org/omega/#Download">Clustal Omega </a></li>
+                    <li><a href="http://www.clustal.org/clustal2/#Download">ClustalW </a></li>
+                    <li><a href="http://mafft.cbrc.jp/alignment/software/">Mafft</a></li>
+                    <li><a href="http://www.drive5.com/muscle/downloads.htm">Muscle</a></li>
+                    <li><a href="http://www.tcoffee.org/Projects/tcoffee/#DOWNLOAD">Tcoffee</a></li>
+                </ul>
+            </div>
+        </div>
+    </div>
+</div>
+<div class="row" id="usingWsTester">
+    <div class="col-md-12">
+        <div class="panel panel-default">
+            <div class="panel panel-heading">
+                <h1 class="panel-title">Testing JABAWS Server</h1>
+            </div>
+            <div class="panel-body">
+                <p class="justify">
+                    First of all make sure that Tomcat server is started successfully. If this was the case,
+                    then you should see JABAWS home page when you navigate to your Tomcat JABAWS context
+                    path e.g. <pre>http://myhost.compbio.ac.uk:8080/jabaws</pre>
+                <p>
+                    <strong>Using JABAWS service status checker</strong>
+                </p>
+                <p class="justify">If you see it, then it is time to make sure that web services are
+                    working too. The easiest way to do this is to access Services Status page available
+                    from the main JABAWS web page menu.
+                </p>
+                <p class="justify">
+                    If you need to monitor web service health automatically when the
+                    best option is to use service checker that responds with the standard HTTP status
+                    code. To access this checker use the following
+                    URL: <pre><code class="bash">&lt;jabaws_server&gt;/HttpCodeResponseServiceStatus</code></pre>
+                    This page returns code 200, and no page context if all services are operational, 503
+                    if one of the services have problems. You can also check each web service individually
+                    by providing the name of the web service to check at the end of the service  checker URL
+                like this: <pre><code class="bash">&lt;jabaws_server&gt;/HttpCodeResponseServiceStatus/ClustalWS</code></pre>
+                </pre>
+                <p class="justify">
+                    Upon request, the service status checker will examine the health of the ClustalWS web
+                    service only. If the service name is not valid, then the service checker will return code 400.
+                </p>
+                <p class="justify">
+                    <strong>Using command line client</strong>
+                </p>
+                <p class="justify">
+                    Alternatively, you should be able to use the test program which can be found in &lt;webapplicationpath&gt;/WEB-INF/lib/jabaws-client.jar file. To run the tests type:<span class="code"> java -jar jabaws-client.jar -h=&lt;Your web application server host name, port and JABAWS context path&gt;</span></p>
+                <p class="justify">
+                    For example to test all JABAWS web services on host myhost.compbio.ac.uk type:
+                </p>
+                <pre><code class="bash">java -jar jabaws-client.jar -h=http://myhost.compbio.ac.uk:8080/jabaws</code></pre>
+                <p class="justify">
+                    You can choose a particular web server using -s option like
+                    this <span class="code">java -jar jabaws-client.jar -h=http://myhost.compbio.ac.uk:8080/jabaws -s=ClustalWS </span>
+                    This command line assumes that java executable is in your path and jabaws-client.jar is
+                    located in the current directory.
+                </p>
+                <p class="justify">
+                    An example of the report testing tool produces for operating web service looks like this:
+                </p>
+                <p class="justify">
+                    <pre><code class="bash">Connecting to service MuscleWS on http://myhost.compbio.ac.uk:8080/jabaws ... OK
+Testing alignment with default parameters:
+Queering job status...OK
+Retrieving results...OK
+Testing alignment with presets:
+Aligning with preset 'Protein alignment(Fastest speed)'... OK
+Aligning with preset 'Nucleotide alignment(Fastest speed)'... OK
+Aligning with preset 'Huge alignments (speed-oriented)'... OK
+Queering presets...OK
+Queering Parameters...OK
+Queering Limits...OK
+Queering Local Engine Limits...OK
+Check is completed service MuscleWS IS WORKING</code></pre>
+                <p>
+                    An example of the response of a web service which is deployed but is not operating is below:
+                </p>
+                <p class="justify">
+                    <pre><code class="bash">Connecting to service ProbconsWS on http://localhost:8080/ws ... OK
+Testing alignment with default parameters:FAILED
+Service ProbconsWS IS NOT FUNCTIONAL</code></pre>
+                </p>
+                <p>If the web server did not respond the message looks like following:
+                    <pre>Connecting to service TcoffeeWS on http://localhost:8080/ws ... FAILED</pre>
+                </p>
+            </div>
+        </div>
+    </div>
+</div>
+<div class="row" id="diffcontexts">
+    <div class="col-md-12">
+        <div class="panel panel-default">
+            <div class="panel panel-heading">
+                <h1 class="panel-title">Running many JABAWS instances on the same server</h1>
+            </div>
+            <div class="panel-body">
+                <p class="justify">
+                    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.
+                </p>
+            </div>
+        </div>
+    </div>
+</div>
+<div class="row" id="nocluster">
+    <div class="col-md-12">
+        <div class="panel panel-default">
+            <div class="panel panel-heading">
+                <h1 class="panel-title">JABAWS on a single server</h1>
+            </div>
+            <div class="panel-body">
+                <p class="justify">
+                    You can run  JABAWS on a single server. Obviously the capacity will be
+                    limited, but it may be sufficient for a small lab. Installed on a single
+                    server, JABAWS executes tasks in parallel, so the more cores the server has
+                    the more requests it will be able to handle.
+                </p>
+            </div>
+        </div>
+    </div>
+</div>
+<div class="row" id="clustsubsys">
+    <div class="col-md-12">
+        <div class="panel panel-default">
+            <div class="panel panel-heading">
+                <h1 class="panel-title">JABAWS supported cluster batch management systems</h1>
+            </div>
+            <div class="panel-body">
+                <p class="justify">
+                    JABAWS uses <a href="http://drmaa.org/">DRMAA</a> v. 1.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.
+                </p>
+            </div>
+        </div>
+    </div>
+</div>
+<div class="row" id="tomstopundeploy">
+    <div class="col-md-12">
+        <div class="panel panel-default">
+            <div class="panel panel-heading">
+                <h1 class="panel-title">Manually deploying JABAWS application on Apache-Tomcat</h1>
+            </div>
+            <div class="panel-body">
+                <p class="justify">
+                    To stop Tomcat from automatically undeploying your application if the war file is
+                    removed use an explicit application descriptor. It could come in different flavors,
+                    the one I prefer is to drop a context descriptor file into
+                    <em2>&lt;tomcatRoot&gt;conf/Catalina/localhost</em2> directory.
+                    Name your context file the same as your application folder e.g. if your
+                    JABAWS resides in webappl/jabaws folder, then call the context file jabaws.xml.
+                    Below is an example of content this file might have.
+                </p>
+                <pre><code class="xml">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
+&lt;Context antiResourceLocking=&quot;false&quot; privileged=&quot;true&quot; /&gt;</code></pre>
+                <p class="justify">
+                    This should be sufficient to prevent Tomcat from removing your JABAWS from WEBAPPS.
+                    For more information about the Tomcat deployer
+                    <a href="http://tomcat.apache.org/tomcat-6.0-doc/deployer-howto.html">read
+                        this documentation on the Apache-Tomcat web site</a>.
+                </p>
+            </div>
+        </div>
+    </div>
+</div>
+<div class="row" id="tomdeploy">
+    <div class="col-md-12">
+        <div class="panel panel-default">
+            <div class="panel panel-heading">
+                <h1 class="panel-title">Apache-Tomcat fails to deploy jabaws.war file</h1>
+            </div>
+            <div class="panel-body">
+                <ul>
+                    <li>Make sure Tomcat has sufficient access rights to read your war file. </li>
+                    <li>Restart the Tomcat, sometimes it will not restart after the new war file
+                        is added without restart</li>
+                    <li>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.</li>
+                </ul>
+            </div>
+        </div>
+    </div>
+</div>
+
+<jsp:include page="template_footer.jsp" />
\ No newline at end of file
diff --git a/website/man_stats.jsp b/website/man_stats.jsp
new file mode 100644 (file)
index 0000000..76a53c8
--- /dev/null
@@ -0,0 +1,330 @@
+<%--<?xml version="1.0" encoding="ISO-8859-1" ?>--%>
+<%--<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>--%>
+
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
+<%@ taglib uri="http://displaytag.sf.net" prefix="dt" %>
+
+
+<c:import url="template_header.jsp" >
+    <c:param name="title">Documentation</c:param>
+</c:import>
+
+<ol class="breadcrumb">
+    <li><a href="${pageContext.request.contextPath}/index.jsp">Home</a></li>
+    <li><a href="man_docs.jsp">Documentation</a></li>
+    <li class="active"><a href="man_server_dev.jsp">Develop JABAWS</a></li>
+</ol>
+<div class="row">
+    <div class="col-md-12">
+        <div class="panel panel-default">
+            <div class="panel panel-heading">
+                <h1 class="panel-title">JABAWS Usage Statistics</h1>
+            </div>
+            <div class="panel-body">
+                <!--<h4>JABAWS Server Virtual Appliance</h4>-->
+                <ul>
+                    <li><a href="#usage_sum">Summary of Usage</a></li>
+                    <li><a href="#helpUsageStats">Authentication</a></li>
+                    <li><a href="#detailed_usage">Detailed Usage Statistic </a></li>
+                    <li><a href="#job_list">Job List</a></li>
+                    <li><a href="#job_dir">Single Job Directory Content </a></li>
+                    <li><a href="#conf_tomcat_user">Configuring a privileged   access for Tomcat web application server</a></li>
+                    <li><a href="#exec_stat_conf">Configuring JABAWS execution statistics</a></li>
+                </ul>
+                <!--<p class="justify">-->
+                <!--</p>-->
+            </div>
+        </div>
+    </div>
+</div>
+<div class="row" id="usage_sum">
+    <div class="col-md-12">
+        <div class="panel panel-default">
+            <div class="panel panel-heading">
+                <h1 class="panel-title">Summary of Usage</h1>
+            </div>
+            <div class="panel-body">
+                <p class="justify">
+                    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
+                    <em2>admin</em2>. There is a link at the bottom of the
+                    page that lets you login, if you have not done so.
+                </p>
+                <p class="justify">
+                    If you are using JABAWS VA (Virtual Appliance) then the username is
+                    <em2>jabaws</em2> and password is not defined,
+                    i.e. empty.
+                </p>
+                <p class="justify">
+                    If you have deployed a JABAWS WAR file, then please see the
+                    <a href="#conf_tomcat_user">configuring privileged access for Tomcat web
+                        application server</a> section for further details.
+                </p>
+
+                <p><img src="static/img/usage_statistics_main.gif" alt="JABAWS usage statistics"
+                        width="608" height="318" />
+                </p>
+                <p class="justify">
+                    The table contains the number of jobs processed by JABAWS per month, for
+                    the whole period when the statistics was collected.
+                </p>
+                <p>For each month the table contains the following information.</p>
+                <ul>
+                    <li>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</li>
+                    <li>Total - the total number of jobs accepted by JABAWS</li>
+                    <li>Incomplete - the number of jobs for which the result file was not
+                        found or was empty excluding cancelled</li>
+                    <li>Cancelled - the number of jobs cancelled by the user</li>
+                    <li>Abandoned - the number of jobs which result(s) were not collected</li>
+                </ul>
+                <p>The summary for each column is displayed in the last row of the table.</p>
+
+                <p class="text-right">
+                    <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+                </p>
+            </div>
+        </div>
+    </div>
+</div>
+<div class="row" id="helpUsageStats">
+    <div class="col-md-12">
+        <div class="panel panel-default">
+            <div class="panel panel-heading">
+                <h1 class="panel-title">Authentication</h1>
+            </div>
+            <div class="panel-body">
+                <p class="justify">
+                    Authentication lets you see the detailed usage statistics.
+                    If you are using JABAWS VA (Virtual Appliance) then the
+                    username is <em2>jabaws</em2> and
+                    password is not defined, i.e. empty. In other cases you need
+                    to ask your system administrator for it.
+                </p>
+                <p class="text-right">
+                    <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+                </p>
+            </div>
+        </div>
+    </div>
+</div>
+<div class="row" id="detailed_usage">
+    <div class="col-md-12">
+        <div class="panel panel-default">
+            <div class="panel panel-heading">
+                <h1 class="panel-title">Detailed Usage Statistic</h1>
+            </div>
+            <div class="panel-body">
+                <p class="justify">
+                    Detailed execution statistics for each month is available for
+                    authenticated users only.
+                </p>
+                <p><img src="static/img/usage_statistics_month.gif" alt="JABAWS one month usage statistics"
+                        width="670" height="902" />
+                </p>
+                <p>Each table contains the number of jobs processed by JABAWS during the period of
+                    time specified in the title:</p>
+                <ul>
+                    <li>The &quot;All Jobs&quot; table contains the summary of all jobs</li>
+                    <li>&quot;Local Jobs&quot; table - contains the summary of the jobs calculated by the local engine</li>
+                    <li>&quot;Cluster Jobs&quot; table - contains the summary of the jobs calculated by the cluster</li>
+                </ul>
+                Each table contains the following information for each web service:
+                <ul>
+                    <li>Total - the total number of jobs accepted by a particular JABA service</li>
+                    <li>Incomplete - the number of jobs for which the result file was not found or was empty excluding cancelled</li>
+                    <li>Cancelled - the number of jobs cancelled by the user</li>
+                    <li>Abandoned - the number of jobs which result(s) were not collected</li>
+                </ul>
+                <p class="text-right">
+                    <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+                </p>
+            </div>
+        </div>
+    </div>
+</div>
+<div class="row" id="job_list">
+    <div class="col-md-12">
+        <div class="panel panel-default">
+            <div class="panel panel-heading">
+                <h1 class="panel-title">Job List</h1>
+            </div>
+            <div class="panel-body">
+                <p class="justify">
+                    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
+                    <a href="#exec_stat_conf">Configuring JABAWS execution statistics</a> section
+                    for further details.
+                </p>
+                <p><img src="static/img/usage_statistics_details.gif" alt="JABAWS - job list" width="917" height="198" /> </p>
+                <p>Columns: </p>
+                <ul>
+                    <li>JobID - the JABAWS job id, unique for every job</li>
+                    <li>Cluster JobID - cluster job id</li>
+                    <li>InputSize - input size in bytes</li>
+                    <li>ResultSize - result size in bytes</li>
+                    <li>Runtime (s) - job's runtime in seconds</li>
+                    <li>Start time (s)- job's start time and date</li>
+                    <li>Finish time (s)- job's finish time and date</li>
+                    <li>isCancelled - whether the job was cancelled</li>
+                    <li>isCollected - whether the job was collected. False for the jobs
+                        that has been initiated but which results has never been retrieved</li>
+                    <li>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</li>
+                </ul>
+                <p class="text-right">
+                    <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+                </p>
+            </div>
+        </div>
+    </div>
+</div>
+<div class="row" id="job_dir">
+    <div class="col-md-12">
+        <div class="panel panel-default">
+            <div class="panel panel-heading">
+                <h1 class="panel-title">Single Job Directory Content</h1>
+            </div>
+            <div class="panel-body">
+                <p class="justify">
+                    <img src="static/img/usage_statistics_job_details.gif" alt="JABAWS- job details"
+                         width="716" height="420" /></p>
+                <p>
+                    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.
+                </p>
+                <p class="justify">
+                    COLLECTED file is empty and indicates that the job results were collected by the
+                    user. Due to asynchronous nature of the job it is possible that the job
+                    was started and finished, but the results has never been requested.
+                </p>
+                <p class="justify">
+                    RunnerConfig.xml file contains a complete description of the job and JABAWS
+                    can restart the job based on this description.
+                </p>
+                <p class="justify">
+                    procError.txt and procOutput.txt files  contains the content of the standard
+                    out and standard error streams of the process.
+                </p>
+                <p>result.txt file contains the results. </p>
+                <p>input.txt file contains input into the process. </p>
+                <p>
+                    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.
+                </p>
+                <p class="justify">
+                    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
+                    <a href="#exec_stat_conf">Configuring JABAWS execution statistics</a>
+                    section for further details.
+                </p>
+                <p class="text-right">
+                    <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+                </p>
+            </div>
+        </div>
+    </div>
+</div>
+<div class="row" id="exec_stat_conf">
+    <div class="col-md-12">
+        <div class="panel panel-default">
+            <div class="panel panel-heading">
+                <h1 class="panel-title">Configuring JABAWS execution statistics</h1>
+            </div>
+            <div class="panel-body">
+                <p class="justify">
+                    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.
+                </p>
+                <p class="justify">
+                    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.
+                </p>
+                <pre><code class="bash"># 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</code></pre>
+                <pre><code class="bash"># 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</code></pre>
+                <p class="justify">
+                    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.
+                </p>
+                <p class="justify">
+                    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 &lt;TOMCAT_ROOT&gt;/conf/Catalina/localhost directory. The
+                    name of the file should be the same as the web application context name,
+                    for example &quot;<em2>jabaws.xml</em2>&quot; for
+                    jabaws. Where the TOMCAT_ROOT is the location of the Tomcat web application
+                    server. Here is an example of such a file:
+                </p>
+                <pre><code class="xml">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
+&lt;Context antiResourceLocking=&quot;false&quot; privileged=&quot;true&quot; allowLinking=&quot;true&quot;/&gt;</code></pre>
+                <p>
+                    The key option here is this:
+                    <em2>allowLinking=&quot;true&quot;</em2>.
+                    Please also make sure that you have defined the user in role
+                    &quot;<em2>admin</em2>&quot; as described
+                    <a href="#conf_tomcat_user">below</a>.
+                </p>
+                <p class="text-right">
+                    <a href="#">Back to top <i class="fa fa-arrow-up" aria-hidden="true"></i></a>
+                </p>
+            </div>
+        </div>
+    </div>
+</div>
+<div class="row" id="conf_tomcat_user">
+    <div class="col-md-12">
+        <div class="panel panel-default">
+            <div class="panel panel-heading">
+                <h1 class="panel-title">Configuring a privileged
+                    access for Tomcat web application server</h1>
+            </div>
+            <div class="panel-body">
+                <p class="justify">
+                    Access to configuration files, detailed job execution statistics and job
+                    directories are allowed only for authenticated users in role
+                    &quot;<em2>admin</em2>&quot;.
+                </p>
+                <p>If you use Tomcat, then the simplest way to set up privileged
+                    access is to use a plain text configuration file
+                    <em2>conf/tomcat-user.xml</em2>. Here is an example
+                    of such configuration file defining user
+                    &quot;<em2>peter</em2>&quot; in role
+                    &quot;<em2>admin</em2>&quot;.
+                    <pre><code class="xml">&lt;tomcat-users&gt;
+&lt;role rolename=&quot;admin&quot;/&gt;
+&lt;user username=&quot;peter&quot; password=&quot;your password here &quot; roles=&quot;admin&quot;/&gt;
+&lt;/tomcat-users&gt;</code></pre>
+                <p>For more information on users and roles please consult Apache-Tomcat help pages.</p>
+            </div>
+        </div>
+    </div>
+</div>
+
+<jsp:include page="template_footer.jsp" />
\ No newline at end of file