Tidy Up FileService implementation and add more javadoc information

git-svn-id: https://brutex.net/svn/xservices/trunk@64 e7e49efb-446e-492e-b9ec-fcafc1997a86
tag-20130205r
Brian Rosenberger 2011-05-19 15:28:13 +00:00
parent 10a2ca711d
commit 1474ad8589
16 changed files with 2248 additions and 521 deletions

View File

@ -0,0 +1,207 @@
<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>User Guide</title><meta content="DocBook XSL-NS Stylesheets V1.76.1" name="generator"><meta name="description" content="Abstract In complex IT environments it is necessary to integrate different information systems with each other, exchange data between tools and automate actions and function calls depending on events arising from user interaction. To meet the requirements of integration building usually means to implement APIs and to create tool-to-tool bridges. Web Services can help to clean up bridges into interfaces as well as to abstract functions from their underlying platform and implementation. These are the major goals of the loosely coupled integration strategy which is in turn one essential idea of a service-oriented architecture (SOA). provide a low level set of functions and web services. These can be orchestrated into services and used in business processes which make up the execution part of a SOA environment. is an add-on to XBridgeNG 2.0. It runs standalone or in combination with XBridgeNG. Pure XBridgeNG has two components: XML Schema for item based data types (e.g. tickets from a bug tracker system or a database record) Set of Apache Ant tasks to function as a bridge between the XBridgeNG XML format at legacy 3rd party software (e.g. HP Quality Center, Serena TeamTrack, ...) The add Web Services (SOAP) wrapper around Apache Ant tasks (since XBridgeNG 2.0) The current focus is on file-based operations. do not contain an integration server or a process execution engine."></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" title="User Guide"><div class="titlepage"><div><div><h1 class="title"><a name="N2000B"></a>User Guide</h1></div><div><div class="author"><h3 class="author"><span class="firstname">Brian</span> <span class="surname">Rosenberger</span></h3><code class="email">&lt;<a class="email" href="mailto:bru@brutex.de">bru@brutex.de</a>&gt;</code></div></div><div><p class="copyright">Copyright &copy; 2010 </p></div><div><div class="legalnotice" title="Legal Notice"><a name="N2002F"></a>
<p>
The copyright holders make no representation about the
suitability of
this document for any purpose. It is provided
<span class="quote">&ldquo;<span class="quote">as is</span>&rdquo;</span>
without expressed or implied warranty.
</p>
</div></div><div><div class="legalnotice" title="Legal Notice"><a name="N20038"></a>
<p>Apache Tomcat and Apache Ant are trademarks of the Apache
Software Foundation.</p>
</div></div><div><p class="pubdate">1997</p></div><div><div class="abstract" title="Abstract"><p class="title"><b>Abstract</b></p>
<p>In complex IT environments it is necessary to integrate
different information systems with each other, exchange data
between
tools and automate actions and function calls depending
on events
arising from user interaction. To meet the requirements
of
integration building usually means to implement APIs and to
create
tool-to-tool bridges. Web Services can help to clean up
bridges into
interfaces as well as to abstract functions from
their underlying
platform and implementation.</p>
<p>These are the major goals of the loosely coupled
integration
strategy which is in turn one essential idea of a
service-oriented
architecture (SOA).</p>
<p>provide a low level set of functions and web services.
These can
be orchestrated into services and used in business
processes which
make up the execution part of a SOA
environment.</p>
<p>is an add-on to XBridgeNG 2.0. It runs standalone or in
combination with XBridgeNG. Pure XBridgeNG has two
components:</p>
<p>
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
<p>XML Schema for item based data types (e.g. tickets
from a bug
tracker system or a database record)</p>
</li><li class="listitem">
<p>Set of Apache Ant tasks to function as a bridge
between the
XBridgeNG XML format at legacy 3rd party
software (e.g. HP Quality
Center, Serena TeamTrack,
...)</p>
</li><li class="listitem">
<p>The add Web Services (SOAP) wrapper around Apache Ant
tasks
(since XBridgeNG 2.0)</p>
</li></ul></div><p>
</p>
<p>The current focus is on file-based operations. do not
contain an
integration server or a process execution
engine.</p>
</div></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="#N2006C">1. Getting started</a></span></dt><dd><dl><dt><span class="sect1"><a href="#N20076">Prerequisites</a></span></dt><dt><span class="sect1"><a href="#N20085">Installation</a></span></dt><dd><dl><dt><span class="sect2"><a href="#N20090">Securing with Basic Authentication</a></span></dt><dt><span class="sect2"><a href="#N2009F">Limit access to</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#N200B8">2. Available Services</a></span></dt><dd><dl><dt><span class="section"><a href="#N200C2">ArchiveServices</a></span></dt><dt><span class="section"><a href="#N200CB"></a></span></dt><dd><dl><dt><span class="section"><a href="#N200CD">ExecuteServices</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#N20139">3. XML Types</a></span></dt><dd><dl><dt><span class="section"><a href="#N20143">AntProperty type</a></span></dt></dl></dd></dl></div><div class="list-of-tables"><p><b>List of Tables</b></p><dl><dt>2.1. <a href="#N200E4">runCommand input parameters</a></dt></dl></div>
<div class="chapter" title="Chapter&nbsp;1.&nbsp;Getting started"><div class="titlepage"><div><div><h2 class="title"><a name="N2006C"></a>Chapter&nbsp;1.&nbsp;Getting started</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="#N20076">Prerequisites</a></span></dt><dt><span class="sect1"><a href="#N20085">Installation</a></span></dt><dd><dl><dt><span class="sect2"><a href="#N20090">Securing with Basic Authentication</a></span></dt><dt><span class="sect2"><a href="#N2009F">Limit access to</a></span></dt></dl></dd></dl></div>
<p>This chapter describes the installation.</p>
<div class="sect1" title="Prerequisites"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="N20076"></a>Prerequisites</h2></div></div></div>
<p>tbd.</p>
<p>Sun Java SE 1.6.0</p>
<p>Apache Tomcat 6</p>
</div>
<div class="sect1" title="Installation"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="N20085"></a>Installation</h2></div></div></div>
<p>tbd.</p>
<p>In short: Deploy .WAR file to Apache Tomcat</p>
<div class="sect2" title="Securing with Basic Authentication"><div class="titlepage"><div><div><h3 class="title"><a name="N20090"></a>Securing with Basic Authentication</h3></div></div></div>
<p>There is a quick guide explaining Basic Authentication
for
Tomcat here:</p>
<p>
<a class="ulink" href="http://oreilly.com/pub/a/java/archive/tomcat-tips.html?page=1" target="_top">http://oreilly.com/pub/a/java/archive/tomcat-tips.html?page=1</a>
</p>
</div>
<div class="sect2" title="Limit access to"><div class="titlepage"><div><div><h3 class="title"><a name="N2009F"></a>Limit access to</h3></div></div></div>
<p>Sometimes you'll only want to restrict access to to
only
specified host names or IP addresses. This way, only
clients at
those specified addresses can use the web services.
Tomcat provides
two configuration values for that:
RemoteHostValve and
RemoteAddrValve.</p>
<p>These Valves allow you to filter requests by host name or
by IP
address, and to allow or deny hosts that match. The
example below
restricts access to the ArchiveService from any
machine that is not
the local host.</p>
<pre class="programlisting">&lt;Context
path="/XService/ArchiveService" ...&gt; &lt;Valve
className="org.apache.catalina.valves.RemoteAddrValve"
allow="127.0.0.1" deny=""/&gt; &lt;/Context&gt;</pre>
<p>If no allow pattern is given, then patterns that match
the deny
attribute patterns will be rejected, and all others
will be allowed.
Similarly, if no deny pattern is given,
patterns that match the
allow attribute will be allowed, and
all others will be denied.
</p>
<p>The &lt;context&gt; element must be placed into the
server.xml
file (into &lt;engine&gt;&lt;host&gt;).</p>
</div>
</div>
</div>
<div class="chapter" title="Chapter&nbsp;2.&nbsp;Available Services"><div class="titlepage"><div><div><h2 class="title"><a name="N200B8"></a>Chapter&nbsp;2.&nbsp;Available Services</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#N200C2">ArchiveServices</a></span></dt><dt><span class="section"><a href="#N200CB"></a></span></dt><dd><dl><dt><span class="section"><a href="#N200CD">ExecuteServices</a></span></dt></dl></dd></dl></div>
<p>List of available web services and their operations.</p>
<div class="section" title="ArchiveServices"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="N200C2"></a>ArchiveServices</h2></div></div></div>
<p>The ArchiveService bundles file packing operations. Its
WSDL is
located at
http://server:port/XServices/ArchiveService?wsdl</p>
</div>
<div class="section"><div class="titlepage"></div>
<div class="section" title="ExecuteServices"><div class="titlepage"><div><div><h3 class="title"><a name="N200CD"></a>ExecuteServices</h3></div></div></div>
<p>The ExecuteService bundles local and remote command
execution
operations. Its WSDL is located at
http://server:port/XServices/ExecuteService?wsdl</p>
<div class="section" title="runCommand"><div class="titlepage"><div><div><h4 class="title"><a name="N200D6"></a>runCommand</h4></div></div></div>
<p>Run an executable with arguments on the server providing
the
web
service. The command is run within the environment and
under the
user
privileges of the user who is running the Tomcat
Server.</p>
<div class="section"><div class="titlepage"><div><div><h5 class="title"><a name="N200DE"></a></h5></div></div></div>
<p></p>
<div class="table"><a name="N200E4"></a><p class="title"><b>Table&nbsp;2.1.&nbsp;runCommand input parameters</b></p><div class="table-contents">
<table summary="runCommand input parameters" border="1"><colgroup><col class="parameter"><col class="type"><col class="required"><col class="description"></colgroup><thead><tr><th>parameter</th><th>type</th><th>required</th><th>description</th></tr></thead><tbody><tr><td>executable</td><td>String</td><td>Yes</td><td>Command to be run. The command may be
specified with full
path using forward slash
"/" as path separator.
</td></tr><tr><td>argline</td><td>String</td><td>No</td><td>Any command line arguments</td></tr></tbody></table>
</div></div><br class="table-break">
<p></p>
</div>
</div>
</div>
</div>
</div>
<div class="chapter" title="Chapter&nbsp;3.&nbsp;XML Types"><div class="titlepage"><div><div><h2 class="title"><a name="N20139"></a>Chapter&nbsp;3.&nbsp;XML Types</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#N20143">AntProperty type</a></span></dt></dl></div>
<p>This chapter bundles the documentation for common xml types
used
by XServices web service.</p>
<div class="section" title="AntProperty type"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="N20143"></a>AntProperty type</h2></div></div></div>
<p>The AntProperty type defines a list of key/value pairs.</p>
<p>
The defining Java class is
<a class="ulink" href="javadoc/net/brutex/xservices/types/AntProperty.html" target="_top">
<code class="classname">net.brutex.xservices.types.AntProperty</code>
</a>
.
</p>
<pre class="programlisting">
&lt;xs:complexType name="antProperty"&gt;
&lt;xs:sequence&gt;
&lt;xs:element name="name" type="xs:string"/&gt;
&lt;xs:element name="value" type="xs:string"/&gt;
&lt;/xs:sequence&gt;
&lt;/xs:complexType&gt;
</pre>
<pre class="programlisting">
&lt;AntProperty&gt;
&lt;name&gt;key2&lt;/name&gt;
&lt;value&gt;value2&lt;/value&gt;
&lt;/AntProperty&gt;
</pre>
</div>
</div>
</div></body></html>

View File

