delphimvcframework/unittests/general/TestServer/TestServer.dpr
Daniele Teti 79407d71e1 - create include files to easily mantain aligned all the dpks
- still facing with this issue in Delphi 11 Alexandria (https://quality.embarcadero.com/browse/RSP-35516). Compression works, but the debugger catches an exception raised in "normal cases".
2021-09-29 19:30:14 +02:00

85 lines
3.7 KiB
ObjectPascal

program TestServer;
{$APPTYPE CONSOLE}
uses
System.SysUtils,
IdHTTPWebBrokerBridge,
Web.WebReq,
{$IFNDEF LINUX}
Winapi.Windows,
{$ENDIF }
Web.WebBroker,
MVCFramework.Commons,
MVCFramework.Console,
WebModuleUnit in 'WebModuleUnit.pas' {MainWebModule: TWebModule},
TestServerControllerU in 'TestServerControllerU.pas',
TestServerControllerExceptionU in 'TestServerControllerExceptionU.pas',
SpeedMiddlewareU in 'SpeedMiddlewareU.pas',
TestServerControllerPrivateU in 'TestServerControllerPrivateU.pas',
AuthHandlersU in 'AuthHandlersU.pas',
BusinessObjectsU in '..\..\..\samples\commons\BusinessObjectsU.pas',
MVCFramework in '..\..\..\sources\MVCFramework.pas',
TestServerControllerJSONRPCU in 'TestServerControllerJSONRPCU.pas',
MVCFramework.JSONRPC in '..\..\..\sources\MVCFramework.JSONRPC.pas',
RandomUtilsU in '..\..\..\samples\commons\RandomUtilsU.pas',
MVCFramework.Serializer.HTML in '..\..\..\sources\MVCFramework.Serializer.HTML.pas',
MVCFramework.Tests.Serializer.Entities in '..\..\common\MVCFramework.Tests.Serializer.Entities.pas';
{$R *.res}
procedure Logo;
begin
ResetConsole();
Writeln;
TextBackground(TConsoleColor.Black);
TextColor(TConsoleColor.Red);
Writeln(' ██████╗ ███╗ ███╗██╗ ██╗ ██████╗ ███████╗███████╗██████╗ ██╗ ██╗███████╗██████╗');
Writeln(' ██╔══██╗████╗ ████║██║ ██║██╔════╝ ██╔════╝██╔════╝██╔══██╗██║ ██║██╔════╝██╔══██╗');
Writeln(' ██║ ██║██╔████╔██║██║ ██║██║ ███████╗█████╗ ██████╔╝██║ ██║█████╗ ██████╔╝');
Writeln(' ██║ ██║██║╚██╔╝██║╚██╗ ██╔╝██║ ╚════██║██╔══╝ ██╔══██╗╚██╗ ██╔╝██╔══╝ ██╔══██╗');
Writeln(' ██████╔╝██║ ╚═╝ ██║ ╚████╔╝ ╚██████╗ ███████║███████╗██║ ██║ ╚████╔╝ ███████╗██║ ██║');
Writeln(' ╚═════╝ ╚═╝ ╚═╝ ╚═══╝ ╚═════╝ ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚══════╝╚═╝ ╚═╝');
Writeln(' ');
TextColor(TConsoleColor.Yellow);
Writeln('DMVCFRAMEWORK VERSION: ', DMVCFRAMEWORK_VERSION);
TextColor(TConsoleColor.White);
end;
procedure RunServer(APort: Integer);
var
LServer: TIdHTTPWebBrokerBridge;
begin
Logo;
Writeln(Format('Starting HTTP Server or port %d', [APort]));
LServer := TIdHTTPWebBrokerBridge.Create(nil);
try
LServer.OnParseAuthentication :=
TMVCParseAuthentication.OnParseAuthentication;
LServer.DefaultPort := APort;
LServer.Active := True;
LServer.MaxConnections := 0;
LServer.ListenQueue := 200;
Writeln('Press RETURN to stop the server');
WaitForReturn;
TextColor(TConsoleColor.Red);
Writeln('Server stopped');
ResetConsole();
finally
LServer.Free;
end;
end;
begin
ReportMemoryLeaksOnShutdown := True;
try
if WebRequestHandler <> nil then
WebRequestHandler.WebModuleClass := WebModuleClass;
RunServer(9999);
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end.