More specific doc for Apache module, rebuild sample

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1754 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
inoussa
2011-07-22 12:29:38 +00:00
parent b2dce13c21
commit b976ea6730
7 changed files with 152 additions and 81 deletions

View File

@ -1,19 +1,21 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<CONFIG> <CONFIG>
<ProjectOptions> <ProjectOptions>
<Version Value="9"/>
<PathDelim Value="\"/> <PathDelim Value="\"/>
<Version Value="7"/>
<General> <General>
<Flags> <Flags>
<LRSInOutputDirectory Value="False"/> <LRSInOutputDirectory Value="False"/>
</Flags> </Flags>
<MainUnit Value="0"/> <MainUnit Value="0"/>
<TargetFileExt Value=".exe"/>
<ActiveWindowIndexAtStart Value="0"/> <ActiveWindowIndexAtStart Value="0"/>
</General> </General>
<VersionInfo> <VersionInfo>
<StringTable Comments="" CompanyName="" FileDescription="" FileVersion="0.0.0.0" InternalName="" LegalCopyright="" LegalTrademarks="" OriginalFilename="" ProductName="" ProductVersion=""/> <StringTable ProductVersion=""/>
</VersionInfo> </VersionInfo>
<BuildModes Count="1">
<Item1 Name="default" Default="True"/>
</BuildModes>
<PublishOptions> <PublishOptions>
<Version Value="2"/> <Version Value="2"/>
<IgnoreBinaries Value="False"/> <IgnoreBinaries Value="False"/>
@ -26,28 +28,29 @@
<LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/> <LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
</local> </local>
</RunParams> </RunParams>
<Units Count="57"> <Units Count="61">
<Unit0> <Unit0>
<Filename Value="mod_wst.lpr"/> <Filename Value="mod_wst.lpr"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="mod_wst"/> <UnitName Value="mod_wst"/>
<EditorIndex Value="0"/> <EditorIndex Value="0"/>
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="46"/> <TopLine Value="1"/>
<CursorPos X="46" Y="59"/> <CursorPos X="12" Y="12"/>
<UsageCount Value="75"/> <UsageCount Value="79"/>
<Loaded Value="True"/> <Loaded Value="True"/>
<LoadedDesigner Value="True"/>
</Unit0> </Unit0>
<Unit1> <Unit1>
<Filename Value="wst_apache_binding.pas"/> <Filename Value="wst_apache_binding.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="wst_apache_binding"/> <UnitName Value="wst_apache_binding"/>
<IsVisibleTab Value="True"/> <IsVisibleTab Value="True"/>
<EditorIndex Value="1"/> <EditorIndex Value="3"/>
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="493"/> <TopLine Value="1"/>
<CursorPos X="60" Y="497"/> <CursorPos X="1" Y="19"/>
<UsageCount Value="39"/> <UsageCount Value="43"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit1> </Unit1>
<Unit2> <Unit2>
@ -60,9 +63,12 @@
<Unit3> <Unit3>
<Filename Value="..\user_service_intf_imp.pas"/> <Filename Value="..\user_service_intf_imp.pas"/>
<UnitName Value="user_service_intf_imp"/> <UnitName Value="user_service_intf_imp"/>
<TopLine Value="191"/> <EditorIndex Value="2"/>
<CursorPos X="8" Y="225"/> <WindowIndex Value="0"/>
<TopLine Value="211"/>
<CursorPos X="72" Y="223"/>
<UsageCount Value="20"/> <UsageCount Value="20"/>
<Loaded Value="True"/>
</Unit3> </Unit3>
<Unit4> <Unit4>
<Filename Value="C:\lazarus23_213\fpc\2.1.3\source\packages\base\httpd\httpd-1.3\httpd.pas"/> <Filename Value="C:\lazarus23_213\fpc\2.1.3\source\packages\base\httpd\httpd-1.3\httpd.pas"/>
@ -408,134 +414,179 @@
<CursorPos X="16" Y="181"/> <CursorPos X="16" Y="181"/>
<UsageCount Value="11"/> <UsageCount Value="11"/>
</Unit56> </Unit56>
<Unit57>
<Filename Value="E:\fpc_dev\packages\fcl-web\src\fpweb.pp"/>
<UnitName Value="fpWeb"/>
<WindowIndex Value="0"/>
<TopLine Value="10"/>
<CursorPos X="40" Y="21"/>
<UsageCount Value="10"/>
</Unit57>
<Unit58>
<Filename Value="E:\lazarus\components\fpweb\weblazideintf.pp"/>
<UnitName Value="WebLazIDEIntf"/>
<WindowIndex Value="0"/>
<TopLine Value="1"/>
<CursorPos X="1" Y="1"/>
<UsageCount Value="10"/>
</Unit58>
<Unit59>
<Filename Value="..\user_service_intf.pas"/>
<UnitName Value="user_service_intf"/>
<EditorIndex Value="1"/>
<WindowIndex Value="0"/>
<TopLine Value="1"/>
<CursorPos X="1" Y="1"/>
<UsageCount Value="10"/>
<Loaded Value="True"/>
</Unit59>
<Unit60>
<Filename Value="..\user_client_console\user_client_console.pas"/>
<UnitName Value="user_client_console"/>
<EditorIndex Value="4"/>
<WindowIndex Value="0"/>
<TopLine Value="1"/>
<CursorPos X="1" Y="1"/>
<UsageCount Value="10"/>
<Loaded Value="True"/>
</Unit60>
</Units> </Units>
<JumpHistory Count="28" HistoryIndex="27"> <JumpHistory Count="29" HistoryIndex="28">
<Position1> <Position1>
<Filename Value="wst_apache_binding.pas"/> <Filename Value="wst_apache_binding.pas"/>
<Caret Line="133" Column="41" TopLine="115"/> <Caret Line="46" Column="25" TopLine="31"/>
</Position1> </Position1>
<Position2> <Position2>
<Filename Value="wst_apache_binding.pas"/> <Filename Value="mod_wst.lpr"/>
<Caret Line="485" Column="35" TopLine="472"/> <Caret Line="54" Column="32" TopLine="32"/>
</Position2> </Position2>
<Position3> <Position3>
<Filename Value="wst_apache_binding.pas"/> <Filename Value="wst_apache_binding.pas"/>
<Caret Line="6" Column="13" TopLine="1"/> <Caret Line="402" Column="1" TopLine="394"/>
</Position3> </Position3>
<Position4> <Position4>
<Filename Value="wst_apache_binding.pas"/> <Filename Value="wst_apache_binding.pas"/>
<Caret Line="485" Column="21" TopLine="472"/> <Caret Line="2" Column="19" TopLine="1"/>
</Position4> </Position4>
<Position5> <Position5>
<Filename Value="wst_apache_binding.pas"/> <Filename Value="wst_apache_binding.pas"/>
<Caret Line="403" Column="86" TopLine="390"/> <Caret Line="374" Column="7" TopLine="358"/>
</Position5> </Position5>
<Position6> <Position6>
<Filename Value="wst_apache_binding.pas"/> <Filename Value="wst_apache_binding.pas"/>
<Caret Line="46" Column="25" TopLine="31"/> <Caret Line="1" Column="1" TopLine="1"/>
</Position6> </Position6>
<Position7> <Position7>
<Filename Value="mod_wst.lpr"/> <Filename Value="wst_apache_binding.pas"/>
<Caret Line="54" Column="32" TopLine="32"/> <Caret Line="174" Column="27" TopLine="159"/>
</Position7> </Position7>
<Position8> <Position8>
<Filename Value="wst_apache_binding.pas"/> <Filename Value="wst_apache_binding.pas"/>
<Caret Line="402" Column="1" TopLine="394"/> <Caret Line="374" Column="23" TopLine="359"/>
</Position8> </Position8>
<Position9> <Position9>
<Filename Value="wst_apache_binding.pas"/> <Filename Value="wst_apache_binding.pas"/>
<Caret Line="2" Column="19" TopLine="1"/> <Caret Line="375" Column="23" TopLine="359"/>
</Position9> </Position9>
<Position10> <Position10>
<Filename Value="wst_apache_binding.pas"/> <Filename Value="wst_apache_binding.pas"/>
<Caret Line="374" Column="7" TopLine="358"/> <Caret Line="399" Column="104" TopLine="387"/>
</Position10> </Position10>
<Position11> <Position11>
<Filename Value="wst_apache_binding.pas"/> <Filename Value="wst_apache_binding.pas"/>
<Caret Line="1" Column="1" TopLine="1"/> <Caret Line="17" Column="1" TopLine="16"/>
</Position11> </Position11>
<Position12> <Position12>
<Filename Value="wst_apache_binding.pas"/> <Filename Value="wst_apache_binding.pas"/>
<Caret Line="174" Column="27" TopLine="159"/> <Caret Line="173" Column="27" TopLine="159"/>
</Position12> </Position12>
<Position13> <Position13>
<Filename Value="wst_apache_binding.pas"/> <Filename Value="wst_apache_binding.pas"/>
<Caret Line="374" Column="23" TopLine="359"/> <Caret Line="174" Column="27" TopLine="159"/>
</Position13> </Position13>
<Position14> <Position14>
<Filename Value="wst_apache_binding.pas"/> <Filename Value="wst_apache_binding.pas"/>
<Caret Line="375" Column="23" TopLine="359"/> <Caret Line="373" Column="5" TopLine="359"/>
</Position14> </Position14>
<Position15> <Position15>
<Filename Value="wst_apache_binding.pas"/> <Filename Value="wst_apache_binding.pas"/>
<Caret Line="399" Column="104" TopLine="387"/> <Caret Line="1" Column="1" TopLine="1"/>
</Position15> </Position15>
<Position16> <Position16>
<Filename Value="wst_apache_binding.pas"/> <Filename Value="wst_apache_binding.pas"/>
<Caret Line="17" Column="1" TopLine="16"/> <Caret Line="167" Column="59" TopLine="163"/>
</Position16> </Position16>
<Position17> <Position17>
<Filename Value="wst_apache_binding.pas"/> <Filename Value="wst_apache_binding.pas"/>
<Caret Line="173" Column="27" TopLine="159"/> <Caret Line="4" Column="13" TopLine="1"/>
</Position17> </Position17>
<Position18> <Position18>
<Filename Value="wst_apache_binding.pas"/> <Filename Value="wst_apache_binding.pas"/>
<Caret Line="174" Column="27" TopLine="159"/> <Caret Line="25" Column="22" TopLine="16"/>
</Position18> </Position18>
<Position19> <Position19>
<Filename Value="wst_apache_binding.pas"/> <Filename Value="wst_apache_binding.pas"/>
<Caret Line="373" Column="5" TopLine="359"/> <Caret Line="486" Column="20" TopLine="477"/>
</Position19> </Position19>
<Position20> <Position20>
<Filename Value="wst_apache_binding.pas"/> <Filename Value="wst_apache_binding.pas"/>
<Caret Line="1" Column="1" TopLine="1"/> <Caret Line="93" Column="7" TopLine="92"/>
</Position20> </Position20>
<Position21> <Position21>
<Filename Value="wst_apache_binding.pas"/> <Filename Value="wst_apache_binding.pas"/>
<Caret Line="167" Column="59" TopLine="163"/> <Caret Line="45" Column="15" TopLine="31"/>
</Position21> </Position21>
<Position22> <Position22>
<Filename Value="wst_apache_binding.pas"/>
<Caret Line="4" Column="13" TopLine="1"/>
</Position22>
<Position23>
<Filename Value="wst_apache_binding.pas"/>
<Caret Line="25" Column="22" TopLine="16"/>
</Position23>
<Position24>
<Filename Value="wst_apache_binding.pas"/>
<Caret Line="486" Column="20" TopLine="477"/>
</Position24>
<Position25>
<Filename Value="wst_apache_binding.pas"/>
<Caret Line="93" Column="7" TopLine="92"/>
</Position25>
<Position26>
<Filename Value="wst_apache_binding.pas"/>
<Caret Line="45" Column="15" TopLine="31"/>
</Position26>
<Position27>
<Filename Value="mod_wst.lpr"/> <Filename Value="mod_wst.lpr"/>
<Caret Line="53" Column="35" TopLine="32"/> <Caret Line="53" Column="35" TopLine="32"/>
</Position27> </Position22>
<Position28> <Position23>
<Filename Value="mod_wst.lpr"/> <Filename Value="mod_wst.lpr"/>
<Caret Line="55" Column="8" TopLine="32"/> <Caret Line="55" Column="8" TopLine="32"/>
</Position23>
<Position24>
<Filename Value="mod_wst.lpr"/>
<Caret Line="65" Column="33" TopLine="44"/>
</Position24>
<Position25>
<Filename Value="mod_wst.lpr"/>
<Caret Line="12" Column="12" TopLine="1"/>
</Position25>
<Position26>
<Filename Value="..\user_service_intf.pas"/>
<Caret Line="293" Column="5" TopLine="270"/>
</Position26>
<Position27>
<Filename Value="..\user_service_intf.pas"/>
<Caret Line="293" Column="5" TopLine="270"/>
</Position27>
<Position28>
<Filename Value="wst_apache_binding.pas"/>
<Caret Line="505" Column="83" TopLine="493"/>
</Position28> </Position28>
<Position29>
<Filename Value="..\user_client_console\user_client_console.pas"/>
<Caret Line="1" Column="1" TopLine="142"/>
</Position29>
</JumpHistory> </JumpHistory>
</ProjectOptions> </ProjectOptions>
<CompilerOptions> <CompilerOptions>
<Version Value="8"/> <Version Value="9"/>
<PathDelim Value="\"/> <PathDelim Value="\"/>
<Target> <Target>
<Filename Value="mod_wst.so"/> <Filename Value="mod_wst.so"/>
</Target> </Target>
<SearchPaths> <SearchPaths>
<IncludeFiles Value="..\..\"/> <IncludeFiles Value="..\.."/>
<OtherUnitFiles Value="..\;..\..\;..\..\wst_rtti_filter\;$(FPCSrcDir)\packages\httpd22\src\;$(FPCSrcDir)\packages\httpd22\src\apr\;$(FPCSrcDir)\packages\httpd22\src\apriconv\;$(FPCSrcDir)\packages\httpd22\src\aprutil\"/> <OtherUnitFiles Value="..;..\..;..\..\wst_rtti_filter;$(FPCSrcDir)\packages\httpd22\src;$(FPCSrcDir)\packages\httpd22\src\apr;$(FPCSrcDir)\packages\httpd22\src\apriconv;$(FPCSrcDir)\packages\httpd22\src\aprutil"/>
<UnitOutputDirectory Value="obj"/> <UnitOutputDirectory Value="obj"/>
<SrcPath Value="$(FPCSrcDir)\packages\httpd22\src\;$(FPCSrcDir)\packages\httpd22\src\apr\;$(FPCSrcDir)\packages\httpd22\src\apriconv\;$(FPCSrcDir)\packages\httpd22\src\aprutil\"/> <SrcPath Value="$(FPCSrcDir)\packages\httpd22\src;$(FPCSrcDir)\packages\httpd22\src\apr;$(FPCSrcDir)\packages\httpd22\src\apriconv;$(FPCSrcDir)\packages\httpd22\src\aprutil"/>
</SearchPaths> </SearchPaths>
<Parsing>
<SyntaxOptions>
<UseAnsiStrings Value="False"/>
</SyntaxOptions>
</Parsing>
<Linking> <Linking>
<Debugging> <Debugging>
<UseLineInfoUnit Value="False"/> <UseLineInfoUnit Value="False"/>

