<!--
* 
*
*  ProLinga-Validate
*
*  Copyright (C) 2002-2008 Xobas Software.
*  All rights reserved.
*  
*  This file is part of ProLinga-Validate.
*
*  ProLinga-Validate is free software: you can redistribute it and/or modify
*  it under the terms of the GNU General Public License as published by
*  the Free Software Foundation, either version 3 of the License, or
*  (at your option) any later version.
*
*  ProLinga-Validate is distributed in the hope that it will be useful,
*  but WITHOUT ANY WARRANTY; without even the implied warranty of
*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
*  GNU General Public License for more details.
*
*  You should have received a copy of the GNU General Public License
*  along with ProLinga-Validate.  If not, see <http://www.gnu.org/licenses/>.
*
*  More information is available at the following addresses:
*
*  Website     : http://www.prolinga.org
*
*  Email       : prolinga-list@prolinga.org
*
*
-->
<refentry id="prolinga-validate-prolingavalclient">
  <refmeta>
    <refentrytitle>prolingavalclient</refentrytitle>
    <manvolnum>1</manvolnum>
  </refmeta>

  <refnamediv>
    <refname>prolingavalclient</refname>
    <refpurpose>command line Validate network/SOAP client tool</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <cmdsynopsis>
      <command>prolingavalclient</command>
	<arg choice='opt'>
          <arg choice='plain'><option>--config</option></arg>
          <arg choice='plain'><option><replaceable>config_file_name.xml</replaceable></option></arg>
        </arg>
        <arg choice='plain'><option>--in</option></arg>
        <arg choice='plain'><option><replaceable>input_VC_file_name.xml</replaceable></option></arg>
        <arg choice='plain'><option>--out</option></arg>
        <arg choice='plain'><option><replaceable>output_VC_file_name.xml</replaceable></option></arg>
  </cmdsynopsis>
  <cmdsynopsis>
      <command>prolingavalclient</command>
      <arg choice='plain'><option>--version</option></arg>
  </cmdsynopsis>
  </refsynopsisdiv>

  <refsect1 id="prolingavalclient_introduction">
    <title>Introduction</title>
    <para>
      The prolingavalclient program parses the input Validate Command XML file and
      sends this as a request to the Validate Web Service. The response of
      this request is placed in the output XML file as specified as the 2nd argument.
      <parameter>prolingavalclient</parameter> will get the information as hostname 
      and TCP portnumber of the
      Web Service from the configuration file etc/prolingavalcfg.xml.
    </para>
  </refsect1>
  <refsect1 id="prolingavalclient_options">
    <title>Options</title>
    <variablelist>
      <varlistentry>
	<term><option>config_file_name.xml</option></term>
	<listitem>
	  <simpara>
	    The name of the XML file containing the configuration. If no file is
            specified, the default will be used.
	  </simpara>
	</listitem>
      </varlistentry>

      <varlistentry>
	<term><option>input_VC_filename.xml</option></term>
	<listitem>
	  <simpara>
	    The name of the XML file containing a Validate Command.
	  </simpara>
	</listitem>
      </varlistentry>

      <varlistentry>
	<term><option>output_VC_filename.xml</option></term>
	<listitem>
	  <simpara>
	    The name of the XML file containing the result of a Validate Command.
	  </simpara>
	</listitem>
      </varlistentry>

    </variablelist>
  </refsect1>