@ -0,0 +1,210 @@
<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ExecuteServices</title><link href="corpstyle.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL-NS Stylesheets V1.76.1" name="generator"><link rel="home" href="index.html" title="Brutex XServices Documentation"><link rel="up" href="services.html" title="Chapter&nbsp;2.&nbsp;Available Services"><link rel="prev" href="services.html" title="Chapter&nbsp;2.&nbsp;Available Services"><link rel="next" href="fileservices.html" title="FileServices"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">ExecuteServices</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="services.html">Prev</a>&nbsp;</td><th align="center" width="60%">Chapter&nbsp;2.&nbsp;Available Services</th><td align="right" width="20%">&nbsp;<a accesskey="n" href="fileservices.html">Next</a></td></tr></table><hr></div><div class="breadcrumbs"><span class="breadcrumb-link"><a href="index.html">Brutex XServices Documentation</a></span> &gt; <span class="breadcrumb-link"><a href="services.html">Available Services</a></span> &gt; <span class="breadcrumb-node">ExecuteServices</span></div><div class="section" title="ExecuteServices"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="executeservices"></a>ExecuteServices</h2></div></div></div><p>The ExecuteService bundles local and remote command
execution operations. Its WSDL is located at
http://server:port/XServices/ExecuteService?wsdl</p><div class="section" title="rExec"><div class="titlepage"><div><div><h3 class="title"><a name="N10089"></a>rExec
</h3></div></div></div><p>provides remote execution facilities with authentication based on
user names and passwords.</p><div class="section" title="Input parameters"><div class="titlepage"><div><div><h4 class="title"><a name="N10092"></a>Input parameters
</h4></div></div></div><p></p><div class="table"><a name="N10096"></a><p class="title"><b>Table&nbsp;2.1.&nbsp;rExec
input parameters
</b></p><div class="table-contents"><table summary="rExec
input parameters
" border="1"><colgroup><col class="parameter"><col class="type"><col class="required"><col class="description"></colgroup><thead><tr><th>parameter</th><th>type</th><th>required</th><th>description</th></tr></thead><tbody><tr><td>host</td><td>HostConnection</td><td>Yes</td><td>
Host where to execute the command. See
<a class="link" href="xmltypes.html#hostconnection" title="HostConnection type">HostConnection</a>
.
</td></tr><tr><td>command</td><td>String</td><td>No</td><td>Any command including arguments</td></tr><tr><td>timeout</td><td>Long</td><td>Yes</td><td>Timeout in milliseconds. The command is forcefully terminated when timeout is reached.</td></tr></tbody></table></div></div><br class="table-break"><p></p></div><div class="section" title="Output parameters"><div class="titlepage"><div><div><h4 class="title"><a name="N100D4"></a>Output parameters
</h4></div></div></div><div class="section" title="ReturnCode type"><div class="titlepage"><div><div><h5 class="title"><a name="N100D7"></a>ReturnCode type</h5></div></div></div><p>
The ReturnCode type is used as the generic answer type for most of the
<span class="application">BruteXservices</span>
operations.
</p><p>
The defining Java class is
<a class="ulink" href="javadoc/net/brutex/xservices/types/ReturnCode.html" target="_top">
<code class="classname">net.brutex.xservices.types.ReturnCode</code>
</a>
.
</p><h4><a name="N100ED"></a>Schema definition</h4><pre class="programlisting">
&lt;xs:complexType name="ReturnCodeType"&gt;
&lt;xs:sequence&gt;
&lt;xs:element name="returnCode" type="xs:int"/&gt;
&lt;xs:element minOccurs="0" name="stdOut" type="xs:string"/&gt;
&lt;xs:element minOccurs="0" name="stdErr" type="xs:string"/&gt;
&lt;xs:element maxOccurs="unbounded" minOccurs="0" name="propertyList" nillable="true" type="<a class="link" href="">tns:antProperty</a>"/&gt;
&lt;/xs:sequence&gt;
&lt;/xs:complexType&gt;
</pre><h4><a name="N100F7"></a>Example XML</h4><pre class="programlisting">
&lt;ReturnCode
xmlns:ns2="http://ws.xservices.brutex.net"&gt;
&lt;returnCode&gt;0&lt;/returnCode&gt;
&lt;stdOut/&gt;
&lt;stdErr/&gt;
&lt;propertyList&gt;
<em class="lineannotation"><span class="lineannotation">
See
<a class="link" href="">tns:antProperty</a>
for details about the &lt;propertyList&gt; elements.
</span></em>
&lt;name&gt;key1&lt;/name&gt;
&lt;value&gt;value1&lt;/value&gt;
&lt;/propertyList&gt;
&lt;propertyList&gt;
&lt;name&gt;key2&lt;/name&gt;
&lt;value&gt;value2&lt;/value&gt;
&lt;/propertyList&gt;
&lt;/ReturnCode&gt;
</pre></div></div></div><div class="section" title="runCommand"><div class="titlepage"><div><div><h3 class="title"><a name="N10104"></a>runCommand</h3></div></div></div><p>Run an executable with arguments on the server providing the web
service. The command is run within the environment and under the user
privileges of the user who is running the Tomcat Server.</p><div class="section" title="Input parameters"><div class="titlepage"><div><div><h4 class="title"><a name="N1010D"></a>Input parameters
</h4></div></div></div><p></p><div class="table"><a name="N10111"></a><p class="title"><b>Table&nbsp;2.2.&nbsp;runCommand input parameters</b></p><div class="table-contents"><table summary="runCommand input parameters" border="1"><colgroup><col class="parameter"><col class="type"><col class="required"><col class="description"></colgroup><thead><tr><th>parameter</th><th>type</th><th>required</th><th>description</th></tr></thead><tbody><tr><td>executable</td><td>String</td><td>Yes</td><td>Command to be run. The command may be specified with full
path using forward slash "/" as path separator.</td></tr><tr><td>argline</td><td>String</td><td>No</td><td>Any command line arguments</td></tr><tr><td>timeout</td><td>Long</td><td>Yes</td><td>Timeout in milliseconds. The command is forcefully terminated when timeout is reached.</td></tr></tbody></table></div></div><br class="table-break"><p></p></div><div class="section" title="Output parameters"><div class="titlepage"><div><div><h4 class="title"><a name="N1014B"></a>Output parameters
</h4></div></div></div><div class="section" title="ReturnCode type"><div class="titlepage"><div><div><h5 class="title"><a name="N1014E"></a>ReturnCode type</h5></div></div></div><p>
The ReturnCode type is used as the generic answer type for most of the
<span class="application">BruteXservices</span>
operations.
</p><p>
The defining Java class is
<a class="ulink" href="javadoc/net/brutex/xservices/types/ReturnCode.html" target="_top">
<code class="classname">net.brutex.xservices.types.ReturnCode</code>
</a>
.
</p><h4><a name="N10164"></a>Schema definition</h4><pre class="programlisting">
&lt;xs:complexType name="ReturnCodeType"&gt;
&lt;xs:sequence&gt;
&lt;xs:element name="returnCode" type="xs:int"/&gt;
&lt;xs:element minOccurs="0" name="stdOut" type="xs:string"/&gt;
&lt;xs:element minOccurs="0" name="stdErr" type="xs:string"/&gt;
&lt;xs:element maxOccurs="unbounded" minOccurs="0" name="propertyList" nillable="true" type="<a class="link" href="">tns:antProperty</a>"/&gt;
&lt;/xs:sequence&gt;
&lt;/xs:complexType&gt;
</pre><h4><a name="N1016E"></a>Example XML</h4><pre class="programlisting">
&lt;ReturnCode
xmlns:ns2="http://ws.xservices.brutex.net"&gt;
&lt;returnCode&gt;0&lt;/returnCode&gt;
&lt;stdOut/&gt;
&lt;stdErr/&gt;
&lt;propertyList&gt;
<em class="lineannotation"><span class="lineannotation">
See
<a class="link" href="">tns:antProperty</a>
for details about the &lt;propertyList&gt; elements.
</span></em>
&lt;name&gt;key1&lt;/name&gt;
&lt;value&gt;value1&lt;/value&gt;
&lt;/propertyList&gt;
&lt;propertyList&gt;
&lt;name&gt;key2&lt;/name&gt;
&lt;value&gt;value2&lt;/value&gt;
&lt;/propertyList&gt;
&lt;/ReturnCode&gt;
</pre></div></div></div><div class="section" title="runCommandWithSSH"><div class="titlepage"><div><div><h3 class="title"><a name="N1017B"></a>runCommandWithSSH</h3></div></div></div><p>Executes a command through a SSH session.</p><div class="section" title="Input parameters"><div class="titlepage"><div><div><h4 class="title"><a name="N10184"></a>Input parameters
</h4></div></div></div><p></p><div class="table"><a name="N10188"></a><p class="title"><b>Table&nbsp;2.3.&nbsp;runCommandWithSSH input parameters</b></p><div class="table-contents"><table summary="runCommandWithSSH input parameters" border="1"><colgroup><col class="parameter"><col class="type"><col class="required"><col class="description"></colgroup><thead><tr><th>parameter</th><th>type</th><th>required</th><th>description</th></tr></thead><tbody><tr><td>host</td><td>HostConnection</td><td>Yes</td><td>
Host to connect to (see:
<a class="link" href="xmltypes.html#hostconnection" title="HostConnection type">tns:HostConnection</a>
)
</td></tr><tr><td>command</td><td>String</td><td>No</td><td>The command to execute.</td></tr><tr><td>timeout</td><td>Long</td><td>Yes</td><td>Timeout in milliseconds. The command is forcefully terminated when timeout is reached.</td></tr></tbody></table></div></div><br class="table-break"><p></p></div><div class="section" title="Output parameters"><div class="titlepage"><div><div><h4 class="title"><a name="N101C6"></a>Output parameters
</h4></div></div></div><div class="section" title="ReturnCode type"><div class="titlepage"><div><div><h5 class="title"><a name="N101C9"></a>ReturnCode type</h5></div></div></div><p>
The ReturnCode type is used as the generic answer type for most of the
<span class="application">BruteXservices</span>
operations.
</p><p>
The defining Java class is
<a class="ulink" href="javadoc/net/brutex/xservices/types/ReturnCode.html" target="_top">
<code class="classname">net.brutex.xservices.types.ReturnCode</code>
</a>
.
</p><h4><a name="N101DF"></a>Schema definition</h4><pre class="programlisting">
&lt;xs:complexType name="ReturnCodeType"&gt;
&lt;xs:sequence&gt;
&lt;xs:element name="returnCode" type="xs:int"/&gt;
&lt;xs:element minOccurs="0" name="stdOut" type="xs:string"/&gt;
&lt;xs:element minOccurs="0" name="stdErr" type="xs:string"/&gt;
&lt;xs:element maxOccurs="unbounded" minOccurs="0" name="propertyList" nillable="true" type="<a class="link" href="">tns:antProperty</a>"/&gt;
&lt;/xs:sequence&gt;
&lt;/xs:complexType&gt;
</pre><h4><a name="N101E9"></a>Example XML</h4><pre class="programlisting">
&lt;ReturnCode
xmlns:ns2="http://ws.xservices.brutex.net"&gt;
&lt;returnCode&gt;0&lt;/returnCode&gt;
&lt;stdOut/&gt;
&lt;stdErr/&gt;
&lt;propertyList&gt;
<em class="lineannotation"><span class="lineannotation">
See
<a class="link" href="">tns:antProperty</a>
for details about the &lt;propertyList&gt; elements.
</span></em>
&lt;name&gt;key1&lt;/name&gt;
&lt;value&gt;value1&lt;/value&gt;
&lt;/propertyList&gt;
&lt;propertyList&gt;
&lt;name&gt;key2&lt;/name&gt;
&lt;value&gt;value2&lt;/value&gt;
&lt;/propertyList&gt;
&lt;/ReturnCode&gt;
</pre></div></div><div class="section" title="Sample Request:"><div class="titlepage"><div><div><h4 class="title"><a name="N101F6"></a>Sample Request:</h4></div></div></div><pre class="programlisting">
&lt;ws:runCommandWithSSH&gt;
&lt;host&gt;
&lt;hostname&gt;ssh.brutex.net&lt;/hostname&gt;
&lt;port&gt;22&lt;/port&gt;
&lt;user&gt;roger&lt;/user&gt;
&lt;password&gt;xxx&lt;/password&gt;
&lt;/host&gt;
&lt;command&gt;ls /etc/&lt;/command&gt;
&lt;timeout&gt;30000&lt;/timeout&gt;
&lt;/ws:runCommandWithSSH&gt;
</pre></div></div><div class="section" title="telnet"><div class="titlepage"><div><div><h3 class="title"><a name="N101FC"></a>telnet</h3></div></div></div><p>Runs a telnet session with an "expect shell" like behaviour.</p><div class="section" title="Input parameters"><div class="titlepage"><div><div><h4 class="title"><a name="N10205"></a>Input parameters
</h4></div></div></div><p></p><div class="table"><a name="N10209"></a><p class="title"><b>Table&nbsp;2.4.&nbsp;telnet input parameters</b></p><div class="table-contents"><table summary="telnet input parameters" border="1"><colgroup><col class="parameter"><col class="type"><col class="required"><col class="description"></colgroup><thead><tr><th>parameter</th><th>type</th><th>required</th><th>description</th></tr></thead><tbody><tr><td>host</td><td>HostConnection</td><td>Yes</td><td>Host to connect to (see: <a class="link" href="xmltypes.html#hostconnection" title="HostConnection type">tns:HostConnection</a>)</td></tr><tr><td>prompt</td><td>String</td><td>No</td><td>The prompt string to expect after login. This is used to recognize when
the session is open.</td></tr><tr><td>command</td><td>String</td><td>No</td><td>The command to execute.</td></tr><tr><td>expect</td><td>String</td><td>No</td><td>The prompt to expect after the command has been executed successfully.</td></tr><tr><td>timeout</td><td>Long</td><td>Yes</td><td>Timeout in milliseconds. The command is forcefully terminated when timeout is reached.</td></tr></tbody></table></div></div><br class="table-break"><p></p></div><div class="section" title="Output parameters"><div class="titlepage"><div><div><h4 class="title"><a name="N10259"></a>Output parameters</h4></div></div></div><div class="section" title="ReturnCode type"><div class="titlepage"><div><div><h5 class="title"><a name="N1025C"></a>ReturnCode type</h5></div></div></div><p>
The ReturnCode type is used as the generic answer type for most of the
<span class="application">BruteXservices</span>
operations.
</p><p>
The defining Java class is
<a class="ulink" href="javadoc/net/brutex/xservices/types/ReturnCode.html" target="_top">
<code class="classname">net.brutex.xservices.types.ReturnCode</code>
</a>
.
</p><h4><a name="N10272"></a>Schema definition</h4><pre class="programlisting">
&lt;xs:complexType name="ReturnCodeType"&gt;
&lt;xs:sequence&gt;
&lt;xs:element name="returnCode" type="xs:int"/&gt;
&lt;xs:element minOccurs="0" name="stdOut" type="xs:string"/&gt;
&lt;xs:element minOccurs="0" name="stdErr" type="xs:string"/&gt;
&lt;xs:element maxOccurs="unbounded" minOccurs="0" name="propertyList" nillable="true" type="<a class="link" href="">tns:antProperty</a>"/&gt;
&lt;/xs:sequence&gt;
&lt;/xs:complexType&gt;
</pre><h4><a name="N1027C"></a>Example XML</h4><pre class="programlisting">
&lt;ReturnCode
xmlns:ns2="http://ws.xservices.brutex.net"&gt;
&lt;returnCode&gt;0&lt;/returnCode&gt;
&lt;stdOut/&gt;
&lt;stdErr/&gt;
&lt;propertyList&gt;
<em class="lineannotation"><span class="lineannotation">
See
<a class="link" href="">tns:antProperty</a>
for details about the &lt;propertyList&gt; elements.
</span></em>
&lt;name&gt;key1&lt;/name&gt;
&lt;value&gt;value1&lt;/value&gt;
&lt;/propertyList&gt;
&lt;propertyList&gt;
&lt;name&gt;key2&lt;/name&gt;
&lt;value&gt;value2&lt;/value&gt;
&lt;/propertyList&gt;
&lt;/ReturnCode&gt;
</pre></div></div><div class="section" title="Sample Request:"><div class="titlepage"><div><div><h4 class="title"><a name="N10289"></a>Sample Request:</h4></div></div></div><pre class="programlisting">
&lt;ws:telnet&gt;
&lt;host&gt;
&lt;hostname&gt;localhost&lt;/hostname&gt;
&lt;port&gt;23&lt;/port&gt;
&lt;user&gt;brosenberger&lt;/user&gt;
&lt;password&gt;&lt;/password&gt;
&lt;/host&gt;
&lt;prompt&gt;C:\Users\brosenberger&amp;gt;&lt;/prompt&gt;
&lt;command&gt;dir c:\temp&lt;/command&gt;
&lt;expect&gt;enberger&amp;gt;&lt;/expect&gt;
&lt;timeout&gt;60000&lt;/timeout&gt;
&lt;/ws:telnet&gt;
</pre></div></div></div><div class="navfooter"><hr><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="services.html">Prev</a>&nbsp;</td><td align="center" width="20%"><a accesskey="u" href="services.html">Up</a></td><td align="right" width="40%">&nbsp;<a accesskey="n" href="fileservices.html">Next</a></td></tr><tr><td valign="top" align="left" width="40%">Chapter&nbsp;2.&nbsp;Available Services&nbsp;</td><td align="center" width="20%"><a accesskey="h" href="index.html">Home</a></td><td valign="top" align="right" width="40%">&nbsp;FileServices</td></tr></table></div></body></html>

View File

@ -0,0 +1,2 @@
<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>FileServices</title><link href="corpstyle.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL-NS Stylesheets V1.76.1" name="generator"><link rel="home" href="index.html" title="Brutex XServices Documentation"><link rel="up" href="services.html" title="Chapter&nbsp;2.&nbsp;Available Services"><link rel="prev" href="executeservices.html" title="ExecuteServices"><link rel="next" href="miscservices.html" title="MiscServices"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">FileServices</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="executeservices.html">Prev</a>&nbsp;</td><th align="center" width="60%">Chapter&nbsp;2.&nbsp;Available Services</th><td align="right" width="20%">&nbsp;<a accesskey="n" href="miscservices.html">Next</a></td></tr></table><hr></div><div class="breadcrumbs"><span class="breadcrumb-link"><a href="index.html">Brutex XServices Documentation</a></span> &gt; <span class="breadcrumb-link"><a href="services.html">Available Services</a></span> &gt; <span class="breadcrumb-node">FileServices</span></div><div class="section" title="FileServices"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="fileservices"></a>FileServices</h2></div></div></div><p>The FileServces bundles various file operations. Its WSDL is located at
http://server:port/XServices/FileService?wsdl</p></div><div class="navfooter"><hr><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="executeservices.html">Prev</a>&nbsp;</td><td align="center" width="20%"><a accesskey="u" href="services.html">Up</a></td><td align="right" width="40%">&nbsp;<a accesskey="n" href="miscservices.html">Next</a></td></tr><tr><td valign="top" align="left" width="40%">ExecuteServices&nbsp;</td><td align="center" width="20%"><a accesskey="h" href="index.html">Home</a></td><td valign="top" align="right" width="40%">&nbsp;MiscServices</td></tr></table></div></body></html>

48
doc/html/index.html Normal file
View File