View File

@ -1,7 +1,23 @@
//{$UNDEF WST_DBG} //{$UNDEF WST_DBG}
//{$DEFINE WST_DBG} //{$DEFINE WST_DBG}
(*WST_BROKER enable the service brokering : (*
Without the broker (WST_BROKER undefined):
Apache must be configured to route requests to wst services
<Location /wst>
SetHandler wst-handler
</Location>
Services can then be invoked through the following addressing schema
http://127.0.0.1:8080/wst/services/UserService
UserService : the target service
wst/services : constant.
============================================================================
WST_BROKER(still experimental !!!) enable the service brokering :
if enabled, this module just forwards the request to the if enabled, this module just forwards the request to the
implementation libraries contained in the WstRootPath path. implementation libraries contained in the WstRootPath path.
WST load these libraries in the local file system folder WST load these libraries in the local file system folder

View File

@ -16,6 +16,9 @@
<VersionInfo> <VersionInfo>
<StringTable ProductVersion=""/> <StringTable ProductVersion=""/>
</VersionInfo> </VersionInfo>
<BuildModes Count="1">
<Item1 Name="default" Default="True"/>
</BuildModes>
<PublishOptions> <PublishOptions>
<Version Value="2"/> <Version Value="2"/>
<IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/> <IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
@ -27,11 +30,6 @@
<LaunchingApplication PathPlusParams="\usr\X11R6\bin\xterm -T 'Lazarus Run Output' -e $(LazarusDir)\tools\runwait.sh $(TargetCmdLine)"/> <LaunchingApplication PathPlusParams="\usr\X11R6\bin\xterm -T 'Lazarus Run Output' -e $(LazarusDir)\tools\runwait.sh $(TargetCmdLine)"/>
</local> </local>
</RunParams> </RunParams>
<RequiredPackages Count="1">
<Item1>
<PackageName Value="wst_core"/>
</Item1>
</RequiredPackages>
<Units Count="2"> <Units Count="2">
<Unit0> <Unit0>
<Filename Value="user_client_console.pas"/> <Filename Value="user_client_console.pas"/>
@ -52,7 +50,7 @@
<Filename Value="user_client_console.exe"/> <Filename Value="user_client_console.exe"/>
</Target> </Target>
<SearchPaths> <SearchPaths>
<OtherUnitFiles Value="..\;..\..\;..\..\fcl-units\fcl-json\src\;$(LazarusDir)\others_package\synapse\"/> <OtherUnitFiles Value="..;..\..;$(LazarusDir)\others_package\synapse;$(LazarusDir)\others_package\indy-10.2.0.3\fpc"/>
<UnitOutputDirectory Value="obj"/> <UnitOutputDirectory Value="obj"/>
</SearchPaths> </SearchPaths>
<Parsing> <Parsing>

View File

@ -1,3 +1,5 @@
{ $DEFINE USING_APACHE} //So it will adapt the service's address
program user_client_console; program user_client_console;
{$mode objfpc}{$H+} {$mode objfpc}{$H+}
@ -5,8 +7,8 @@ program user_client_console;
uses uses
Classes, SysUtils, TypInfo, {$IFDEF WINDOWS}ActiveX,{$ENDIF} Classes, SysUtils, TypInfo, {$IFDEF WINDOWS}ActiveX,{$ENDIF}
user_service_intf_proxy, user_service_intf_proxy,
same_process_protocol, synapse_tcp_protocol, synapse_http_protocol, library_protocol, //same_process_protocol, synapse_tcp_protocol, synapse_http_protocol, library_protocol,
// same_process_protocol, indy_tcp_protocol, indy_http_protocol, library_protocol, same_process_protocol, indy_tcp_protocol, indy_http_protocol, library_protocol,
// same_process_protocol, ics_tcp_protocol, ics_http_protocol, library_protocol, // same_process_protocol, ics_tcp_protocol, ics_http_protocol, library_protocol,
soap_formatter, binary_formatter, json_formatter, soap_formatter, binary_formatter, json_formatter,
user_service_intf, xmlrpc_formatter, service_intf; user_service_intf, xmlrpc_formatter, service_intf;
@ -147,8 +149,12 @@ const ADDRESS_MAP : array[TTransportType] of string = (
//'LIB:FileName=C:\Programmes\D7\etatcivil\partages\wst\samples\library_server\lib_server.dll;target=UserService', //'LIB:FileName=C:\Programmes\D7\etatcivil\partages\wst\samples\library_server\lib_server.dll;target=UserService',
//'TCP:Address=172.16.82.31;Port=1234;target=UserService', //'TCP:Address=172.16.82.31;Port=1234;target=UserService',
'TCP:Address=127.0.0.1;Port=1234;target=UserService', 'TCP:Address=127.0.0.1;Port=1234;target=UserService',
//'http:Address=http://127.0.0.1:8888/wst/services/lib_server/UserService' {$IFDEF USING_APACHE}
'http:Address=http://127.0.0.1:8080/wst/services/UserService'
{$ELSE USING_APACHE}
'http:Address=http://127.0.0.1:8000/services/UserService' 'http:Address=http://127.0.0.1:8000/services/UserService'
{$ENDIF USING_APACHE}
//'http:Address=http://127.0.0.1:8888/wst/services/lib_server/UserService'
//'http:Address=http://127.0.0.1:8080/cgi-bin/demoservice.cgi/WST/%s/UserService/' //'http:Address=http://127.0.0.1:8080/cgi-bin/demoservice.cgi/WST/%s/UserService/'
); );
FORMAT_MAP : array[TFormatType] of string =( 'binary', 'SOAP', 'xmlrpc', 'json', 'json' ); FORMAT_MAP : array[TFormatType] of string =( 'binary', 'SOAP', 'xmlrpc', 'json', 'json' );
@ -236,10 +242,10 @@ begin
{$IF DECLARED(SetHeapTraceOutput)} {$IF DECLARED(SetHeapTraceOutput)}
SetHeapTraceOutput('heaptrace.txt'); SetHeapTraceOutput('heaptrace.txt');
{$IFEND} {$IFEND}
SYNAPSE_RegisterTCP_Transport(); // SYNAPSE_RegisterTCP_Transport();
SYNAPSE_RegisterHTTP_Transport(); // SYNAPSE_RegisterHTTP_Transport();
// INDY_RegisterTCP_Transport(); INDY_RegisterTCP_Transport();
// INDY_RegisterHTTP_Transport(); INDY_RegisterHTTP_Transport();
// ICS_RegisterTCP_Transport(); // ICS_RegisterTCP_Transport();
// ICS_RegisterHTTP_Transport(); // ICS_RegisterHTTP_Transport();
LIB_Register_Transport(); LIB_Register_Transport();

View File

@ -2,7 +2,7 @@
This unit has been produced by ws_helper. This unit has been produced by ws_helper.
Input unit name : "user_service_intf". Input unit name : "user_service_intf".
This unit name : "user_service_intf". This unit name : "user_service_intf".
Date : "29/01/2010 14:54:18". Date : "22/07/2011 11:31:59".
} }
unit user_service_intf; unit user_service_intf;
{$IFDEF FPC} {$IFDEF FPC}
@ -68,7 +68,7 @@ type
end; end;
UserService = interface(IInvokable) UserService = interface(IInvokable)
['{2F9B181F-BA33-4148-A2A3-42CB450C43CE}'] ['{1A6AE445-B888-41D1-BDC2-C3BE9C8F60D3}']
function GetList():TUserArray; function GetList():TUserArray;
procedure Add( procedure Add(
const AUser : TUser const AUser : TUser

View File

@ -2,7 +2,7 @@
This unit has been produced by ws_helper. This unit has been produced by ws_helper.
Input unit name : "user_service_intf". Input unit name : "user_service_intf".
This unit name : "user_service_intf_binder". This unit name : "user_service_intf_binder".
Date : "29/01/2010 14:54:30". Date : "22/07/2011 11:31:16".
} }
unit user_service_intf_binder; unit user_service_intf_binder;
{$IFDEF FPC} {$mode objfpc}{$H+} {$ENDIF} {$IFDEF FPC} {$mode objfpc}{$H+} {$ENDIF}

View File

@ -2,7 +2,7 @@
This unit has been produced by ws_helper. This unit has been produced by ws_helper.
Input unit name : "user_service_intf". Input unit name : "user_service_intf".
This unit name : "user_service_intf_proxy". This unit name : "user_service_intf_proxy".
Date : "29/01/2010 14:54:18". Date : "22/07/2011 11:31:59".
} }
Unit user_service_intf_proxy; Unit user_service_intf_proxy;