</refentry>
<refentry id="prolinga-validate-prolingavalparser">
  <refmeta>
    <refentrytitle>prolingavalparser</refentrytitle>
    <manvolnum>1</manvolnum>
  </refmeta>

  <refnamediv>
    <refname>prolingavalparser</refname>
    <refpurpose>command line Validate parser and debugging tool</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <cmdsynopsis>
      <command>prolingavalparser</command>
	<arg choice='opt'>
          <arg choice='plain'><option>--config</option></arg>
          <arg choice='plain'><option><replaceable>config_file_name.xml</replaceable></option></arg>
        </arg>
	<arg choice='opt'>
          <arg choice='plain'><option>--mode</option></arg>
          <arg choice='plain'><option>transform_only</option></arg>
        </arg>
        <arg choice='plain'><option>--appn</option></arg>
        <arg choice='plain'><option><replaceable>application_name</replaceable></option></arg>
        <arg choice='plain'><option>--in</option></arg>
        <arg choice='plain'><option><replaceable>input_file_name</replaceable></option></arg>
  </cmdsynopsis>
  <cmdsynopsis>
      <command>prolingavalparser</command>
      <arg choice='plain'><option>--version</option></arg>
  </cmdsynopsis>
  </refsynopsisdiv>

  <refsect1 id="prolingavalparser_introduction">
    <title>Introduction</title>
    <para>
      The <parameter>prolingavalparser</parameter> program parses a text file
      <parameter>4GL_text_file_name</parameter> containing ProLinga 4GL code
      and outputs the result to stdout (screen). The 4GL logic will get
      validated against objects of the <parameter>application_name</parameter>.
      The argument <parameter>transform_only</parameter> is optional and
      only the Logic transformation step to a RunControl will performed without
      validation of the objects.
    </para>
  </refsect1>
  <refsect1 id="prolingavalparser_options">
    <title>Options</title>
    <variablelist>
      <varlistentry>
	<term><option>config_file_name.xml</option></term>
	<listitem>
	  <simpara>
	    The name of the XML file containing the configuration. If no file is
            specified, the default will be used.
	  </simpara>
	</listitem>
      </varlistentry>

      <varlistentry>
	<term><option>mode</option></term>
	<listitem>
	  <simpara>
	    Perform only the transformation step in case the object is Logic.
	  </simpara>
	</listitem>
      </varlistentry>

      <varlistentry>
	<term><option>application_name</option></term>
	<listitem>
	  <simpara>
	    The name of the application in the Repository against which objects will 
            get validated.
	  </simpara>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><option>input_file_name</option></term>
	<listitem>
	  <simpara>
	    The name of the text file containing ProLinga 4GL logic.
	  </simpara>
	</listitem>
      </varlistentry>
    </variablelist>
  </refsect1>
</refentry>
<refentry id="prolinga-validate-prolingavald">
  <refmeta>
    <refentrytitle>prolingavald</refentrytitle>
    <manvolnum>1</manvolnum>
  </refmeta>

  <refnamediv>
    <refname>prolingavald</refname>
    <refpurpose>Validate Web Service daemon</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <cmdsynopsis>
      <command>prolingavald</command>
  </cmdsynopsis>
  <cmdsynopsis>
      <command>prolingavald</command>
      <arg choice='plain'><option>--version</option></arg>
  </cmdsynopsis>
  </refsynopsisdiv>

  <refsect1 id="prolingavald-introduction">
    <title>Introduction</title>
    <para>
      The prolingavald program can be called from the command line without any arguments.
      The program will then initialize and run as a daemon in memory waiting for Validate
      Command requests to arrive. Since the process
      is a fork, the prompt will return. Programs like
      <link linkend="prolinga-validate-prolingavalclient">prolingavalclient</link> can
      now be used to send requests to this Web Service. prolingavald will get the information 
      as hostname and TCP portnumber where the service needs to bind to 
      from the configuration file etc/prolingavalcfg.xml.</para>

      <para>An example automatic Validate startup script for Linux is available as 
      file <parameter>prolingavald.init</parameter>. This file can be copied and renamed to
      <parameter>/etc/rc.d/init.d/prolingavald</parameter> and initialized using /sbin/chkconfig.
      Make sure all paths are correct in this file.
      The Web Service can then be started as <parameter>/etc/rc.d/init.d/prolingavald
      start</parameter>. To stop the 
      argument <parameter>stop</parameter> can be used.
      You need to have root access for this. The binary rpm installation will perform
      all these steps automatically.</para>

  </refsect1>
  <refsect1 id="prolingavald_options">
    <title>Options</title>
    <variablelist>
      <varlistentry>
	<term><option></option></term>
	<listitem>
	  <simpara>
	  </simpara>
	</listitem>
      </varlistentry>
    </variablelist>
  </refsect1>
