<?xml version="1.0" encoding="utf-8" ?>
<!--
  Copyright (c) 2002-2003 by The Web Services-Interoperability Organization (WS-I) and 
  Certain of its Members. All Rights Reserved.
	
  Notice
  The material contained herein is not a license, either expressly or impliedly, to any 
  intellectual property owned or controlled by any of the authors or developers of this 
  material or WS-I. The material contained herein is provided on an "AS IS" basis and to 
  the maximum extent permitted by applicable law, this material is provided AS IS AND WITH 
  ALL FAULTS, and the authors and developers of this material and WS-I hereby disclaim all 
  other warranties and conditions, either express, implied or statutory, including, but not 
  limited to, any (if any) implied warranties, duties or conditions of  merchantability, 
  of fitness for a particular purpose, of accuracy or completeness of responses, of results, 
  of workmanlike effort, of lack of viruses, and of lack of negligence. ALSO, THERE IS NO 
  WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, QUIET POSSESSION, CORRESPONDENCE TO 
  DESCRIPTION OR NON-INFRINGEMENT WITH REGARD TO THIS MATERIAL.
	
  IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THIS MATERIAL OR WS-I BE LIABLE TO ANY OTHER 
  PARTY FOR THE COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS OF USE, 
  LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, INDIRECT, OR SPECIAL DAMAGES 
  WHETHER UNDER CONTRACT, TORT, WARRANTY, OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR 
  ANY OTHER AGREEMENT RELATING TO THIS MATERIAL, WHETHER OR NOT SUCH PARTY HAD ADVANCE 
  NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.
	
	
  WS-I License Information
  Use of this WS-I Material is governed by the WS-I Test License and other licenses.  
  Information on these licenses are contained in the README.txt and ReleaseNotes.txt files.  
  By downloading this file, you agree to the terms of these licenses.

	
  How To Provide Feedback
  The Web Services-Interoperability Organization (WS-I) would like to receive input, 
  suggestions and other feedback ("Feedback") on this work from a wide variety of 
  industry participants to improve its quality over time. 
	
  By sending email, or otherwise communicating with WS-I, you (on behalf of yourself if 
  you are an individual, and your company if you are providing Feedback on behalf of the 
  company) will be deemed to have granted to WS-I, the members of WS-I, and other parties 
  that have access to your Feedback, a non-exclusive, non-transferable, worldwide, perpetual, 
  irrevocable, royalty-free license to use, disclose, copy, license, modify, sublicense or 
  otherwise distribute and exploit in any manner whatsoever the Feedback you provide regarding 
  the work. You acknowledge that you have no expectation of confidentiality with respect to 
  any Feedback you provide. You represent and warrant that you have rights to provide this 
  Feedback, and if you are providing Feedback on behalf of a company, you represent and warrant 
  that you have the rights to provide Feedback on behalf of your company. You also acknowledge 
  that WS-I is not required to review, discuss, use, consider or in any way incorporate your 
  Feedback into future versions of its work. If WS-I does incorporate some or all of your 
  Feedback in a future version of the work, it may, but is not obligated to include your name 
  (or, if you are identified as acting on behalf of your company, the name of your company) on 
  a list of contributors to the work. If the foregoing is not acceptable to you and any company 
  on whose behalf you are acting, please do not provide any Feedback.
	
  WS-I members should direct feedback on this document to wsi_testing@lists.ws-i.org; 
  non-members should direct feedback to wsi-tools@ws-i.org. 
-->

<wsi-monConfig:configuration 
			xmlns:wsi-monConfig="http://www.ws-i.org/testing/2003/03/monitorConfig/">
  <wsi-monConfig:comment>
    WS-I config for Axis automation
  </wsi-monConfig:comment>

  <wsi-monConfig:logFile replace="true" location="XXXXXXXX">
    <wsi-monConfig:addStyleSheet href="../common/xsl/log.xsl" type="text/xsl"/>
  </wsi-monConfig:logFile>
  <!-- logDuration is the max time to wait for new connections. Shutdown will start after this many seconds -->
  <wsi-monConfig:logDuration>50</wsi-monConfig:logDuration>
  <!-- cleanupTimeoutSeconds is the max time to wait for responses after logDuration has finished -->
  <wsi-monConfig:cleanupTimeoutSeconds>15</wsi-monConfig:cleanupTimeoutSeconds>
  <wsi-monConfig:manInTheMiddle>
    <wsi-monConfig:redirect>
      <wsi-monConfig:comment>Host HHHH port PPPP.</wsi-monConfig:comment>
      <wsi-monConfig:listenPort>4040</wsi-monConfig:listenPort>
      <wsi-monConfig:schemeAndHostPort>http://HHHH:PPPP</wsi-monConfig:schemeAndHostPort>
      <wsi-monConfig:maxConnections>60</wsi-monConfig:maxConnections>
      <wsi-monConfig:readTimeoutSeconds>10</wsi-monConfig:readTimeoutSeconds>
    </wsi-monConfig:redirect>
  </wsi-monConfig:manInTheMiddle>
</wsi-monConfig:configuration>