@ -0,0 +1,48 @@
<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Brutex XServices Documentation</title><link href="corpstyle.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL-NS Stylesheets V1.76.1" name="generator"><meta name="description" content="Abstract In complex IT environments it is necessary to integrate different information systems with each other, exchange data between tools and automate actions and function calls depending on events arising from user interaction. To meet the requirements of integration building usually means to implement APIs and to create tool-to-tool bridges. Web Services can help to clean up bridges into interfaces as well as to abstract functions from their underlying platform and implementation. These are the major goals of the loosely coupled integration strategy which is in turn one essential idea of a service-oriented architecture (SOA). provide a low level set of functions and web services. These can be orchestrated into services and used in business processes which make up the execution part of a SOA environment. is an add-on to XBridgeNG 2.0. It runs standalone or in combination with XBridgeNG. Pure XBridgeNG has two components: XML Schema for item based data types (e.g. tickets from a bug tracker system or a database record)Set of Apache Ant tasks to function as a bridge between the XBridgeNG XML format at legacy 3rd party software (e.g. HP Quality Center, Serena TeamTrack, ...)The add Web Services (SOAP) wrapper around Apache Ant tasks (since XBridgeNG 2.0) The current focus is on file-based operations. do not contain an integration server or a process execution engine."><link rel="home" href="index.html" title="Brutex XServices Documentation"><link rel="next" href="installation.html" title="Chapter&nbsp;1.&nbsp;Getting started"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">Brutex XServices Documentation</th></tr><tr><td align="left" width="20%">&nbsp;</td><th align="center" width="60%">&nbsp;</th><td align="right" width="20%">&nbsp;<a accesskey="n" href="installation.html">Next</a></td></tr></table><hr></div><div class="breadcrumbs"><span class="breadcrumb-node">Brutex XServices Documentation</span></div><div class="book" title="Brutex XServices Documentation"><div class="titlepage"><div><div><h1 class="title"><a name="N10001"></a>Brutex XServices Documentation</h1></div><div><div class="author"><h3 class="author"><span class="firstname">Brian</span> <span class="surname">Rosenberger</span></h3><code class="email">&lt;<a class="email" href="mailto:bru@brutex.de">bru@brutex.de</a>&gt;</code></div></div><div><p class="copyright">Copyright &copy; 2011 </p></div><div><div class="legalnotice" title="Legal Notice"><a name="N10017"></a><p>
The copyright holders make no representation about the suitability
of this document for any purpose. It is provided
<span class="quote">&ldquo;<span class="quote">as is</span>&rdquo;</span>
without expressed or implied warranty.
</p></div></div><div><div class="legalnotice" title="Legal Notice"><a name="N1001D"></a><p>Apache Tomcat and Apache Ant are trademarks of the Apache
Software Foundation.</p></div></div><div><div class="abstract" title="Abstract"><p class="title"><b>Abstract</b></p><p>In complex IT environments it is necessary to integrate
different information systems with each other, exchange data
between
tools and automate actions and function calls depending
on events
arising from user interaction. To meet the requirements
of
integration building usually means to implement APIs and to
create
tool-to-tool bridges. Web Services can help to clean up
bridges into
interfaces as well as to abstract functions from
their underlying
platform and implementation.</p><p>These are the major goals of the loosely coupled
integration
strategy which is in turn one essential idea of a
service-oriented
architecture (SOA).</p><p>provide a low level set of functions and web services.
These can
be orchestrated into services and used in business
processes which
make up the execution part of a SOA
environment.</p><p>is an add-on to XBridgeNG 2.0. It runs standalone or in
combination with XBridgeNG. Pure XBridgeNG has two
components:</p><p>
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>XML Schema for item based data types (e.g. tickets
from a bug
tracker system or a database record)</p></li><li class="listitem"><p>Set of Apache Ant tasks to function as a bridge
between the
XBridgeNG XML format at legacy 3rd party
software (e.g. HP Quality
Center, Serena TeamTrack,
...)</p></li><li class="listitem"><p>The add Web Services (SOAP) wrapper around Apache Ant
tasks
(since XBridgeNG 2.0)</p></li></ul></div><p>
</p><p>The current focus is on file-based operations. do not
contain an
integration server or a process execution
engine.</p></div></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="installation.html">1. Getting started</a></span></dt><dd><dl><dt><span class="section"><a href="installation.html#N10042"></a></span></dt><dd><dl><dt><span class="section"><a href="installation.html#N10048">Installation</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="services.html">2. Available Services</a></span></dt><dd><dl><dt><span class="section"><a href="services.html#archiveservices">ArchiveServices</a></span></dt><dt><span class="section"><a href="executeservices.html">ExecuteServices</a></span></dt><dd><dl><dt><span class="section"><a href="executeservices.html#N10089">rExec
</a></span></dt><dt><span class="section"><a href="executeservices.html#N10104">runCommand</a></span></dt><dt><span class="section"><a href="executeservices.html#N1017B">runCommandWithSSH</a></span></dt><dt><span class="section"><a href="executeservices.html#N101FC">telnet</a></span></dt></dl></dd><dt><span class="section"><a href="fileservices.html">FileServices</a></span></dt><dt><span class="section"><a href="miscservices.html">MiscServices</a></span></dt></dl></dd><dt><span class="chapter"><a href="xmltypes.html">3. XML Types</a></span></dt><dd><dl><dt><span class="section"><a href="xmltypes.html#N102AA"></a></span></dt><dd><dl><dt><span class="section"><a href="xmltypes.html#N102B0">AntProperty type</a></span></dt><dt><span class="section"><a href="xmltypes.html#N102C5">FileResource type</a></span></dt><dt><span class="section"><a href="xmltypes.html#hostconnection">HostConnection type</a></span></dt><dt><span class="section"><a href="xmltypes.html#patternelement">PatternElement type</a></span></dt><dt><span class="section"><a href="xmltypes.html#patternsettype">PatternSetType type</a></span></dt><dt><span class="section"><a href="xmltypes.html#N10367">ReturnCode type</a></span></dt><dt><span class="section"><a href="xmltypes.html#selectortype">SelectorType type</a></span></dt></dl></dd></dl></dd></dl></div><div class="list-of-tables"><p><b>List of Tables</b></p><dl><dt>2.1. <a href="executeservices.html#N10096">rExec
input parameters
</a></dt><dt>2.2. <a href="executeservices.html#N10111">runCommand input parameters</a></dt><dt>2.3. <a href="executeservices.html#N10188">runCommandWithSSH input parameters</a></dt><dt>2.4. <a href="executeservices.html#N10209">telnet input parameters</a></dt></dl></div></div><div class="navfooter"><hr><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%">&nbsp;</td><td align="center" width="20%">&nbsp;</td><td align="right" width="40%">&nbsp;<a accesskey="n" href="installation.html">Next</a></td></tr><tr><td valign="top" align="left" width="40%">&nbsp;</td><td align="center" width="20%">&nbsp;</td><td valign="top" align="right" width="40%">&nbsp;Chapter&nbsp;1.&nbsp;Getting started</td></tr></table></div></body></html>

View File

@ -0,0 +1,34 @@
<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Chapter&nbsp;1.&nbsp;Getting started</title><link href="corpstyle.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL-NS Stylesheets V1.76.1" name="generator"><link rel="home" href="index.html" title="Brutex XServices Documentation"><link rel="up" href="index.html" title="Brutex XServices Documentation"><link rel="prev" href="index.html" title="Brutex XServices Documentation"><link rel="next" href="services.html" title="Chapter&nbsp;2.&nbsp;Available Services"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">Chapter&nbsp;1.&nbsp;Getting started</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="index.html">Prev</a>&nbsp;</td><th align="center" width="60%">&nbsp;</th><td align="right" width="20%">&nbsp;<a accesskey="n" href="services.html">Next</a></td></tr></table><hr></div><div class="breadcrumbs"><span class="breadcrumb-link"><a href="index.html">Brutex XServices Documentation</a></span> &gt; <span class="breadcrumb-node">Getting started</span></div><div class="chapter" title="Chapter&nbsp;1.&nbsp;Getting started"><div class="titlepage"><div><div><h2 class="title"><a name="installation"></a>Chapter&nbsp;1.&nbsp;Getting started</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="installation.html#N10042"></a></span></dt><dd><dl><dt><span class="section"><a href="installation.html#N10048">Installation</a></span></dt></dl></dd></dl></div><p>This chapter describes the installation.</p><div class="section"><div class="titlepage"></div><div class="section" title="Installation"><div class="titlepage"><div><div><h3 class="title"><a name="N10048"></a>Installation</h3></div></div></div><p>tbd.</p><p>Sun Java SE 1.6.0</p><p>Apache Tomcat 7</p><p>tbd.</p><p>In short: Deploy .WAR file to Apache Tomcat</p><div class="section" title="Securing with Basic Authentication"><div class="titlepage"><div><div><h4 class="title"><a name="N10055"></a>Securing with Basic Authentication</h4></div></div></div><p>There is a quick guide explaining Basic Authentication for Tomcat here: <a class="link" href="http://oreilly.com/pub/a/java/archive/tomcat-tips.html?page=1" target="_top">
http://oreilly.com/pub/a/java/archive/tomcat-tips.html?page=1</a>
</p><p>
</p></div><div class="section" title="Limit access to"><div class="titlepage"><div><div><h4 class="title"><a name="N10060"></a>Limit access to</h4></div></div></div><p>Sometimes you'll only want to restrict access to to
only
specified host names or IP addresses. This way, only
clients at
those specified addresses can use the web services.
Tomcat provides
two configuration values for that:
RemoteHostValve and
RemoteAddrValve.</p><p>These Valves allow you to filter requests by host name or
by IP
address, and to allow or deny hosts that match. The
example below
restricts access to the ArchiveService from any
machine that is not
the local host.</p><pre class="programlisting">&lt;Context
path="/XService/ArchiveService"
...&gt; &lt;Valve
className="org.apache.catalina.valves.RemoteAddrValve"
allow="127.0.0.1" deny=""/&gt; &lt;/Context&gt;
</pre><p>If no allow pattern is given, then patterns that match
the deny
attribute patterns will be rejected, and all others
will be allowed.
Similarly, if no deny pattern is given,
patterns that match the
allow attribute will be allowed, and
all others will be denied.
</p><p>The &lt;context&gt; element must be placed into the
server.xml
file (into &lt;engine&gt;&lt;host&gt;).</p></div></div></div></div><div class="navfooter"><hr><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="index.html">Prev</a>&nbsp;</td><td align="center" width="20%">&nbsp;</td><td align="right" width="40%">&nbsp;<a accesskey="n" href="services.html">Next</a></td></tr><tr><td valign="top" align="left" width="40%">Brutex XServices Documentation&nbsp;</td><td align="center" width="20%"><a accesskey="h" href="index.html">Home</a></td><td valign="top" align="right" width="40%">&nbsp;Chapter&nbsp;2.&nbsp;Available Services</td></tr></table></div></body></html>

View File

@ -0,0 +1,2 @@
<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>MiscServices</title><link href="corpstyle.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL-NS Stylesheets V1.76.1" name="generator"><link rel="home" href="index.html" title="Brutex XServices Documentation"><link rel="up" href="services.html" title="Chapter&nbsp;2.&nbsp;Available Services"><link rel="prev" href="fileservices.html" title="FileServices"><link rel="next" href="xmltypes.html" title="Chapter&nbsp;3.&nbsp;XML Types"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">MiscServices</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="fileservices.html">Prev</a>&nbsp;</td><th align="center" width="60%">Chapter&nbsp;2.&nbsp;Available Services</th><td align="right" width="20%">&nbsp;<a accesskey="n" href="xmltypes.html">Next</a></td></tr></table><hr></div><div class="breadcrumbs"><span class="breadcrumb-link"><a href="index.html">Brutex XServices Documentation</a></span> &gt; <span class="breadcrumb-link"><a href="services.html">Available Services</a></span> &gt; <span class="breadcrumb-node">MiscServices</span></div><div class="section" title="MiscServices"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="miscservices"></a>MiscServices</h2></div></div></div><p>The MiscService bundles various operations. Its WSDL is located at
http://server:port/XServices/MiscService?wsdl</p></div><div class="navfooter"><hr><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="fileservices.html">Prev</a>&nbsp;</td><td align="center" width="20%"><a accesskey="u" href="services.html">Up</a></td><td align="right" width="40%">&nbsp;<a accesskey="n" href="xmltypes.html">Next</a></td></tr><tr><td valign="top" align="left" width="40%">FileServices&nbsp;</td><td align="center" width="20%"><a accesskey="h" href="index.html">Home</a></td><td valign="top" align="right" width="40%">&nbsp;Chapter&nbsp;3.&nbsp;XML Types</td></tr></table></div></body></html>

5
doc/html/services.html Normal file
View File

@ -0,0 +1,5 @@
<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Chapter&nbsp;2.&nbsp;Available Services</title><link href="corpstyle.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL-NS Stylesheets V1.76.1" name="generator"><link rel="home" href="index.html" title="Brutex XServices Documentation"><link rel="up" href="index.html" title="Brutex XServices Documentation"><link rel="prev" href="installation.html" title="Chapter&nbsp;1.&nbsp;Getting started"><link rel="next" href="executeservices.html" title="ExecuteServices"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">Chapter&nbsp;2.&nbsp;Available Services</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="installation.html">Prev</a>&nbsp;</td><th align="center" width="60%">&nbsp;</th><td align="right" width="20%">&nbsp;<a accesskey="n" href="executeservices.html">Next</a></td></tr></table><hr></div><div class="breadcrumbs"><span class="breadcrumb-link"><a href="index.html">Brutex XServices Documentation</a></span> &gt; <span class="breadcrumb-node">Available Services</span></div><div class="chapter" title="Chapter&nbsp;2.&nbsp;Available Services"><div class="titlepage"><div><div><h2 class="title"><a name="services"></a>Chapter&nbsp;2.&nbsp;Available Services</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="services.html#archiveservices">ArchiveServices</a></span></dt><dt><span class="section"><a href="executeservices.html">ExecuteServices</a></span></dt><dd><dl><dt><span class="section"><a href="executeservices.html#N10089">rExec
</a></span></dt><dt><span class="section"><a href="executeservices.html#N10104">runCommand</a></span></dt><dt><span class="section"><a href="executeservices.html#N1017B">runCommandWithSSH</a></span></dt><dt><span class="section"><a href="executeservices.html#N101FC">telnet</a></span></dt></dl></dd><dt><span class="section"><a href="fileservices.html">FileServices</a></span></dt><dt><span class="section"><a href="miscservices.html">MiscServices</a></span></dt></dl></div><p>List of available web services and their operations.</p><div class="section" title="ArchiveServices"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="archiveservices"></a>ArchiveServices</h2></div></div></div><p>The ArchiveService bundles file packing operations. Its
WSDL is
located at
http://server:port/XServices/ArchiveService?wsdl</p></div></div><div class="navfooter"><hr><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="installation.html">Prev</a>&nbsp;</td><td align="center" width="20%">&nbsp;</td><td align="right" width="40%">&nbsp;<a accesskey="n" href="executeservices.html">Next</a></td></tr><tr><td valign="top" align="left" width="40%">Chapter&nbsp;1.&nbsp;Getting started&nbsp;</td><td align="center" width="20%"><a accesskey="h" href="index.html">Home</a></td><td valign="top" align="right" width="40%">&nbsp;ExecuteServices</td></tr></table></div></body></html>

160
doc/html/xmltypes.html Normal file
View File