</refentry>
<refentry id="prolinga-validate-prolingavalexec">
  <refmeta>
    <refentrytitle>prolingavalexec</refentrytitle>
    <manvolnum>1</manvolnum>
  </refmeta>

  <refnamediv>
    <refname>prolingavalexec</refname>
    <refpurpose>command line Validate access tool</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <cmdsynopsis>
      <command>prolingavalexec</command>
	<arg choice='opt'>
          <arg choice='plain'><option>--config</option></arg>
          <arg choice='plain'><option><replaceable>config_file_name.xml</replaceable></option></arg>
        </arg>
        <arg choice='plain'><option>--in</option></arg>
        <arg choice='plain'><option><replaceable>input_VC_file_name.xml</replaceable></option></arg>
        <arg choice='plain'><option>--out</option></arg>
        <arg choice='plain'><option><replaceable>output_VC_file_name.xml</replaceable></option></arg>
  </cmdsynopsis>
  <cmdsynopsis>
      <command>prolingavalexec</command>
      <arg choice='plain'><option>--version</option></arg>
  </cmdsynopsis>
  </refsynopsisdiv>

  <refsect1 id="prolingavalexec_introduction">
    <title>Introduction</title>
    <para>
      The prolingavalclient program parses the input Validate Command XML file and
      presents this as a request to the Validate engine. The response of
      this request is placed in the output XML file as specified as the 2nd argument.
      prolingarepexec will get the information as Validate name and directory
      from the configuration file etc/prolingavalcfg.xml.
    </para>
  </refsect1>
  <refsect1 id="prolingavalexec_options">
    <title>Options</title>
    <variablelist>
      <varlistentry>
	<term><option>config_file_name.xml</option></term>
	<listitem>
	  <simpara>
	    The name of the XML file containing the configuration. If no file is
            specified, the default will be used.
	  </simpara>
	</listitem>
      </varlistentry>

      <varlistentry>
	<term><option>input_VC_filename.xml</option></term>
	<listitem>
	  <simpara>
	    The name of the XML file containing a Validate Command.
	  </simpara>
	</listitem>
      </varlistentry>

      <varlistentry>
	<term><option>output_VC_filename.xml</option></term>
	<listitem>
	  <simpara>
	    The name of the XML file containing the result of a Validate Command.
	  </simpara>
	</listitem>
      </varlistentry>

    </variablelist>
  </refsect1>
</refentry>

<refentry id="prolinga-validate-configuration_file">
  <refmeta>
    <refentrytitle>Configuration File</refentrytitle>
    <manvolnum>1</manvolnum>
  </refmeta>

  <refnamediv>
    <refname>Configuration File</refname>
    <refpurpose>File containing settings for the Validate environment</refpurpose>
  </refnamediv>

  <refsect1 id="prolinga-validate-conf_file_introduction">
    <title>Introduction</title>
    <para>
      ProLinga-Validate comes with a configuration file where various variable settings
      can be entered. Variables like the name of the Language Definition file and 
      the name of the host where the Repository Web Service is running for instance.
      Default installation of ProLinga-Validate will put the default configuration file 
      <parameter>prolingavalcfg.xml</parameter> in the etc directory.</para>

      <para>A default configuration file looks like this:</para>