@ -0,0 +1,160 @@
<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Chapter&nbsp;3.&nbsp;XML Types</title><link href="corpstyle.css" type="text/css" rel="stylesheet"><meta content="DocBook XSL-NS Stylesheets V1.76.1" name="generator"><link rel="home" href="index.html" title="Brutex XServices Documentation"><link rel="up" href="index.html" title="Brutex XServices Documentation"><link rel="prev" href="miscservices.html" title="MiscServices"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">Chapter&nbsp;3.&nbsp;XML Types</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="miscservices.html">Prev</a>&nbsp;</td><th align="center" width="60%">&nbsp;</th><td align="right" width="20%">&nbsp;</td></tr></table><hr></div><div class="breadcrumbs"><span class="breadcrumb-link"><a href="index.html">Brutex XServices Documentation</a></span> &gt; <span class="breadcrumb-node">XML Types</span></div><div class="chapter" title="Chapter&nbsp;3.&nbsp;XML Types"><div class="titlepage"><div><div><h2 class="title"><a name="xmltypes"></a>Chapter&nbsp;3.&nbsp;XML Types</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="xmltypes.html#N102AA"></a></span></dt><dd><dl><dt><span class="section"><a href="xmltypes.html#N102B0">AntProperty type</a></span></dt><dt><span class="section"><a href="xmltypes.html#N102C5">FileResource type</a></span></dt><dt><span class="section"><a href="xmltypes.html#hostconnection">HostConnection type</a></span></dt><dt><span class="section"><a href="xmltypes.html#patternelement">PatternElement type</a></span></dt><dt><span class="section"><a href="xmltypes.html#patternsettype">PatternSetType type</a></span></dt><dt><span class="section"><a href="xmltypes.html#N10367">ReturnCode type</a></span></dt><dt><span class="section"><a href="xmltypes.html#selectortype">SelectorType type</a></span></dt></dl></dd></dl></div><p>This chapter bundles the documentation for common XML types used
by XServices web service.</p><div class="section"><div class="titlepage"></div><div class="section" title="AntProperty type"><div class="titlepage"><div><div><h3 class="title"><a name="N102B0"></a>AntProperty type</h3></div></div></div><p>The AntProperty type defines a list of key/value pairs.</p><p>
The defining Java class is
<a class="ulink" href="javadoc/net/brutex/xservices/types/AntProperty.html" target="_top">
<code class="classname">net.brutex.xservices.types.AntProperty</code>
</a>
.
</p><pre class="programlisting">
&lt;xs:complexType name="antProperty"&gt;
&lt;xs:sequence&gt;
&lt;xs:element name="name" type="xs:string"/&gt;
&lt;xs:element name="value" type="xs:string"/&gt;
&lt;/xs:sequence&gt;
&lt;/xs:complexType&gt;
</pre><pre class="programlisting">
&lt;AntProperty&gt;
&lt;name&gt;key2&lt;/name&gt;
&lt;value&gt;value2&lt;/value&gt;
&lt;/AntProperty&gt;
</pre></div><div class="section" title="FileResource type"><div class="titlepage"><div><div><h3 class="title"><a name="N102C5"></a>FileResource type</h3></div></div></div><p>The FileResource type defines an URI to a file with optional on-the-fly decompression.</p><p>
The defining Java class is
<a class="ulink" href="javadoc/net/brutex/xservices/types/FileResource.html" target="_top">
<code class="classname">net.brutex.xservices.types.FileResource</code>
</a>
.
</p><pre class="programlisting">
&lt;xs:complexType name="FileResourceType"&gt;
&lt;xs:sequence&gt;
&lt;xs:element default="FILE" name="type" type="tns:type"/&gt;
&lt;xs:element name="uri" type="xs:string"/&gt;
&lt;/xs:sequence&gt;
&lt;/xs:complexType&gt;
</pre><p>Available types:</p><p>FILE: URI points to a local file resource. Examples: c:\temp\something.txt, c:/dir/another.file, /home/brian/file</p><p>URL: File from URL (http, https, ftp, ...). Example: http://brutex.net/file.pdf</p><p>GZIP and BZIP2: File from a local file system with on-the-fly decompression.</p><pre class="programlisting">
&lt;resource&gt;
&lt;type&gt;FILE&lt;/type&gt;
&lt;uri&gt;c:\temp\xservices.war&lt;/uri&gt;
&lt;/resource&gt;
</pre></div><div class="section" title="HostConnection type"><div class="titlepage"><div><div><h3 class="title"><a name="hostconnection"></a>HostConnection type</h3></div></div></div><p>The HostConnection type identifies a server resource and login
credentials.</p><p>
The defining Java class is
<a class="ulink" href="javadoc/net/brutex/xservices/types/HostConnection.html" target="_top">
<code class="classname">net.brutex.xservices.types.HostConnection</code>
</a>
.
</p><h4><a name="N102F5"></a>Schema definition</h4><pre class="programlisting">
&lt;xs:complexType name="connection"&gt;
&lt;xs:sequence&gt;
&lt;xs:element name="hostname" type="xs:string"/&gt;
&lt;xs:element name="port" type="xs:int"/&gt;
&lt;xs:element minOccurs="0" name="user" type="xs:string"/&gt;
&lt;xs:element minOccurs="0" name="password" type="xs:string"/&gt;
&lt;/xs:sequence&gt;
&lt;/xs:complexType&gt;
</pre><h4><a name="N102FB"></a>Example XML</h4><pre class="programlisting">
&lt;host&gt;
&lt;hostname&gt;server.brutex.net&lt;/hostname&gt;
&lt;port&gt;512&lt;/port&gt; &lt;!-- default rExec port --&gt;
&lt;user&gt;brian&lt;/user&gt;
&lt;!--Optional:--&gt;
&lt;password&gt;somepass&lt;/password&gt;
&lt;/host&gt;
</pre></div><div class="section" title="PatternElement type"><div class="titlepage"><div><div><h3 class="title"><a name="patternelement"></a>PatternElement type</h3></div></div></div><p>The PatternElement type defines single string pattern for file/
directory matching.</p><p>
The defining Java class is
<a class="ulink" href="javadoc/net/brutex/xservices/types/PatternElement.html" target="_top">
<code class="classname">net.brutex.xservices.types.PatternElement</code>
</a>
.
</p><p>
These patterns look exactly like those used in Apache Ant
<a class="ulink" href="http://ant.apache.org/manual/dirtasks.html#patterns" target="_top">Patterns</a>.
The '*' matches zero or more characters and the
'?' will match a single character.
Both symbols can be combined in one pattern. The '**'
symbol can be used to match any directory deepth.
</p><p>Some example patterns:</p><p>
<em class="parameter"><code>**/mydir/**</code></em>
</p><p>Match all file that are located in any directory that has
"mydir" string in its pathname. Also applies to files with
"mydir" in their name.</p><p>
<em class="parameter"><code>/mydir/</code></em>
</p><p>The
parser will automatically append an '**' symbol, thus the
resulting pattern is
<em class="parameter"><code>/mydir/**</code></em>.
All files below the "/mydir/" directory (including its
sub-directories will be chosen.
</p><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td valign="top" align="center" rowspan="2" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td valign="top" align="left"><p>The pattern is OS independent. You should always use
"/" as path separator, even on windows based systems.
</p></td></tr></table></div><h4><a name="N10330"></a>Schema definition</h4><pre class="programlisting">&lt;xs:simpleType name="patternElement"&gt;
&lt;xs:restriction base="xs:string"/&gt;
&lt;/xs:simpleType&gt;</pre><h4><a name="N10336"></a>Example XML</h4><pre class="programlisting">&lt;PatternElement&gt;**/*&lt;/PatternElement&gt;</pre></div><div class="section" title="PatternSetType type"><div class="titlepage"><div><div><h3 class="title"><a name="patternsettype"></a>PatternSetType type</h3></div></div></div><p>The PatternSetType exposes various filters/ selectors for the
selection of resources (files).</p><p>
The defining Java class is
<a class="ulink" href="javadoc/net/brutex/xservices/types/PatternSetType.html" target="_top">
<code class="classname">net.brutex.xservices.types.PatternSetType</code>
</a>
.
</p><h4><a name="N1034F"></a>Schema definition</h4><pre class="programlisting">
&lt;xs:complexType name="patternSetType"&gt;
&lt;xs:sequence&gt;
&lt;xs:element default="**/*" maxOccurs="unbounded" minOccurs="0" name="include" type="<a class="link" href="xmltypes.html#patternelement" title="PatternElement type">tns:patternElement</a>"/&gt;
&lt;xs:element maxOccurs="unbounded" minOccurs="0" name="exclude" type="<a class="link" href="xmltypes.html#patternelement" title="PatternElement type">tns:patternElement</a>"/&gt;
&lt;xs:element minOccurs="0" name="selector" nillable="true" type="<a class="link" href="xmltypes.html#selectortype" title="SelectorType type">tns:selectorType</a>"/&gt;
&lt;/xs:sequence&gt;
&lt;/xs:complexType&gt;
</pre><h4><a name="N10361"></a>Example XML</h4><pre class="programlisting">
tbd.
</pre></div><div class="section" title="ReturnCode type"><div class="titlepage"><div><div><h3 class="title"><a name="N10367"></a>ReturnCode type</h3></div></div></div><p>
The ReturnCode type is used as the generic answer type for most of the
<span class="application">BruteXservices</span>
operations.
</p><p>
The defining Java class is
<a class="ulink" href="javadoc/net/brutex/xservices/types/ReturnCode.html" target="_top">
<code class="classname">net.brutex.xservices.types.ReturnCode</code>
</a>
.
</p><h4><a name="N1037D"></a>Schema definition</h4><pre class="programlisting">
&lt;xs:complexType name="ReturnCodeType"&gt;
&lt;xs:sequence&gt;
&lt;xs:element name="returnCode" type="xs:int"/&gt;
&lt;xs:element minOccurs="0" name="stdOut" type="xs:string"/&gt;
&lt;xs:element minOccurs="0" name="stdErr" type="xs:string"/&gt;
&lt;xs:element maxOccurs="unbounded" minOccurs="0" name="propertyList" nillable="true" type="<a class="link" href="">tns:antProperty</a>"/&gt;
&lt;/xs:sequence&gt;
&lt;/xs:complexType&gt;
</pre><h4><a name="N10387"></a>Example XML</h4><pre class="programlisting">
&lt;ReturnCode
xmlns:ns2="http://ws.xservices.brutex.net"&gt;
&lt;returnCode&gt;0&lt;/returnCode&gt;
&lt;stdOut/&gt;
&lt;stdErr/&gt;
&lt;propertyList&gt;
<em class="lineannotation"><span class="lineannotation">
See
<a class="link" href="">tns:antProperty</a>
for details about the &lt;propertyList&gt; elements.
</span></em>
&lt;name&gt;key1&lt;/name&gt;
&lt;value&gt;value1&lt;/value&gt;
&lt;/propertyList&gt;
&lt;propertyList&gt;
&lt;name&gt;key2&lt;/name&gt;
&lt;value&gt;value2&lt;/value&gt;
&lt;/propertyList&gt;
&lt;/ReturnCode&gt;
</pre></div><div class="section" title="SelectorType type"><div class="titlepage"><div><div><h3 class="title"><a name="selectortype"></a>SelectorType type</h3></div></div></div><p>The SelectorType exposes various selectors for the selection of resources (files).</p><p>The defining Java class is
<a class="ulink" href="javadoc/net/brutex/xservices/types/SelectorType.html" target="_top">
<code class="classname">net.brutex.xservices.types.SelectorType</code></a>.</p><h4><a name="N103A6"></a>Schema definition</h4><pre class="programlisting">
&lt;xs:complexType abstract="true" name="selectorType"&gt;
&lt;xs:sequence&gt;
&lt;xs:element maxOccurs="unbounded" minOccurs="0" name="contains" nillable="true" type="tns:containsSelectorType"/&gt;
&lt;/xs:sequence&gt;
&lt;/xs:complexType&gt;
</pre><h4><a name="N103AC"></a>Example XML</h4><pre class="programlisting">
tbd.
</pre></div></div></div><div class="navfooter"><hr><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="miscservices.html">Prev</a>&nbsp;</td><td align="center" width="20%">&nbsp;</td><td align="right" width="40%">&nbsp;</td></tr><tr><td valign="top" align="left" width="40%">MiscServices&nbsp;</td><td align="center" width="20%"><a accesskey="h" href="index.html">Home</a></td><td valign="top" align="right" width="40%">&nbsp;</td></tr></table></div></body></html>

View File