<programlisting><![CDATA[
<?xml version="1.0" encoding="utf-8" ?>
                                                                                                                                             
<!-- ProLinga Configuration File -->
<!-- Copyright (C) 2002-2008 The ProLinga Team. -->
<!-- All Rights Reserved. -->
                                                                                                                                             
<ProLinga>
  <Configuration>
    <Service Name="Validate">
      <!-- Settings for prolingagenclient. -->
      <Client>
        <ClientHost>localhost</ClientHost>
        <ClientPort>8003</ClientPort>
        <ClientCompressionLevel>0</ClientCompressionLevel>
      </Client>
                                                                                                                                            
      <!-- Settings for prolingavalparser, prolingavald and prolingavalexec. -->
      <Server>
        <ServerHost>localhost</ServerHost>
        <ServerPort>8003</ServerPort>
        <NumberOfThreads>3</NumberOfThreads>
        <LogFile>/tmp/prolingaval.log</LogFile>
        <LogLevel>5</LogLevel>
        <ServerCompressionLevel>0</ServerCompressionLevel>
        <LanguageValidationFile>/usr/share/prolinga/langvalid.xml</LanguageValidationFile>
        <RepositoryHost>localhost</RepositoryHost>
        <RepositoryPort>8001</RepositoryPort>
        <RepositoryCompressionLevel>0</RepositoryCompressionLevel>
      </Server>
    </Service>
  </Configuration>
</ProLinga>
]]></programlisting>

      <para>
        There is a main section for the client program and for the local/stand alone
        programs. The setup of this configuration file is such that it can be combined with
        configuration files from other ProLinga projects.
      </para>

  </refsect1>
  <refsect1 id="prolinga-validate-client_configuration_options">
    <title>Client Options</title>
    <para/>
    <variablelist>
      <varlistentry>
	<term><option>ClientHost</option></term>
	<listitem>
	  <simpara>
	    The name or IP number of the host where to connect to, to present
            a Validation Command.
	  </simpara>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><option>ClientPort</option></term>
	<listitem>
	  <simpara>
	    The TCP port of the host where to connect to, to present
            a Validation Command.
	  </simpara>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><option>ClientCompressionLevel</option></term>
	<listitem>
	  <simpara>
	    Level of compression to be used on the Validate Command XML
            document before it is send off over the network to the 
            Validate Web Service. 0=No Compression, 9=Best Compression. 
	  </simpara>
	</listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1 id="prolinga-validate-server_configuration_options">
    <title>Server Options</title>
    <para/>
    <variablelist>
      <varlistentry>
	<term><option>ServerHost</option></term>
	<listitem>
	  <simpara>
	    The name or IP number of the host where to bind to when
            starting <parameter>prolingavald</parameter> as a Web Service.
	  </simpara>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><option>ServerPort</option></term>
	<listitem>
	  <simpara>
	    The TCP port of the host where to bind to when starting
            <parameter>prolingavald</parameter> as a Web Service.
	  </simpara>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><option>NumberOfThreads</option></term>
	<listitem>
	  <simpara>
            Number of threads when starting <parameter>prolingavald</parameter>
            as a Web Service. This means that up to <parameter>NumberOfThreads</parameter>
            requests can be served simultanously, before they are queued.
	  </simpara>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><option>LogFile</option></term>
	<listitem>
	  <simpara>
            Name of the file where logging and debug info will be written to.
	  </simpara>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><option>LogLevel</option></term>
	<listitem>
	  <simpara>
            The level of logging. 0=No Logging, 2= +Messages/Errors, 3= +Soap request/response info.
	  </simpara>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><option>ServerCompressionLevel</option></term>
	<listitem>
	  <simpara>
	    Level of compression to be used on the Validate Command XML
            document before it is returned over the network to the 
            Validate caller/client. 0=No Compression, 9=Best Compression. 
	  </simpara>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><option>LanguageValidationFile</option></term>
	<listitem>
	  <simpara>
	    Name of the file that holds the 4GL grammar rules and syntax definitions.
	  </simpara>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><option>RepositoryHost</option></term>
	<listitem>
	  <simpara>
	    The name or IP number of the host where to connect to 
            get/put Repository Objects.
	  </simpara>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><option>RepositoryPort</option></term>
	<listitem>
	  <simpara>
	    The TCP port of the host where to connect to 
            get/put Repository Objects.
	  </simpara>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><option>RepositoryCompressionLevel</option></term>
	<listitem>
	  <simpara>
	    Level of compression to be used on the Repository Command XML
            document before it is returned over the network to the 
            Validate caller/client. 0=No Compression, 9=Best Compression. 
	  </simpara>
	</listitem>
      </varlistentry>
    </variablelist>
  </refsect1>
</refentry>