@ -29,6 +29,25 @@ public class BrutexNamespaces {
* Brutex Network XServices web service name space declaration * Brutex Network XServices web service name space declaration
*/ */
public static final String WS_XSERVICES = "http://ws.xservices.brutex.net"; public static final String WS_XSERVICES = "http://ws.xservices.brutex.net";
/**
* Copyright and license agreement statement.
*/
public static final String BRUTEX_COPYRIGHT = "" +
"/*\n" +
"* Copyright 2010 Brian Rosenberger (Brutex Network)\n" +
"*\n" +
"* Licensed under the Apache License, Version 2.0 (the \"License\")\n" +
"* you may not use this file except in compliance with the License.\n" +
"* You may obtain a copy of the License at\n" +
"*\n" +
"* http://www.apache.org/licenses/LICENSE-2.0\n" +
"*\n" +
"* Unless required by applicable law or agreed to in writing, software\n" +
"* distributed under the License is distributed on an \"AS IS\" BASIS,\n" +
"* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n" +
"* See the License for the specific language governing permissions and\n" +
"* limitations under the License.\n" +
"*/";
private BrutexNamespaces() {}; private BrutexNamespaces() {};

View File

@ -0,0 +1,65 @@
/*
* Copyright 2011 Brian Rosenberger (Brutex Network)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package net.brutex.xservices.util;
/**
* Holds static documentation.
*
*
* @author Brian Rosenberger, bru@brutex.de
*/
public class XServicesDocumentation {
public static final String BRUTEX_COPYRIGHT = "" +
"/*\n" +
"* Copyright 2010 Brian Rosenberger (Brutex Network)\n" +
"*\n" +
"* Licensed under the Apache License, Version 2.0 (the \"License\")\n" +
"* you may not use this file except in compliance with the License.\n" +
"* You may obtain a copy of the License at\n" +
"*\n" +
"* http://www.apache.org/licenses/LICENSE-2.0\n" +
"*\n" +
"* Unless required by applicable law or agreed to in writing, software\n" +
"* distributed under the License is distributed on an \"AS IS\" BASIS,\n" +
"* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n" +
"* See the License for the specific language governing permissions and\n" +
"* limitations under the License.\n" +
"*/";
public static final String SERVICE_OPERATION_DOWNLOADFILE = "Download a file from the maschine where the service is running in order " +
"to process it with the client. The file is either downloaded as a MTOM attachment or " +
"as inline base64 encoded block. Keep in mind that unless you are using MTOM, a lot of " +
"java heap memory is used.";
public static final String SERVICE_OPERATION_UPLOADFILE = "Send a file from client to web service server using either " +
"MTOM attachment or base64 inline attachment.";
public static final String SERVICE_OPERATION_COPY = "Copies a fileset locally on the server.";
public static final String SERVICE_OPERATION_COPYFILE = "Copies a single file locally on the server";
public static final String SERVICE_OPERATION_LOADRESOURCE = "Load the content of a resource";
public static final String SERVICE_OPERATION_LOADRESOURCEFROMARCHIVE = "Load the content of a resource";
public static final String SERVICE_OPERATION_ECHOTOFILE = "Write or append a string to a file";
private XServicesDocumentation() {};
}

View File

@ -1,11 +1,32 @@
/*
* Copyright 2010 Brian Rosenberger (Brutex Network)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package net.brutex.xservices.ws; package net.brutex.xservices.ws;
import java.util.List; import java.util.List;
import javax.activation.DataHandler;
import javax.jws.WebMethod; import javax.jws.WebMethod;
import javax.jws.WebParam; import javax.jws.WebParam;
import javax.jws.WebService; import javax.jws.WebService;
import javax.xml.bind.annotation.XmlElement;
import org.apache.cxf.annotations.WSDLDocumentation;
import org.apache.cxf.annotations.WSDLDocumentationCollection;
import com.sun.xml.internal.ws.api.model.wsdl.WSDLDescriptorKind;
import net.brutex.xservices.types.ArchiveResource; import net.brutex.xservices.types.ArchiveResource;
import net.brutex.xservices.types.AttachmentType; import net.brutex.xservices.types.AttachmentType;
@ -14,67 +35,137 @@ import net.brutex.xservices.types.FileSetResource;
import net.brutex.xservices.types.ReplacePattern; import net.brutex.xservices.types.ReplacePattern;
import net.brutex.xservices.types.ReturnCode; import net.brutex.xservices.types.ReturnCode;
import net.brutex.xservices.util.BrutexNamespaces; import net.brutex.xservices.util.BrutexNamespaces;
import net.brutex.xservices.util.XServicesDocumentation;
/**
* @author Brian Rosenberger
*
*/
@WebService(targetNamespace = BrutexNamespaces.WS_XSERVICES) @WebService(targetNamespace = BrutexNamespaces.WS_XSERVICES)
@WSDLDocumentationCollection(
{
@WSDLDocumentation(value = BrutexNamespaces.BRUTEX_COPYRIGHT, placement = WSDLDocumentation.Placement.TOP)
}
)
public interface FileService { public interface FileService {
/**
* @param filename
* @param suffix
* @return The base name of the given file excluding the suffix.
*/
@WSDLDocumentation(value = "The base name of the given file excluding the suffix.")
@WebMethod(operationName = "basename") @WebMethod(operationName = "basename")
public abstract ReturnCode basename( public abstract String basename(
@WebParam(name = "file") String filename, @WebParam(name = "file") @XmlElement(required=true) String filename,
@WebParam(name = "suffix") String suffix); @WebParam(name = "suffix") String suffix);
/**
* @param res
* @return The file itself (MTOM attachment or inline base64) including some file metadata.
*/
@WSDLDocumentation(XServicesDocumentation.SERVICE_OPERATION_DOWNLOADFILE)
@WebMethod(operationName = "downloadFile") @WebMethod(operationName = "downloadFile")
public abstract AttachmentType downloadFile( public abstract AttachmentType downloadFile(
@WebParam(name = "file") FileResource res); @WebParam(name = "file") FileResource res);
/**
* @param file
* @return The file name of the file that has been uploaded.
*/
@WSDLDocumentation(XServicesDocumentation.SERVICE_OPERATION_UPLOADFILE)
@WebMethod(operationName = "uploadFile") @WebMethod(operationName = "uploadFile")
public abstract String uploadFile( public abstract String uploadFile(
@WebParam(name = "file") AttachmentType file); @WebParam(name = "file") AttachmentType file);
/**
* @param src
* @param todir
* @param plm
* @param overwrite
* @param encoding
* @return
* @throws XServicesFault
*/
@WSDLDocumentation(value = XServicesDocumentation.SERVICE_OPERATION_COPY)
@WebMethod(operationName = "copy") @WebMethod(operationName = "copy")
public abstract ReturnCode copy( public abstract ReturnCode copy(
@WebParam(name = "fileset") FileSetResource src, @WebParam(name = "fileset") @XmlElement(required=true) FileSetResource src,
@WebParam(name = "todir") String todir, @WebParam(name = "todir") @XmlElement(required=true) String todir,
@WebParam(name = "preservelastmodified") boolean plm, @WebParam(name = "preservelastmodified") boolean plm,
@WebParam(name = "overwrite") boolean overwrite, @WebParam(name = "overwrite") boolean overwrite,
@WebParam(name = "encoding") String encoding) throws XServicesFault; @WebParam(name = "encoding") String encoding) throws XServicesFault;
/**
* @param fromFile
* @param tofile
* @param overwrite
* @return
* @throws XServicesFault
*/
@WSDLDocumentation(value = XServicesDocumentation.SERVICE_OPERATION_COPYFILE)
@WebMethod(operationName = "copyFile")
public abstract ReturnCode copyFile(
@WebParam(name = "fromFile") @XmlElement(required=true) String fromFile,
@WebParam(name = "toFile") @XmlElement(required=true) String tofile,
@WebParam(name = "overwrite") boolean overwrite) throws XServicesFault;
/**
* @param res
* @param encoding
* @return content of the resource
*/
@WSDLDocumentation(value = XServicesDocumentation.SERVICE_OPERATION_LOADRESOURCE)
@WebMethod(operationName = "loadResource") @WebMethod(operationName = "loadResource")
public abstract ReturnCode loadRes( public abstract String loadRes(
@WebParam(name = "resource") FileResource res, @WebParam(name = "resource") FileResource res,
@WebParam(name = "encoding") String encoding); @WebParam(name = "encoding") String encoding);
/**
* @param res
* @param encoding
* @return content of the resource
*/
@WSDLDocumentation(value = XServicesDocumentation.SERVICE_OPERATION_LOADRESOURCEFROMARCHIVE)
@WebMethod(operationName = "loadResourceFromArchive") @WebMethod(operationName = "loadResourceFromArchive")
public abstract ReturnCode loadResFromArchive( public abstract String loadResFromArchive(
@WebParam(name = "archiveresource") ArchiveResource res, @WebParam(name = "archiveresource") ArchiveResource res,
@WebParam(name = "encoding") String encoding); @WebParam(name = "encoding") String encoding);
/**
* @param message
* @param file
* @param encoding
* @param append
* @return
*/
@WSDLDocumentation(value = XServicesDocumentation.SERVICE_OPERATION_ECHOTOFILE)
@WebMethod(operationName = "echoToFile") @WebMethod(operationName = "echoToFile")
public abstract ReturnCode echo2file( public abstract ReturnCode echo2file(
@WebParam(name = "message") String message, @WebParam(name = "message") @XmlElement(required=true) String message,
@WebParam(name = "file") String file, @WebParam(name = "file") @XmlElement(required=true) String file,
@WebParam(name = "encoding") String encoding, @WebParam(name = "encoding") String encoding,
@WebParam(name = "append") boolean append); @WebParam(name = "append") boolean append);
@WebMethod(operationName = "changeOwner") @WebMethod(operationName = "changeOwner")
public abstract ReturnCode changeOwner( public abstract ReturnCode changeOwner(
@WebParam(name = "fileset") FileSetResource res, @WebParam(name = "fileset") FileSetResource res,
@WebParam(name = "owner") String owner); @WebParam(name = "owner") @XmlElement(required=true) String owner);
@WebMethod(operationName = "changeGroup") @WebMethod(operationName = "changeGroup")
public abstract ReturnCode changeGroup( public abstract ReturnCode changeGroup(
@WebParam(name = "fileset") FileSetResource res, @WebParam(name = "fileset") FileSetResource res,
@WebParam(name = "group") String group); @WebParam(name = "group") @XmlElement(required=true) String group);
@WebMethod(operationName = "changeMode") @WebMethod(operationName = "changeMode")
public abstract ReturnCode changeMode( public abstract ReturnCode changeMode(
@WebParam(name = "fileset") FileSetResource res, @WebParam(name = "fileset") FileSetResource res,
@WebParam(name = "permissions") String perm); @WebParam(name = "permissions") @XmlElement(required=true) String perm);
@WebMethod(operationName = "replaceInFile") @WebMethod(operationName = "replaceInFile")
public abstract ReturnCode replaceInFile( public abstract ReturnCode replaceInFile(
@WebParam(name = "file") FileResource res, @WebParam(name = "file") @XmlElement(required=true) FileResource res,
@WebParam(name = "search") String search, @WebParam(name = "search") @XmlElement(required=true) String search,
@WebParam(name = "replace") String replace); @WebParam(name = "replace") @XmlElement(required=true) String replace);
@WebMethod(operationName = "replaceInFile2") @WebMethod(operationName = "replaceInFile2")
public abstract ReturnCode replaceInFile2( public abstract ReturnCode replaceInFile2(

View File

@ -23,6 +23,7 @@ import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
import java.util.Iterator;
import java.util.List; import java.util.List;
import javax.activation.DataHandler; import javax.activation.DataHandler;
@ -57,6 +58,8 @@ import org.apache.tools.ant.taskdefs.optional.ReplaceRegExp;
import org.apache.tools.ant.taskdefs.optional.unix.Chgrp; import org.apache.tools.ant.taskdefs.optional.unix.Chgrp;
import org.apache.tools.ant.taskdefs.optional.unix.Chown; import org.apache.tools.ant.taskdefs.optional.unix.Chown;
import org.apache.tools.ant.types.FileSet; import org.apache.tools.ant.types.FileSet;
import org.apache.tools.ant.types.Resource;
import org.apache.tools.ant.types.ResourceCollection;
/** /**
* *
@ -73,9 +76,18 @@ public class FileServiceImpl implements FileService {
*/ */
@Override @Override
@WebMethod(operationName = "basename") @WebMethod(operationName = "basename")
public ReturnCode basename(@WebParam(name = "file") String filename, public String basename(@WebParam(name = "file") String filename,
@WebParam(name = "suffix") String suffix) { @WebParam(name = "suffix") String suffix) {
return basename(new File(filename), suffix); final String BASENAME_VALUE = "basename.value";
Basename basename = new Basename();
RunTask runner = new RunTask(basename);
basename.setFile(new File(filename));
if (suffix != null && !suffix.equals("")) {
basename.setSuffix(suffix);
}
basename.setProperty("BASENAME_VALUE");
ReturnCode r = runner.postTask();
return r.getProperty("BASENAME_VALUE");
} }
@WebMethod(operationName = "replaceInFile") @WebMethod(operationName = "replaceInFile")
@ -206,6 +218,21 @@ public class FileServiceImpl implements FileService {
return copy(src, new File(todir), plm, overwrite, encoding); return copy(src, new File(todir), plm, overwrite, encoding);
} }
@Override
public ReturnCode copyFile(String fromFile,
String tofile,
boolean overwrite) throws XServicesFault {
Copy copy = new Copy();
copy.setTaskName("Copy");
RunTask runner = new RunTask(copy);
File f = new File(fromFile);
if( ! f.isFile() ) throw new XServicesFault("File '"+fromFile+"' not found.");
copy.setFile( new File( fromFile ));
copy.setTofile(new File(tofile));
copy.setOverwrite(overwrite);
return runner.postTask();
}
/* /*
* (non-Javadoc) * (non-Javadoc)
* *
@ -215,12 +242,20 @@ public class FileServiceImpl implements FileService {
*/ */
@Override @Override
@WebMethod(operationName = "loadResource") @WebMethod(operationName = "loadResource")
public ReturnCode loadRes(@WebParam(name = "resource") FileResource res, public String loadRes(@WebParam(name = "resource") FileResource res,
@WebParam(name = "encoding") String encoding) { @WebParam(name = "encoding") String encoding) {
if (encoding == null || encoding.equals("")) { if (encoding == null || encoding.equals("")) {
encoding = System.getProperty("file.encoding"); encoding = System.getProperty("file.encoding");
} }
return loadResource(res, encoding); LoadResource lr = new LoadResource();
lr.setTaskName("LoadResource");
RunTask runner = new RunTask(lr);
lr.addConfigured(res.getAntResource(lr.getProject()));
lr.setEncoding(encoding);
System.out.println("Using encoding: " + encoding);
lr.setProperty("LoadResource.out");
ReturnCode r = runner.postTask();
return r.getProperty("LoadResource.out");
} }
/* /*
@ -232,13 +267,22 @@ public class FileServiceImpl implements FileService {
*/ */
@Override @Override
@WebMethod(operationName = "loadResourceFromArchive") @WebMethod(operationName = "loadResourceFromArchive")
public ReturnCode loadResFromArchive( public String loadResFromArchive(
@WebParam(name = "archiveresource") ArchiveResource res, @WebParam(name = "archiveresource") ArchiveResource res,
@WebParam(name = "encoding") String encoding) { @WebParam(name = "encoding") String encoding) {
if (encoding == null || encoding.equals("")) { if (encoding == null || encoding.equals("")) {
encoding = System.getProperty("file.encoding"); encoding = System.getProperty("file.encoding");
} }
return loadResource(res, encoding); LoadResource lr = new LoadResource();
lr.setTaskName("LoadResource");
RunTask runner = new RunTask(lr);
lr.addConfigured(res.getAntResource(lr.getProject()));
lr.setEncoding(encoding);
System.out.println("Using encoding: " + encoding);
lr.setProperty("LoadResource.out");
ReturnCode r = runner.postTask();
return r.getProperty("LoadResource.out");
} }
/* /*
@ -301,30 +345,6 @@ public class FileServiceImpl implements FileService {
return chmod(res, perm); return chmod(res, perm);
} }
@WebMethod(exclude = true)
private ReturnCode basename(File file, String suffix) {
Basename basename = new Basename();
RunTask runner = new RunTask(basename);
basename.setFile(file);
if (suffix != null && !suffix.equals("")) {
basename.setSuffix(suffix);
}
basename.setProperty("basename.value");
return runner.postTask();
}
@WebMethod(exclude = true)
private ReturnCode loadResource(ResourceInterface src, String encoding) {
LoadResource lr = new LoadResource();
lr.setTaskName("LoadResource");
RunTask runner = new RunTask(lr);
lr.addConfigured(src.getAntResource(lr.getProject()));
lr.setEncoding(encoding);
System.out.println("Using encoding: " + encoding);
lr.setProperty("LoadResource.out");
return runner.postTask();
}
@WebMethod(exclude = true) @WebMethod(exclude = true)
private ReturnCode echo(String msg, File file, String encoding, private ReturnCode echo(String msg, File file, String encoding,
boolean append) { boolean append) {

View File

@ -0,0 +1,521 @@
<?xml version="1.0" encoding="UTF-8"?>
<con:soapui-project name="ArchiveService" resourceRoot="" soapui-version="3.6.1" abortOnError="false" runType="SEQUENTIAL" xmlns:con="http://eviware.com/soapui/config"><con:settings/><con:interface xsi:type="con:WsdlInterface" wsaVersion="NONE" name="ArchiveServiceSoapBinding" type="wsdl" bindingName="{http://ws.xservices.brutex.net}ArchiveServiceSoapBinding" soapVersion="1_1" anonymous="optional" definition="http://localhost:8080/xservices/ArchiveService?WSDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:settings/><con:definitionCache type="TEXT" rootPart="http://localhost:8080/xservices/ArchiveService?WSDL"><con:part><con:url>http://localhost:8080/xservices/ArchiveService?WSDL</con:url><con:content><![CDATA[<wsdl:definitions name="ArchiveService" targetNamespace="http://ws.xservices.brutex.net" xmlns:ns1="http://schemas.xmlsoap.org/soap/http" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://ws.xservices.brutex.net" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<wsdl:types>
<xs:schema elementFormDefault="unqualified" targetNamespace="http://ws.xservices.brutex.net" version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="FileResourceType" type="tns:fileResource"/>
<xs:element name="antProperty" type="tns:antProperty"/>
<xs:element name="bunzip2" type="tns:bunzip2"/>
<xs:element name="bunzip2FromURL" type="tns:bunzip2FromURL"/>
<xs:element name="bunzip2FromURLResponse" type="tns:bunzip2FromURLResponse"/>
<xs:element name="bunzip2Response" type="tns:bunzip2Response"/>
<xs:element name="bzip2" type="tns:bzip2"/>
<xs:element name="bzip2FromArchive" type="tns:bzip2FromArchive"/>
<xs:element name="bzip2FromArchiveResponse" type="tns:bzip2FromArchiveResponse"/>
<xs:element name="bzip2Response" type="tns:bzip2Response"/>
<xs:element name="gunzip" type="tns:gunzip"/>
<xs:element name="gunzipFromURL" type="tns:gunzipFromURL"/>
<xs:element name="gunzipFromURLResponse" type="tns:gunzipFromURLResponse"/>
<xs:element name="gunzipResponse" type="tns:gunzipResponse"/>
<xs:element name="gzip" type="tns:gzip"/>
<xs:element name="gzipFromArchive" type="tns:gzipFromArchive"/>
<xs:element name="gzipFromArchiveResponse" type="tns:gzipFromArchiveResponse"/>
<xs:element name="gzipResponse" type="tns:gzipResponse"/>
<xs:element name="unrar" type="tns:unrar"/>
<xs:element name="unrarResponse" type="tns:unrarResponse"/>
<xs:element name="untar" type="tns:untar"/>
<xs:element name="untarResponse" type="tns:untarResponse"/>
<xs:element name="unzip" type="tns:unzip"/>
<xs:element name="unzipResponse" type="tns:unzipResponse"/>
<xs:element name="zip" type="tns:zip"/>
<xs:element name="zipFromArchive" type="tns:zipFromArchive"/>
<xs:element name="zipFromArchiveResponse" type="tns:zipFromArchiveResponse"/>
<xs:element name="zipResponse" type="tns:zipResponse"/>
<xs:complexType name="gzipFromArchive">
<xs:sequence>
<xs:element minOccurs="0" name="archivesource" type="tns:ArchiveResourceType"/>
<xs:element minOccurs="0" name="destfile" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ArchiveResourceType">
<xs:sequence>
<xs:element default="ZIP" name="type" type="tns:archiveType"/>
<xs:element name="archive" type="xs:string"/>
<xs:element name="uri" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="gzipFromArchiveResponse">
<xs:sequence>
<xs:element minOccurs="0" name="return" type="tns:ReturnCodeType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ReturnCodeType">
<xs:sequence>
<xs:element name="returnCode" type="xs:int"/>
<xs:element minOccurs="0" name="stdOut" type="xs:string"/>
<xs:element minOccurs="0" name="stdErr" type="xs:string"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="propertyList" nillable="true" type="tns:antProperty"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="antProperty">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="value" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="gunzipFromURL">
<xs:sequence>
<xs:element minOccurs="0" name="srcurl" type="xs:string"/>
<xs:element minOccurs="0" name="destdir" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="gunzipFromURLResponse">
<xs:sequence>
<xs:element minOccurs="0" name="return" type="tns:ReturnCodeType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="untar">
<xs:sequence>
<xs:element minOccurs="0" name="srcfile" type="xs:string"/>
<xs:element minOccurs="0" name="destdir" type="xs:string"/>
<xs:element name="overwrite" type="xs:boolean"/>
<xs:element minOccurs="0" name="compression" type="tns:compressionType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="untarResponse">
<xs:sequence>
<xs:element minOccurs="0" name="return" type="tns:ReturnCodeType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="unrar">
<xs:sequence>
<xs:element minOccurs="0" name="srcfile" type="xs:string"/>
<xs:element minOccurs="0" name="destdir" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="unrarResponse">
<xs:sequence>
<xs:element minOccurs="0" name="return" type="tns:ReturnCodeType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="unzip">
<xs:sequence>
<xs:element minOccurs="0" name="srcfile" type="xs:string"/>
<xs:element minOccurs="0" name="destdir" type="xs:string"/>
<xs:element name="overwrite" type="xs:boolean"/>
<xs:element minOccurs="0" name="encoding" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="unzipResponse">
<xs:sequence>
<xs:element minOccurs="0" name="return" type="tns:ReturnCodeType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="bunzip2">
<xs:sequence>
<xs:element minOccurs="0" name="srcfile" type="xs:string"/>
<xs:element minOccurs="0" name="destdir" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="bunzip2Response">
<xs:sequence>
<xs:element minOccurs="0" name="return" type="tns:ReturnCodeType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="zip">
<xs:sequence>
<xs:element minOccurs="0" name="source" type="tns:fileResource"/>
<xs:element minOccurs="0" name="destfile" type="xs:string"/>
<xs:element name="overwrite" type="xs:boolean"/>
<xs:element minOccurs="0" name="encoding" type="xs:string"/>
<xs:element name="compresslevel" type="xs:int"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="fileResource">
<xs:sequence>
<xs:element default="FILE" name="type" type="tns:type"/>
<xs:element name="uri" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="zipResponse">
<xs:sequence>
<xs:element minOccurs="0" name="return" type="tns:ReturnCodeType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="bunzip2FromURL">
<xs:sequence>
<xs:element minOccurs="0" name="srcurl" type="xs:string"/>
<xs:element minOccurs="0" name="destdir" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="bunzip2FromURLResponse">
<xs:sequence>
<xs:element minOccurs="0" name="return" type="tns:ReturnCodeType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="zipFromArchive">
<xs:sequence>
<xs:element minOccurs="0" name="archivesource" type="tns:ArchiveResourceType"/>
<xs:element minOccurs="0" name="destfile" type="xs:string"/>
<xs:element name="overwrite" type="xs:boolean"/>
<xs:element minOccurs="0" name="encoding" type="xs:string"/>
<xs:element name="compresslevel" type="xs:int"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="zipFromArchiveResponse">
<xs:sequence>
<xs:element minOccurs="0" name="return" type="tns:ReturnCodeType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="gzip">
<xs:sequence>
<xs:element minOccurs="0" name="source" type="tns:fileResource"/>
<xs:element minOccurs="0" name="destfile" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="gzipResponse">
<xs:sequence>
<xs:element minOccurs="0" name="return" type="tns:ReturnCodeType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="gunzip">
<xs:sequence>
<xs:element minOccurs="0" name="srcfile" type="xs:string"/>
<xs:element minOccurs="0" name="destdir" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="gunzipResponse">
<xs:sequence>
<xs:element minOccurs="0" name="return" type="tns:ReturnCodeType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="bzip2">
<xs:sequence>
<xs:element minOccurs="0" name="source" type="tns:fileResource"/>
<xs:element minOccurs="0" name="destfile" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="bzip2Response">
<xs:sequence>
<xs:element minOccurs="0" name="return" type="tns:ReturnCodeType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="bzip2FromArchive">
<xs:sequence>
<xs:element minOccurs="0" name="archivesource" type="tns:ArchiveResourceType"/>
<xs:element minOccurs="0" name="destfile" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="bzip2FromArchiveResponse">
<xs:sequence>
<xs:element minOccurs="0" name="return" type="tns:ReturnCodeType"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="archiveType">
<xs:restriction base="xs:string">
<xs:enumeration value="ZIP"/>
<xs:enumeration value="TAR"/>
<xs:enumeration value="GZTAR"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="compressionType">
<xs:restriction base="xs:string">
<xs:enumeration value="NONE"/>
<xs:enumeration value="GZIP"/>
<xs:enumeration value="BZIP2"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="type">
<xs:restriction base="xs:string">
<xs:enumeration value="FILE"/>
<xs:enumeration value="URL"/>
<xs:enumeration value="GZIP"/>
<xs:enumeration value="BZIP2"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
</wsdl:types>
<wsdl:message name="unzipResponse">
<wsdl:part element="tns:unzipResponse" name="parameters"></wsdl:part>
</wsdl:message>
<wsdl:message name="gzipFromArchiveResponse">
<wsdl:part element="tns:gzipFromArchiveResponse" name="parameters"></wsdl:part>
</wsdl:message>
<wsdl:message name="bunzip2FromURL">
<wsdl:part element="tns:bunzip2FromURL" name="parameters"></wsdl:part>
</wsdl:message>
<wsdl:message name="unrar">
<wsdl:part element="tns:unrar" name="parameters"></wsdl:part>
</wsdl:message>
<wsdl:message name="bzip2FromArchive">
<wsdl:part element="tns:bzip2FromArchive" name="parameters"></wsdl:part>
</wsdl:message>
<wsdl:message name="bunzip2FromURLResponse">
<wsdl:part element="tns:bunzip2FromURLResponse" name="parameters"></wsdl:part>
</wsdl:message>
<wsdl:message name="zip">
<wsdl:part element="tns:zip" name="parameters"></wsdl:part>
</wsdl:message>
<wsdl:message name="gzip">
<wsdl:part element="tns:gzip" name="parameters"></wsdl:part>
</wsdl:message>
<wsdl:message name="bzip2FromArchiveResponse">
<wsdl:part element="tns:bzip2FromArchiveResponse" name="parameters"></wsdl:part>
</wsdl:message>
<wsdl:message name="untar">
<wsdl:part element="tns:untar" name="parameters"></wsdl:part>
</wsdl:message>
<wsdl:message name="gzipFromArchive">
<wsdl:part element="tns:gzipFromArchive" name="parameters"></wsdl:part>
</wsdl:message>
<wsdl:message name="bzip2Response">
<wsdl:part element="tns:bzip2Response" name="parameters"></wsdl:part>
</wsdl:message>
<wsdl:message name="gunzipFromURLResponse">
<wsdl:part element="tns:gunzipFromURLResponse" name="parameters"></wsdl:part>
</wsdl:message>
<wsdl:message name="gzipResponse">
<wsdl:part element="tns:gzipResponse" name="parameters"></wsdl:part>
</wsdl:message>
<wsdl:message name="zipFromArchiveResponse">
<wsdl:part element="tns:zipFromArchiveResponse" name="parameters"></wsdl:part>
</wsdl:message>
<wsdl:message name="zipResponse">
<wsdl:part element="tns:zipResponse" name="parameters"></wsdl:part>
</wsdl:message>
<wsdl:message name="gunzip">
<wsdl:part element="tns:gunzip" name="parameters"></wsdl:part>
</wsdl:message>
<wsdl:message name="bzip2">
<wsdl:part element="tns:bzip2" name="parameters"></wsdl:part>
</wsdl:message>
<wsdl:message name="bunzip2Response">
<wsdl:part element="tns:bunzip2Response" name="parameters"></wsdl:part>
</wsdl:message>
<wsdl:message name="bunzip2">
<wsdl:part element="tns:bunzip2" name="parameters"></wsdl:part>
</wsdl:message>
<wsdl:message name="zipFromArchive">
<wsdl:part element="tns:zipFromArchive" name="parameters"></wsdl:part>
</wsdl:message>
<wsdl:message name="untarResponse">
<wsdl:part element="tns:untarResponse" name="parameters"></wsdl:part>
</wsdl:message>
<wsdl:message name="gunzipResponse">
<wsdl:part element="tns:gunzipResponse" name="parameters"></wsdl:part>
</wsdl:message>
<wsdl:message name="gunzipFromURL">
<wsdl:part element="tns:gunzipFromURL" name="parameters"></wsdl:part>
</wsdl:message>
<wsdl:message name="unzip">
<wsdl:part element="tns:unzip" name="parameters"></wsdl:part>
</wsdl:message>
<wsdl:message name="unrarResponse">
<wsdl:part element="tns:unrarResponse" name="parameters"></wsdl:part>
</wsdl:message>
<wsdl:portType name="ArchiveService">
<wsdl:operation name="gzipFromArchive">
<wsdl:input message="tns:gzipFromArchive" name="gzipFromArchive"></wsdl:input>
<wsdl:output message="tns:gzipFromArchiveResponse" name="gzipFromArchiveResponse"></wsdl:output>
</wsdl:operation>
<wsdl:operation name="gunzipFromURL">
<wsdl:input message="tns:gunzipFromURL" name="gunzipFromURL"></wsdl:input>
<wsdl:output message="tns:gunzipFromURLResponse" name="gunzipFromURLResponse"></wsdl:output>
</wsdl:operation>
<wsdl:operation name="untar">
<wsdl:input message="tns:untar" name="untar"></wsdl:input>
<wsdl:output message="tns:untarResponse" name="untarResponse"></wsdl:output>
</wsdl:operation>
<wsdl:operation name="unrar">
<wsdl:input message="tns:unrar" name="unrar"></wsdl:input>
<wsdl:output message="tns:unrarResponse" name="unrarResponse"></wsdl:output>
</wsdl:operation>
<wsdl:operation name="unzip">
<wsdl:input message="tns:unzip" name="unzip"></wsdl:input>
<wsdl:output message="tns:unzipResponse" name="unzipResponse"></wsdl:output>
</wsdl:operation>
<wsdl:operation name="bunzip2">
<wsdl:input message="tns:bunzip2" name="bunzip2"></wsdl:input>
<wsdl:output message="tns:bunzip2Response" name="bunzip2Response"></wsdl:output>
</wsdl:operation>
<wsdl:operation name="zip">
<wsdl:input message="tns:zip" name="zip"></wsdl:input>
<wsdl:output message="tns:zipResponse" name="zipResponse"></wsdl:output>
</wsdl:operation>
<wsdl:operation name="bunzip2FromURL">
<wsdl:input message="tns:bunzip2FromURL" name="bunzip2FromURL"></wsdl:input>
<wsdl:output message="tns:bunzip2FromURLResponse" name="bunzip2FromURLResponse"></wsdl:output>
</wsdl:operation>
<wsdl:operation name="zipFromArchive">
<wsdl:input message="tns:zipFromArchive" name="zipFromArchive"></wsdl:input>
<wsdl:output message="tns:zipFromArchiveResponse" name="zipFromArchiveResponse"></wsdl:output>
</wsdl:operation>
<wsdl:operation name="gzip">
<wsdl:input message="tns:gzip" name="gzip"></wsdl:input>
<wsdl:output message="tns:gzipResponse" name="gzipResponse"></wsdl:output>
</wsdl:operation>
<wsdl:operation name="gunzip">
<wsdl:input message="tns:gunzip" name="gunzip"></wsdl:input>
<wsdl:output message="tns:gunzipResponse" name="gunzipResponse"></wsdl:output>
</wsdl:operation>
<wsdl:operation name="bzip2">
<wsdl:input message="tns:bzip2" name="bzip2"></wsdl:input>
<wsdl:output message="tns:bzip2Response" name="bzip2Response"></wsdl:output>
</wsdl:operation>
<wsdl:operation name="bzip2FromArchive">
<wsdl:input message="tns:bzip2FromArchive" name="bzip2FromArchive"></wsdl:input>
<wsdl:output message="tns:bzip2FromArchiveResponse" name="bzip2FromArchiveResponse"></wsdl:output>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="ArchiveServiceSoapBinding" type="tns:ArchiveService">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="gzipFromArchive">
<soap:operation soapAction="gzipFromArchive" style="document"/>
<wsdl:input name="gzipFromArchive">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="gzipFromArchiveResponse">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="gunzipFromURL">
<soap:operation soapAction="" style="document"/>
<wsdl:input name="gunzipFromURL">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="gunzipFromURLResponse">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="unrar">
<soap:operation soapAction="" style="document"/>
<wsdl:input name="unrar">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="unrarResponse">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="untar">
<soap:operation soapAction="" style="document"/>
<wsdl:input name="untar">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="untarResponse">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="bunzip2">
<soap:operation soapAction="" style="document"/>
<wsdl:input name="bunzip2">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="bunzip2Response">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="unzip">
<soap:operation soapAction="" style="document"/>
<wsdl:input name="unzip">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="unzipResponse">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="zip">
<soap:operation soapAction="" style="document"/>
<wsdl:input name="zip">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="zipResponse">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="bunzip2FromURL">
<soap:operation soapAction="" style="document"/>
<wsdl:input name="bunzip2FromURL">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="bunzip2FromURLResponse">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="zipFromArchive">
<soap:operation soapAction="" style="document"/>
<wsdl:input name="zipFromArchive">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="zipFromArchiveResponse">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="gzip">
<soap:operation soapAction="gzip" style="document"/>
<wsdl:input name="gzip">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="gzipResponse">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="bzip2">
<soap:operation soapAction="bzip2" style="document"/>
<wsdl:input name="bzip2">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="bzip2Response">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="gunzip">
<soap:operation soapAction="gunzip" style="document"/>
<wsdl:input name="gunzip">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="gunzipResponse">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="bzip2FromArchive">
<soap:operation soapAction="bzip2FromArchive" style="document"/>
<wsdl:input name="bzip2FromArchive">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="bzip2FromArchiveResponse">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="ArchiveService">
<wsdl:port binding="tns:ArchiveServiceSoapBinding" name="ArchiveServiceImplPort">
<soap:address location="http://localhost:8080/xservices/ArchiveService"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>]]></con:content><con:type>http://schemas.xmlsoap.org/wsdl/</con:type></con:part></con:definitionCache><con:endpoints><con:endpoint>http://localhost:8080/xservices/ArchiveService</con:endpoint></con:endpoints><con:operation isOneWay="false" action="" name="bunzip2" bindingOperationName="bunzip2" type="Request-Response" outputName="bunzip2Response" inputName="bunzip2" receivesAttachments="false" sendsAttachments="false"><con:settings/></con:operation><con:operation isOneWay="false" action="" name="bunzip2FromURL" bindingOperationName="bunzip2FromURL" type="Request-Response" outputName="bunzip2FromURLResponse" inputName="bunzip2FromURL" receivesAttachments="false" sendsAttachments="false"><con:settings/></con:operation><con:operation isOneWay="false" action="bzip2" name="bzip2" bindingOperationName="bzip2" type="Request-Response" outputName="bzip2Response" inputName="bzip2" receivesAttachments="false" sendsAttachments="false"><con:settings/></con:operation><con:operation isOneWay="false" action="bzip2FromArchive" name="bzip2FromArchive" bindingOperationName="bzip2FromArchive" type="Request-Response" outputName="bzip2FromArchiveResponse" inputName="bzip2FromArchive" receivesAttachments="false" sendsAttachments="false"><con:settings/></con:operation><con:operation isOneWay="false" action="gunzip" name="gunzip" bindingOperationName="gunzip" type="Request-Response" outputName="gunzipResponse" inputName="gunzip" receivesAttachments="false" sendsAttachments="false"><con:settings/></con:operation><con:operation isOneWay="false" action="" name="gunzipFromURL" bindingOperationName="gunzipFromURL" type="Request-Response" outputName="gunzipFromURLResponse" inputName="gunzipFromURL" receivesAttachments="false" sendsAttachments="false"><con:settings/></con:operation><con:operation isOneWay="false" action="gzip" name="gzip" bindingOperationName="gzip" type="Request-Response" outputName="gzipResponse" inputName="gzip" receivesAttachments="false" sendsAttachments="false"><con:settings/></con:operation><con:operation isOneWay="false" action="gzipFromArchive" name="gzipFromArchive" bindingOperationName="gzipFromArchive" type="Request-Response" outputName="gzipFromArchiveResponse" inputName="gzipFromArchive" receivesAttachments="false" sendsAttachments="false"><con:settings/></con:operation><con:operation isOneWay="false" action="" name="unrar" bindingOperationName="unrar" type="Request-Response" outputName="unrarResponse" inputName="unrar" receivesAttachments="false" sendsAttachments="false" anonymous="optional"><con:settings/><con:call name="Request 1"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/xservices/ArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net">
<soapenv:Header/>
<soapenv:Body>
<ws:unrar>
<!--Optional:-->
<srcfile>c:\temp\test.rar</srcfile>
<!--Optional:-->
<destdir>c:\temp</destdir>
</ws:unrar>
</soapenv:Body>
</soapenv:Envelope>]]></con:request><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://ws.xservices.brutex.net/ArchiveService/unrar"/><con:wsrmConfig version="1.2"/></con:call></con:operation><con:operation isOneWay="false" action="" name="untar" bindingOperationName="untar" type="Request-Response" outputName="untarResponse" inputName="untar" receivesAttachments="false" sendsAttachments="false"><con:settings/></con:operation><con:operation isOneWay="false" action="" name="unzip" bindingOperationName="unzip" type="Request-Response" outputName="unzipResponse" inputName="unzip" receivesAttachments="false" sendsAttachments="false"><con:settings/></con:operation><con:operation isOneWay="false" action="" name="zip" bindingOperationName="zip" type="Request-Response" outputName="zipResponse" inputName="zip" receivesAttachments="false" sendsAttachments="false" anonymous="optional"><con:settings/><con:call name="Request 1"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/xservices/ArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net">
<soapenv:Header/>
<soapenv:Body>
<ws:zip>
<!--Optional:-->
<source>
<type>FILE</type>
<uri>?</uri>
</source>
<!--Optional:-->
<destfile>?</destfile>
<overwrite>?</overwrite>
<!--Optional:-->
<encoding>?</encoding>
<compresslevel>?</compresslevel>
</ws:zip>
</soapenv:Body>
</soapenv:Envelope>]]></con:request><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://ws.xservices.brutex.net/ArchiveService/zip"/><con:wsrmConfig version="1.2"/></con:call></con:operation><con:operation isOneWay="false" action="" name="zipFromArchive" bindingOperationName="zipFromArchive" type="Request-Response" outputName="zipFromArchiveResponse" inputName="zipFromArchive" receivesAttachments="false" sendsAttachments="false"><con:settings/></con:operation></con:interface><con:properties/><con:wssContainer/></con:soapui-project>

View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net">
<soapenv:Header/>
<soapenv:Body>
<ws:telnet>
<!--Optional:-->
<host>
<hostname>localhost</hostname>
<port>23</port>
<!--Optional:-->
<user>brosenberger</user>
<!--Optional:-->
<password/>
</host>
<prompt>C:\Users\brosenberger></prompt>
<command>dir c:\</command>
<expect>enberger></expect>
<timeout>30000</timeout>
</ws:telnet>
</soapenv:Body>
</soapenv:Envelope>

View File

@ -441,17 +441,17 @@
<soap:address location="http://localhost:8080/XServices/FileServiceMTOM"/> <soap:address location="http://localhost:8080/XServices/FileServiceMTOM"/>
</wsdl:port> </wsdl:port>
</wsdl:service> </wsdl:service>
</wsdl:definitions>]]></con:content><con:type>http://schemas.xmlsoap.org/wsdl/</con:type></con:part></con:definitionCache><con:endpoints><con:endpoint>http://localhost:8080/XServices/FileServiceMTOM</con:endpoint><con:endpoint>http://localhost:8080/XServices/FileService</con:endpoint></con:endpoints><con:operation isOneWay="false" action="" name="basename" bindingOperationName="basename" type="Request-Response" outputName="basenameResponse" inputName="basename" receivesAttachments="false" sendsAttachments="false" anonymous="optional"><con:settings/><con:call name="Request 1"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/XServices/FileServiceMTOM</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net"> </wsdl:definitions>]]></con:content><con:type>http://schemas.xmlsoap.org/wsdl/</con:type></con:part></con:definitionCache><con:endpoints><con:endpoint>http://localhost:8080/XServices/FileServiceMTOM</con:endpoint><con:endpoint>http://localhost:8080/XServices/FileService</con:endpoint></con:endpoints><con:operation isOneWay="false" action="" name="basename" bindingOperationName="basename" type="Request-Response" outputName="basenameResponse" inputName="basename" receivesAttachments="false" sendsAttachments="false" anonymous="optional"><con:settings/><con:call name="Request 1"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/XServices/FileServiceMTOM</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net">
<soapenv:Header/> <soapenv:Header/>
<soapenv:Body> <soapenv:Body>
<ws:basename> <ws:basename>
<!--Optional:--> <!--Optional:-->
<file>?</file> <file>c:\temp\XServices.war</file>
<!--Optional:--> <!--Optional:-->
<suffix>?</suffix> <suffix>.war</suffix>
</ws:basename> </ws:basename>
</soapenv:Body> </soapenv:Body>
</soapenv:Envelope>]]></con:request><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://ws.xservices.brutex.net/FileService/basename"/></con:call></con:operation><con:operation isOneWay="false" action="" name="changeGroup" bindingOperationName="changeGroup" type="Request-Response" outputName="changeGroupResponse" inputName="changeGroup" receivesAttachments="false" sendsAttachments="false" anonymous="optional"><con:settings/><con:call name="Request 1"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/XServices/FileServiceMTOM</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net"> </soapenv:Envelope>]]></con:request><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://ws.xservices.brutex.net/FileService/basename"/><con:wsrmConfig version="1.2"/></con:call></con:operation><con:operation isOneWay="false" action="" name="changeGroup" bindingOperationName="changeGroup" type="Request-Response" outputName="changeGroupResponse" inputName="changeGroup" receivesAttachments="false" sendsAttachments="false" anonymous="optional"><con:settings/><con:call name="Request 1"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/XServices/FileServiceMTOM</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net">
<soapenv:Header/> <soapenv:Header/>
<soapenv:Body> <soapenv:Body>
<ws:changeGroup> <ws:changeGroup>
@ -579,20 +579,20 @@
<encoding>?</encoding> <encoding>?</encoding>
</ws:copy> </ws:copy>
</soapenv:Body> </soapenv:Body>
</soapenv:Envelope>]]></con:request><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://ws.xservices.brutex.net/FileService/copy"/></con:call></con:operation><con:operation isOneWay="false" action="" name="echoToFile" bindingOperationName="echoToFile" type="Request-Response" outputName="echoToFileResponse" inputName="echoToFile" receivesAttachments="false" sendsAttachments="false" anonymous="optional"><con:settings/><con:call name="Request 1"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/XServices/FileServiceMTOM</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net"> </soapenv:Envelope>]]></con:request><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://ws.xservices.brutex.net/FileService/copy"/></con:call></con:operation><con:operation isOneWay="false" action="" name="echoToFile" bindingOperationName="echoToFile" type="Request-Response" outputName="echoToFileResponse" inputName="echoToFile" receivesAttachments="false" sendsAttachments="false" anonymous="optional"><con:settings/><con:call name="Request 1"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/XServices/FileServiceMTOM</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net">
<soapenv:Header/> <soapenv:Header/>
<soapenv:Body> <soapenv:Body>
<ws:echoToFile> <ws:echoToFile>
<!--Optional:--> <!--Optional:-->
<message>?</message> <message>blubber</message>
<!--Optional:--> <!--Optional:-->
<file>?</file> <file>c:\temp\something.txt</file>
<!--Optional:--> <!--Optional:-->
<encoding>?</encoding> <encoding>utf-8</encoding>
<append>?</append> <append>false</append>
</ws:echoToFile> </ws:echoToFile>
</soapenv:Body> </soapenv:Body>
</soapenv:Envelope>]]></con:request><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://ws.xservices.brutex.net/FileService/echoToFile"/></con:call></con:operation><con:operation isOneWay="false" action="" name="loadResource" bindingOperationName="loadResource" type="Request-Response" outputName="loadResourceResponse" inputName="loadResource" receivesAttachments="false" sendsAttachments="false" anonymous="optional"><con:settings/><con:call name="Request 1"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/XServices/FileServiceMTOM</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net"> </soapenv:Envelope>]]></con:request><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://ws.xservices.brutex.net/FileService/echoToFile"/><con:wsrmConfig version="1.2"/></con:call></con:operation><con:operation isOneWay="false" action="" name="loadResource" bindingOperationName="loadResource" type="Request-Response" outputName="loadResourceResponse" inputName="loadResource" receivesAttachments="false" sendsAttachments="false" anonymous="optional"><con:settings/><con:call name="Request 1"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/XServices/FileServiceMTOM</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net">
<soapenv:Header/> <soapenv:Header/>
<soapenv:Body> <soapenv:Body>
<ws:loadResource> <ws:loadResource>
@ -619,14 +619,14 @@
<encoding>?</encoding> <encoding>?</encoding>
</ws:loadResourceFromArchive> </ws:loadResourceFromArchive>
</soapenv:Body> </soapenv:Body>
</soapenv:Envelope>]]></con:request><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://ws.xservices.brutex.net/FileService/loadResourceFromArchive"/></con:call></con:operation><con:operation isOneWay="false" action="" name="downloadFile" bindingOperationName="downloadFile" type="Request-Response" outputName="downloadFileResponse" inputName="downloadFile" receivesAttachments="false" sendsAttachments="false" anonymous="optional"><con:settings/><con:call name="Request 1"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/XServices/FileServiceMTOM</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net"> </soapenv:Envelope>]]></con:request><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://ws.xservices.brutex.net/FileService/loadResourceFromArchive"/></con:call></con:operation><con:operation isOneWay="false" action="" name="downloadFile" bindingOperationName="downloadFile" type="Request-Response" outputName="downloadFileResponse" inputName="downloadFile" receivesAttachments="false" sendsAttachments="false" anonymous="optional"><con:settings/><con:call name="Request 1"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/XServices/FileService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net">
<soapenv:Header/> <soapenv:Header/>
<soapenv:Body> <soapenv:Body>
<ws:downloadFile> <ws:downloadFile>
<!--Optional:--> <!--Optional:-->
<file> <file>
<type>FILE</type> <type>FILE</type>
<uri>c:\temp\</uri> <uri>c:\temp\XServices.war</uri>
</file> </file>
</ws:downloadFile> </ws:downloadFile>
</soapenv:Body> </soapenv:Body>

View File

@ -0,0 +1,322 @@
<?xml version="1.0" encoding="UTF-8"?>
<con:soapui-project name="MiscService" resourceRoot="" soapui-version="3.6.1" abortOnError="false" runType="SEQUENTIAL" xmlns:con="http://eviware.com/soapui/config"><con:settings/><con:interface xsi:type="con:WsdlInterface" wsaVersion="NONE" name="MiscServiceSoapBinding" type="wsdl" bindingName="{http://ws.xservices.brutex.net}MiscServiceSoapBinding" soapVersion="1_1" anonymous="optional" definition="http://localhost:8080/xservices/MiscService?WSDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:settings/><con:definitionCache type="TEXT" rootPart="http://localhost:8080/xservices/MiscService?WSDL"><con:part><con:url>http://localhost:8080/xservices/MiscService?WSDL</con:url><con:content><![CDATA[<wsdl:definitions name="MiscService" targetNamespace="http://ws.xservices.brutex.net" xmlns:ns1="http://schemas.xmlsoap.org/soap/http" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://ws.xservices.brutex.net" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<wsdl:documentation>My top level documentation</wsdl:documentation>
<wsdl:types>
<xs:schema elementFormDefault="unqualified" targetNamespace="http://ws.xservices.brutex.net" version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="antProperty" type="tns:antProperty"/>
<xs:element name="getHostinfo" type="tns:getHostinfo"/>
<xs:element name="getHostinfoResponse" type="tns:getHostinfoResponse"/>
<xs:element name="getInfo" type="tns:getInfo"/>
<xs:element name="getInfoResponse" type="tns:getInfoResponse"/>
<xs:element name="sendMail" type="tns:sendMail"/>
<xs:element name="sendMailResponse" type="tns:sendMailResponse"/>
<xs:element name="sendMailSimple" type="tns:sendMailSimple"/>
<xs:element name="sendMailSimpleResponse" type="tns:sendMailSimpleResponse"/>
<xs:element name="sendMailSimpleWithAttachment" type="tns:sendMailSimpleWithAttachment"/>
<xs:element name="sendMailSimpleWithAttachmentResponse" type="tns:sendMailSimpleWithAttachmentResponse"/>
<xs:element name="sleep" type="tns:sleep"/>
<xs:element name="sleepResponse" type="tns:sleepResponse"/>
<xs:complexType name="sendMailSimpleWithAttachment">
<xs:sequence>
<xs:element minOccurs="0" name="mailhost" type="tns:connection"/>
<xs:element minOccurs="0" name="from" type="xs:string"/>
<xs:element minOccurs="0" name="to" type="xs:string"/>
<xs:element minOccurs="0" name="subject" type="xs:string"/>
<xs:element minOccurs="0" name="message" type="xs:string"/>
<xs:element minOccurs="0" name="attachments" type="tns:FileSetType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="connection">
<xs:sequence>
<xs:element name="hostname" type="xs:string"/>
<xs:element name="port" type="xs:int"/>
<xs:element minOccurs="0" name="user" type="xs:string"/>
<xs:element minOccurs="0" name="password" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="FileSetType">
<xs:sequence>
<xs:element default="FILES" name="FileSetType" type="tns:resourcetype"/>
<xs:element name="source" type="xs:string"/>
<xs:element name="filter" nillable="true" type="tns:patternSetType"/>
<xs:element default="" minOccurs="0" name="excludes" nillable="true" type="xs:string"/>
<xs:element default="true" name="casesensitive" type="xs:boolean"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="patternSetType">
<xs:sequence>
<xs:element default="**/*" maxOccurs="unbounded" minOccurs="0" name="include" type="tns:patternElement"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="exclude" type="tns:patternElement"/>
<xs:element minOccurs="0" name="selector" nillable="true" type="tns:selectorType"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="patternElement">
<xs:restriction base="xs:string"/>
</xs:simpleType>
<xs:complexType abstract="true" name="selectorType">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="contains" nillable="true" type="tns:containsSelectorType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="containsSelectorType">
<xs:sequence>
<xs:element name="text" type="xs:string"/>
<xs:element default="true" name="casesensitive" type="xs:boolean"/>
<xs:element default="false" name="ignorewhitespace" type="xs:boolean"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="sendMailSimpleWithAttachmentResponse">
<xs:sequence>
<xs:element minOccurs="0" name="return" type="tns:ReturnCodeType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ReturnCodeType">
<xs:sequence>
<xs:element name="returnCode" type="xs:int"/>
<xs:element minOccurs="0" name="stdOut" type="xs:string"/>
<xs:element minOccurs="0" name="stdErr" type="xs:string"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="propertyList" nillable="true" type="tns:antProperty"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="antProperty">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="value" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="sendMailSimple">
<xs:sequence>
<xs:element minOccurs="0" name="mailhost" type="tns:connection"/>
<xs:element minOccurs="0" name="from" type="xs:string"/>
<xs:element minOccurs="0" name="to" type="xs:string"/>
<xs:element minOccurs="0" name="subject" type="xs:string"/>
<xs:element minOccurs="0" name="message" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="sendMailSimpleResponse">
<xs:sequence>
<xs:element minOccurs="0" name="return" type="tns:ReturnCodeType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="getHostinfo">
<xs:sequence>
<xs:element minOccurs="0" name="hostname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="getHostinfoResponse">
<xs:sequence>
<xs:element minOccurs="0" name="return" type="tns:ReturnCodeType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="sendMail">
<xs:sequence>
<xs:element minOccurs="0" name="mailhost" type="tns:connection"/>
<xs:element minOccurs="0" name="from" type="xs:string"/>
<xs:element minOccurs="0" name="to" type="xs:string"/>
<xs:element minOccurs="0" name="cc" type="xs:string"/>
<xs:element minOccurs="0" name="bcc" type="xs:string"/>
<xs:element minOccurs="0" name="subject" type="xs:string"/>
<xs:element minOccurs="0" name="mimetype" type="tns:mailMimeType"/>
<xs:element minOccurs="0" name="charset" type="xs:string"/>
<xs:element minOccurs="0" name="message" type="xs:string"/>
<xs:element minOccurs="0" name="attachments" type="tns:FileSetType"/>
<xs:element name="useSSL" type="xs:boolean"/>
<xs:element name="useStartTLS" type="xs:boolean"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="sendMailResponse">
<xs:sequence>
<xs:element minOccurs="0" name="return" type="tns:ReturnCodeType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="sleep">
<xs:sequence>
<xs:element name="minutes" type="xs:int"/>
<xs:element name="seconds" type="xs:int"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="sleepResponse">
<xs:sequence>
<xs:element minOccurs="0" name="return" type="tns:ReturnCodeType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="getInfo">
<xs:sequence/>
</xs:complexType>
<xs:complexType name="getInfoResponse">
<xs:sequence>
<xs:element minOccurs="0" name="return" type="tns:ReturnCodeType"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="resourcetype">
<xs:restriction base="xs:string">
<xs:enumeration value="FILES"/>
<xs:enumeration value="ZIP"/>
<xs:enumeration value="TAR"/>
<xs:enumeration value="GZTAR"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="mailMimeType">
<xs:restriction base="xs:string">
<xs:enumeration value="text/plain"/>
<xs:enumeration value="text/html"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
</wsdl:types>
<wsdl:message name="sleepResponse">
<wsdl:part element="tns:sleepResponse" name="parameters"></wsdl:part>
</wsdl:message>
<wsdl:message name="sendMailResponse">
<wsdl:part element="tns:sendMailResponse" name="parameters"></wsdl:part>
</wsdl:message>
<wsdl:message name="sendMailSimple">
<wsdl:part element="tns:sendMailSimple" name="parameters"></wsdl:part>
</wsdl:message>
<wsdl:message name="getHostinfo">
<wsdl:part element="tns:getHostinfo" name="parameters"></wsdl:part>
</wsdl:message>
<wsdl:message name="getInfoResponse">
<wsdl:part element="tns:getInfoResponse" name="parameters"></wsdl:part>
</wsdl:message>
<wsdl:message name="getInfo">
<wsdl:part element="tns:getInfo" name="parameters"></wsdl:part>
</wsdl:message>
<wsdl:message name="sleep">
<wsdl:part element="tns:sleep" name="parameters"></wsdl:part>
</wsdl:message>
<wsdl:message name="sendMailSimpleWithAttachment">
<wsdl:part element="tns:sendMailSimpleWithAttachment" name="parameters"></wsdl:part>
</wsdl:message>
<wsdl:message name="getHostinfoResponse">
<wsdl:part element="tns:getHostinfoResponse" name="parameters"></wsdl:part>
</wsdl:message>
<wsdl:message name="sendMail">
<wsdl:part element="tns:sendMail" name="parameters"></wsdl:part>
</wsdl:message>
<wsdl:message name="sendMailSimpleResponse">
<wsdl:part element="tns:sendMailSimpleResponse" name="parameters"></wsdl:part>
</wsdl:message>
<wsdl:message name="sendMailSimpleWithAttachmentResponse">
<wsdl:part element="tns:sendMailSimpleWithAttachmentResponse" name="parameters"></wsdl:part>
</wsdl:message>
<wsdl:portType name="MiscService">
<wsdl:operation name="sendMailSimpleWithAttachment">
<wsdl:input message="tns:sendMailSimpleWithAttachment" name="sendMailSimpleWithAttachment"></wsdl:input>
<wsdl:output message="tns:sendMailSimpleWithAttachmentResponse" name="sendMailSimpleWithAttachmentResponse"></wsdl:output>
</wsdl:operation>
<wsdl:operation name="sendMailSimple">
<wsdl:input message="tns:sendMailSimple" name="sendMailSimple"></wsdl:input>
<wsdl:output message="tns:sendMailSimpleResponse" name="sendMailSimpleResponse"></wsdl:output>
</wsdl:operation>
<wsdl:operation name="getHostinfo">
<wsdl:input message="tns:getHostinfo" name="getHostinfo"></wsdl:input>
<wsdl:output message="tns:getHostinfoResponse" name="getHostinfoResponse"></wsdl:output>
</wsdl:operation>
<wsdl:operation name="sendMail">
<wsdl:input message="tns:sendMail" name="sendMail"></wsdl:input>
<wsdl:output message="tns:sendMailResponse" name="sendMailResponse"></wsdl:output>
</wsdl:operation>
<wsdl:operation name="sleep">
<wsdl:input message="tns:sleep" name="sleep"></wsdl:input>
<wsdl:output message="tns:sleepResponse" name="sleepResponse"></wsdl:output>
</wsdl:operation>
<wsdl:operation name="getInfo">
<wsdl:input message="tns:getInfo" name="getInfo"></wsdl:input>
<wsdl:output message="tns:getInfoResponse" name="getInfoResponse"></wsdl:output>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="MiscServiceSoapBinding" type="tns:MiscService">
<wsdl:documentation>My binding doc</wsdl:documentation>
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="sendMailSimpleWithAttachment">
<soap:operation soapAction="" style="document"/>
<wsdl:input name="sendMailSimpleWithAttachment">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="sendMailSimpleWithAttachmentResponse">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getHostinfo">
<soap:operation soapAction="" style="document"/>
<wsdl:input name="getHostinfo">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="getHostinfoResponse">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="sendMailSimple">
<soap:operation soapAction="" style="document"/>
<wsdl:input name="sendMailSimple">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="sendMailSimpleResponse">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="sendMail">
<soap:operation soapAction="" style="document"/>
<wsdl:input name="sendMail">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="sendMailResponse">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="sleep">
<soap:operation soapAction="" style="document"/>
<wsdl:input name="sleep">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="sleepResponse">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getInfo">
<soap:operation soapAction="" style="document"/>
<wsdl:input name="getInfo">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="getInfoResponse">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="MiscService">
<wsdl:documentation>My portType documentation</wsdl:documentation>
<wsdl:port binding="tns:MiscServiceSoapBinding" name="MiscServiceImplPort">
<soap:address location="http://localhost:8080/xservices/MiscService"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>]]></con:content><con:type>http://schemas.xmlsoap.org/wsdl/</con:type></con:part></con:definitionCache><con:endpoints><con:endpoint>http://localhost:8080/xservices/MiscService</con:endpoint></con:endpoints><con:operation isOneWay="false" action="" name="getHostinfo" bindingOperationName="getHostinfo" type="Request-Response" outputName="getHostinfoResponse" inputName="getHostinfo" receivesAttachments="false" sendsAttachments="false" anonymous="optional"><con:settings/></con:operation><con:operation isOneWay="false" action="" name="sendMail" bindingOperationName="sendMail" type="Request-Response" outputName="sendMailResponse" inputName="sendMail" receivesAttachments="false" sendsAttachments="false" anonymous="optional"><con:settings/><con:call name="Request 1"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/xservices/MiscService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net">
<soapenv:Header/>
<soapenv:Body>
<ws:sendMail>
<useSSL>0</useSSL>
<useStartTLS>0</useStartTLS>
</ws:sendMail>
</soapenv:Body>
</soapenv:Envelope>]]></con:request><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://ws.xservices.brutex.net/MiscService/sendMail"/><con:wsrmConfig version="1.2"/></con:call></con:operation><con:operation isOneWay="false" action="" name="sendMailSimple" bindingOperationName="sendMailSimple" type="Request-Response" outputName="sendMailSimpleResponse" inputName="sendMailSimple" receivesAttachments="false" sendsAttachments="false" anonymous="optional"><con:settings/></con:operation><con:operation isOneWay="false" action="" name="sendMailSimpleWithAttachment" bindingOperationName="sendMailSimpleWithAttachment" type="Request-Response" outputName="sendMailSimpleWithAttachmentResponse" inputName="sendMailSimpleWithAttachment" receivesAttachments="false" sendsAttachments="false" anonymous="optional"><con:settings/></con:operation><con:operation isOneWay="false" action="" name="sleep" bindingOperationName="sleep" type="Request-Response" outputName="sleepResponse" inputName="sleep" receivesAttachments="false" sendsAttachments="false" anonymous="optional"><con:settings/><con:call name="Request 1"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/xservices/MiscService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net">
<soapenv:Header/>
<soapenv:Body>
<ws:sleep>
<minutes>0</minutes>
<seconds>15</seconds>
</ws:sleep>
</soapenv:Body>
</soapenv:Envelope>]]></con:request><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://ws.xservices.brutex.net/MiscService/sleep"/><con:wsrmConfig version="1.2"/></con:call></con:operation><con:operation isOneWay="false" action="" name="getInfo" bindingOperationName="getInfo" type="Request-Response" outputName="getInfoResponse" inputName="getInfo" receivesAttachments="false" sendsAttachments="false" anonymous="optional"><con:settings/><con:call name="Request 1"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/xservices/MiscService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net">
<soapenv:Header/>
<soapenv:Body>
<ws:getInfo/>
</soapenv:Body>
</soapenv:Envelope>]]></con:request><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://ws.xservices.brutex.net/MiscService/getInfo"/><con:wsrmConfig version="1.2"/></con:call></con:operation></con:interface><con:testSuite name="TestSuite 1"><con:settings/><con:runType>SEQUENTIAL</con:runType><con:testCase failOnError="true" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="TestCase 1" searchProperties="true"><con:settings/><con:testStep type="request" name="sleep - Request 1"><con:settings/><con:config xsi:type="con:RequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:interface>MiscServiceSoapBinding</con:interface><con:operation>sleep</con:operation><con:request name="sleep - Request 1" outgoingWss="" incomingWss="" timeout="" wssPasswordType=""><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/xservices/MiscService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net">
<soapenv:Header/>
<soapenv:Body>
<ws:sleep>
<minutes>0</minutes>
<seconds>15</seconds>
</ws:sleep>
</soapenv:Body>
</soapenv:Envelope>]]></con:request><con:assertion type="SOAP Response" name="SOAP Response"/><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://ws.xservices.brutex.net/MiscService/sleep"/><con:wsrmConfig version="1.2"/></con:request></con:config></con:testStep><con:loadTest name="LoadTest 1"><con:settings><con:setting id="HttpSettings@close-connections">false</con:setting></con:settings><con:threadCount>5</con:threadCount><con:startDelay>0</con:startDelay><con:sampleInterval>250</con:sampleInterval><con:calculateTPSOnTimePassed>true</con:calculateTPSOnTimePassed><con:resetStatisticsOnThreadCountChange>true</con:resetStatisticsOnThreadCountChange><con:historyLimit>-1</con:historyLimit><con:testLimit>60</con:testLimit><con:limitType>TIME</con:limitType><con:loadStrategy><con:type>Simple</con:type><con:config><testDelay>1000</testDelay><randomFactor>0.5</randomFactor></con:config></con:loadStrategy><con:assertion type="Step Status" name="Step Status"/><con:maxAssertionErrors>100</con:maxAssertionErrors><con:cancelExcessiveThreads>true</con:cancelExcessiveThreads><con:strategyInterval>500</con:strategyInterval></con:loadTest><con:properties/></con:testCase><con:properties/></con:testSuite><con:properties/><con:wssContainer/></con:soapui-project>