mirror of
https://github.com/danieleteti/delphimvcframework.git
synced 2024-11-15 15:55:54 +01:00
Improved router ACCEPT resolution - Improved MSSQLServer support for nvarchar(max) data type
This commit is contained in:
parent
2f43b31bbd
commit
3793a42b5d
@ -79,6 +79,7 @@ Congratulations to Daniele Teti and all the staff for the excellent work!" -- Ma
|
|||||||
- New! Added support for interfaces serialization - now it is possible to serialize Spring4D collections (thanks to [João Antônio Duarte](https://github.com/joaoduarte19))
|
- New! Added support for interfaces serialization - now it is possible to serialize Spring4D collections (thanks to [João Antônio Duarte](https://github.com/joaoduarte19))
|
||||||
- New! Added support for Spring4D Nullable Types - check (thanks to [João Antônio Duarte](https://github.com/joaoduarte19))
|
- New! Added support for Spring4D Nullable Types - check (thanks to [João Antônio Duarte](https://github.com/joaoduarte19))
|
||||||
- Added `TMVCJSONRPCExecutor.ConfigHTTPClient` to fully customize the inner `THTTPClient` (e.g. `ConnectionTimeout`, `ResponseTimeout` and so on)
|
- Added `TMVCJSONRPCExecutor.ConfigHTTPClient` to fully customize the inner `THTTPClient` (e.g. `ConnectionTimeout`, `ResponseTimeout` and so on)
|
||||||
|
- Improved! Now the router consider `Accept:*/*` compatible for every `MVCProduces` values
|
||||||
- Improved! Greatly improved support for [HATEOAS](https://en.wikipedia.org/wiki/HATEOAS) in renders. Check `TRenderSampleController.GetPeople_AsObjectList_HATEOS` and all the others actions end with `HATEOS` in `renders.dproj` sample)
|
- Improved! Greatly improved support for [HATEOAS](https://en.wikipedia.org/wiki/HATEOAS) in renders. Check `TRenderSampleController.GetPeople_AsObjectList_HATEOS` and all the others actions end with `HATEOS` in `renders.dproj` sample)
|
||||||
|
|
||||||
```delphi
|
```delphi
|
||||||
|
@ -131,7 +131,8 @@ contains
|
|||||||
Swag.Doc.SecurityDefinitionApiKey in '..\..\lib\swagdoc\Source\Swag.Doc.SecurityDefinitionApiKey.pas',
|
Swag.Doc.SecurityDefinitionApiKey in '..\..\lib\swagdoc\Source\Swag.Doc.SecurityDefinitionApiKey.pas',
|
||||||
Swag.Doc.SecurityDefinitionBasic in '..\..\lib\swagdoc\Source\Swag.Doc.SecurityDefinitionBasic.pas',
|
Swag.Doc.SecurityDefinitionBasic in '..\..\lib\swagdoc\Source\Swag.Doc.SecurityDefinitionBasic.pas',
|
||||||
Swag.Doc.SecurityDefinitionOAuth2 in '..\..\lib\swagdoc\Source\Swag.Doc.SecurityDefinitionOAuth2.pas',
|
Swag.Doc.SecurityDefinitionOAuth2 in '..\..\lib\swagdoc\Source\Swag.Doc.SecurityDefinitionOAuth2.pas',
|
||||||
Swag.Doc.Tags in '..\..\lib\swagdoc\Source\Swag.Doc.Tags.pas';
|
Swag.Doc.Tags in '..\..\lib\swagdoc\Source\Swag.Doc.Tags.pas',
|
||||||
|
MVCFramework.Middleware.Trace in '..\..\sources\MVCFramework.Middleware.Trace.pas';
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
@ -107,7 +107,7 @@
|
|||||||
<DCC_RemoteDebug>true</DCC_RemoteDebug>
|
<DCC_RemoteDebug>true</DCC_RemoteDebug>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
|
<PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
|
||||||
<Debugger_HostApplication>C:\DEV\dmscontainer3\bin\DMSContainerService.exe</Debugger_HostApplication>
|
<Debugger_HostApplication>C:\DEV\dmscontainer v3.1.0\bin\DMSContainerService.exe</Debugger_HostApplication>
|
||||||
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
|
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
|
||||||
<VerInfo_Locale>1033</VerInfo_Locale>
|
<VerInfo_Locale>1033</VerInfo_Locale>
|
||||||
<DCC_MapFile>3</DCC_MapFile>
|
<DCC_MapFile>3</DCC_MapFile>
|
||||||
@ -115,6 +115,7 @@
|
|||||||
<DllSuffix>103</DllSuffix>
|
<DllSuffix>103</DllSuffix>
|
||||||
<Debugger_IncludeSystemVars>true</Debugger_IncludeSystemVars>
|
<Debugger_IncludeSystemVars>true</Debugger_IncludeSystemVars>
|
||||||
<DCC_UNSUPPORTED_CONSTRUCT>false</DCC_UNSUPPORTED_CONSTRUCT>
|
<DCC_UNSUPPORTED_CONSTRUCT>false</DCC_UNSUPPORTED_CONSTRUCT>
|
||||||
|
<Debugger_RunParams>/console</Debugger_RunParams>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Cfg_2)'!=''">
|
<PropertyGroup Condition="'$(Cfg_2)'!=''">
|
||||||
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
|
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
|
||||||
@ -224,6 +225,7 @@
|
|||||||
<DCCReference Include="..\..\lib\swagdoc\Source\Swag.Doc.SecurityDefinitionBasic.pas"/>
|
<DCCReference Include="..\..\lib\swagdoc\Source\Swag.Doc.SecurityDefinitionBasic.pas"/>
|
||||||
<DCCReference Include="..\..\lib\swagdoc\Source\Swag.Doc.SecurityDefinitionOAuth2.pas"/>
|
<DCCReference Include="..\..\lib\swagdoc\Source\Swag.Doc.SecurityDefinitionOAuth2.pas"/>
|
||||||
<DCCReference Include="..\..\lib\swagdoc\Source\Swag.Doc.Tags.pas"/>
|
<DCCReference Include="..\..\lib\swagdoc\Source\Swag.Doc.Tags.pas"/>
|
||||||
|
<DCCReference Include="..\..\sources\MVCFramework.Middleware.Trace.pas"/>
|
||||||
<BuildConfiguration Include="Release">
|
<BuildConfiguration Include="Release">
|
||||||
<Key>Cfg_2</Key>
|
<Key>Cfg_2</Key>
|
||||||
<CfgParent>Base</CfgParent>
|
<CfgParent>Base</CfgParent>
|
||||||
|
@ -19,7 +19,7 @@ object MainForm: TMainForm
|
|||||||
Top = 0
|
Top = 0
|
||||||
Width = 842
|
Width = 842
|
||||||
Height = 527
|
Height = 527
|
||||||
ActivePage = TabSheet1
|
ActivePage = TabSheet2
|
||||||
Align = alClient
|
Align = alClient
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
object TabSheet1: TTabSheet
|
object TabSheet1: TTabSheet
|
||||||
@ -197,6 +197,15 @@ object MainForm: TMainForm
|
|||||||
TabOrder = 15
|
TabOrder = 15
|
||||||
OnClick = btnFloatsTestsClick
|
OnClick = btnFloatsTestsClick
|
||||||
end
|
end
|
||||||
|
object btnWithJSON: TButton
|
||||||
|
Left = 545
|
||||||
|
Top = 30
|
||||||
|
Width = 75
|
||||||
|
Height = 25
|
||||||
|
Caption = 'JSON Prop'
|
||||||
|
TabOrder = 16
|
||||||
|
OnClick = btnWithJSONClick
|
||||||
|
end
|
||||||
end
|
end
|
||||||
object GroupBox2: TGroupBox
|
object GroupBox2: TGroupBox
|
||||||
Left = 3
|
Left = 3
|
||||||
@ -339,9 +348,12 @@ object MainForm: TMainForm
|
|||||||
Left = 11
|
Left = 11
|
||||||
Top = 18
|
Top = 18
|
||||||
Width = 489
|
Width = 489
|
||||||
Height = 159
|
Height = 391
|
||||||
Caption = 'Returning Objects'
|
Caption = 'Returning Objects'
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
|
DesignSize = (
|
||||||
|
489
|
||||||
|
391)
|
||||||
object edtSearchText: TEdit
|
object edtSearchText: TEdit
|
||||||
Left = 16
|
Left = 16
|
||||||
Top = 24
|
Top = 24
|
||||||
@ -363,7 +375,8 @@ object MainForm: TMainForm
|
|||||||
Left = 16
|
Left = 16
|
||||||
Top = 53
|
Top = 53
|
||||||
Width = 435
|
Width = 435
|
||||||
Height = 82
|
Height = 316
|
||||||
|
Anchors = [akLeft, akTop, akRight, akBottom]
|
||||||
Font.Charset = DEFAULT_CHARSET
|
Font.Charset = DEFAULT_CHARSET
|
||||||
Font.Color = clWindowText
|
Font.Color = clWindowText
|
||||||
Font.Height = -13
|
Font.Height = -13
|
||||||
@ -375,15 +388,6 @@ object MainForm: TMainForm
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
object btnWithJSON: TButton
|
|
||||||
Left = 552
|
|
||||||
Top = 76
|
|
||||||
Width = 75
|
|
||||||
Height = 25
|
|
||||||
Caption = 'JSON Prop'
|
|
||||||
TabOrder = 1
|
|
||||||
OnClick = btnWithJSONClick
|
|
||||||
end
|
|
||||||
object DataSource1: TDataSource
|
object DataSource1: TDataSource
|
||||||
DataSet = FDMemTable1
|
DataSet = FDMemTable1
|
||||||
Left = 767
|
Left = 767
|
||||||
|
@ -272,8 +272,9 @@ var
|
|||||||
lResp: IJSONRPCResponse;
|
lResp: IJSONRPCResponse;
|
||||||
lJSON: TJsonArray;
|
lJSON: TJsonArray;
|
||||||
I: Integer;
|
I: Integer;
|
||||||
|
lJObj: TJsonObject;
|
||||||
begin
|
begin
|
||||||
lbPerson.Clear;
|
ListBox1.Clear;
|
||||||
lReq := TJSONRPCRequest.Create;
|
lReq := TJSONRPCRequest.Create;
|
||||||
lReq.Method := 'searchproducts';
|
lReq.Method := 'searchproducts';
|
||||||
lReq.RequestID := 1234;
|
lReq.RequestID := 1234;
|
||||||
@ -287,7 +288,8 @@ begin
|
|||||||
lJSON := lResp.Result.AsObject as TJsonArray;
|
lJSON := lResp.Result.AsObject as TJsonArray;
|
||||||
for I := 0 to lJSON.Count - 1 do
|
for I := 0 to lJSON.Count - 1 do
|
||||||
begin
|
begin
|
||||||
ListBox1.Items.Add(lJSON[I].ObjectValue.ToJSON());
|
lJObj := lJSON[I].ObjectValue;
|
||||||
|
ListBox1.Items.Add(Format('%6s: %-34s € %5.2f',[lJObj.S['codice'], lJObj.S['descrizione'], lJObj.F['prezzo']]));
|
||||||
end;
|
end;
|
||||||
// lbPerson.Items.Add('First Name:'.PadRight(15) + lJSON.S['firstname']);
|
// lbPerson.Items.Add('First Name:'.PadRight(15) + lJSON.S['firstname']);
|
||||||
// lbPerson.Items.Add('Last Name:'.PadRight(15) + lJSON.S['lastname']);
|
// lbPerson.Items.Add('Last Name:'.PadRight(15) + lJSON.S['lastname']);
|
||||||
@ -339,6 +341,7 @@ begin
|
|||||||
lResp := FExecutor.ExecuteRequest(lReq);
|
lResp := FExecutor.ExecuteRequest(lReq);
|
||||||
FDMemTable1.Active := True;
|
FDMemTable1.Active := True;
|
||||||
FDMemTable1.LoadFromTValue(lResp.Result);
|
FDMemTable1.LoadFromTValue(lResp.Result);
|
||||||
|
FDMemTable1.First;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TMainForm.FormCreate(Sender: TObject);
|
procedure TMainForm.FormCreate(Sender: TObject);
|
||||||
|
@ -9,9 +9,6 @@
|
|||||||
<Projects Include="jsonrpcclientwithobjects.dproj">
|
<Projects Include="jsonrpcclientwithobjects.dproj">
|
||||||
<Dependencies/>
|
<Dependencies/>
|
||||||
</Projects>
|
</Projects>
|
||||||
<Projects Include="..\custom_exception_handling\custom_exception_handling.dproj">
|
|
||||||
<Dependencies/>
|
|
||||||
</Projects>
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ProjectExtensions>
|
<ProjectExtensions>
|
||||||
<Borland.Personality>Default.Personality.12</Borland.Personality>
|
<Borland.Personality>Default.Personality.12</Borland.Personality>
|
||||||
@ -38,23 +35,14 @@
|
|||||||
<Target Name="jsonrpcclientwithobjects:Make">
|
<Target Name="jsonrpcclientwithobjects:Make">
|
||||||
<MSBuild Projects="jsonrpcclientwithobjects.dproj" Targets="Make"/>
|
<MSBuild Projects="jsonrpcclientwithobjects.dproj" Targets="Make"/>
|
||||||
</Target>
|
</Target>
|
||||||
<Target Name="custom_exception_handling">
|
|
||||||
<MSBuild Projects="..\custom_exception_handling\custom_exception_handling.dproj"/>
|
|
||||||
</Target>
|
|
||||||
<Target Name="custom_exception_handling:Clean">
|
|
||||||
<MSBuild Projects="..\custom_exception_handling\custom_exception_handling.dproj" Targets="Clean"/>
|
|
||||||
</Target>
|
|
||||||
<Target Name="custom_exception_handling:Make">
|
|
||||||
<MSBuild Projects="..\custom_exception_handling\custom_exception_handling.dproj" Targets="Make"/>
|
|
||||||
</Target>
|
|
||||||
<Target Name="Build">
|
<Target Name="Build">
|
||||||
<CallTarget Targets="jsonrpcserverwithobjects;jsonrpcclientwithobjects;custom_exception_handling"/>
|
<CallTarget Targets="jsonrpcserverwithobjects;jsonrpcclientwithobjects"/>
|
||||||
</Target>
|
</Target>
|
||||||
<Target Name="Clean">
|
<Target Name="Clean">
|
||||||
<CallTarget Targets="jsonrpcserverwithobjects:Clean;jsonrpcclientwithobjects:Clean;custom_exception_handling:Clean"/>
|
<CallTarget Targets="jsonrpcserverwithobjects:Clean;jsonrpcclientwithobjects:Clean"/>
|
||||||
</Target>
|
</Target>
|
||||||
<Target Name="Make">
|
<Target Name="Make">
|
||||||
<CallTarget Targets="jsonrpcserverwithobjects:Make;jsonrpcclientwithobjects:Make;custom_exception_handling:Make"/>
|
<CallTarget Targets="jsonrpcserverwithobjects:Make;jsonrpcclientwithobjects:Make"/>
|
||||||
</Target>
|
</Target>
|
||||||
<Import Project="$(BDS)\Bin\CodeGear.Group.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Group.Targets')"/>
|
<Import Project="$(BDS)\Bin\CodeGear.Group.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Group.Targets')"/>
|
||||||
</Project>
|
</Project>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<ProjectGuid>{300F83FF-8F7B-43FD-B740-A3DFDF7238ED}</ProjectGuid>
|
<ProjectGuid>{300F83FF-8F7B-43FD-B740-A3DFDF7238ED}</ProjectGuid>
|
||||||
<ProjectVersion>18.7</ProjectVersion>
|
<ProjectVersion>18.8</ProjectVersion>
|
||||||
<FrameworkType>VCL</FrameworkType>
|
<FrameworkType>VCL</FrameworkType>
|
||||||
<MainSource>jsonrpcclientwithobjects.dpr</MainSource>
|
<MainSource>jsonrpcclientwithobjects.dpr</MainSource>
|
||||||
<Base>True</Base>
|
<Base>True</Base>
|
||||||
@ -151,12 +151,20 @@
|
|||||||
<RemoteDir>classes</RemoteDir>
|
<RemoteDir>classes</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>classes</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="AndroidFileProvider">
|
<DeployClass Name="AndroidFileProvider">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<RemoteDir>res\xml</RemoteDir>
|
<RemoteDir>res\xml</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\xml</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="AndroidGDBServer">
|
<DeployClass Name="AndroidGDBServer">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
@ -169,138 +177,242 @@
|
|||||||
<RemoteDir>library\lib\armeabi</RemoteDir>
|
<RemoteDir>library\lib\armeabi</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>library\lib\armeabi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="AndroidLibnativeArmeabiv7aFile">
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="AndroidLibnativeMipsFile">
|
<DeployClass Name="AndroidLibnativeMipsFile">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<RemoteDir>library\lib\mips</RemoteDir>
|
<RemoteDir>library\lib\mips</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>library\lib\mips</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="AndroidServiceOutput">
|
<DeployClass Name="AndroidServiceOutput">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>library\lib\arm64-v8a</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="AndroidServiceOutput_Android32">
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="AndroidSplashImageDef">
|
<DeployClass Name="AndroidSplashImageDef">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<RemoteDir>res\drawable</RemoteDir>
|
<RemoteDir>res\drawable</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="AndroidSplashStyles">
|
<DeployClass Name="AndroidSplashStyles">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<RemoteDir>res\values</RemoteDir>
|
<RemoteDir>res\values</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\values</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="AndroidSplashStylesV21">
|
<DeployClass Name="AndroidSplashStylesV21">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<RemoteDir>res\values-v21</RemoteDir>
|
<RemoteDir>res\values-v21</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\values-v21</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="Android_Colors">
|
<DeployClass Name="Android_Colors">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<RemoteDir>res\values</RemoteDir>
|
<RemoteDir>res\values</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\values</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="Android_DefaultAppIcon">
|
<DeployClass Name="Android_DefaultAppIcon">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<RemoteDir>res\drawable</RemoteDir>
|
<RemoteDir>res\drawable</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="Android_LauncherIcon144">
|
<DeployClass Name="Android_LauncherIcon144">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<RemoteDir>res\drawable-xxhdpi</RemoteDir>
|
<RemoteDir>res\drawable-xxhdpi</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-xxhdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="Android_LauncherIcon36">
|
<DeployClass Name="Android_LauncherIcon36">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<RemoteDir>res\drawable-ldpi</RemoteDir>
|
<RemoteDir>res\drawable-ldpi</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-ldpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="Android_LauncherIcon48">
|
<DeployClass Name="Android_LauncherIcon48">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<RemoteDir>res\drawable-mdpi</RemoteDir>
|
<RemoteDir>res\drawable-mdpi</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-mdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="Android_LauncherIcon72">
|
<DeployClass Name="Android_LauncherIcon72">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<RemoteDir>res\drawable-hdpi</RemoteDir>
|
<RemoteDir>res\drawable-hdpi</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-hdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="Android_LauncherIcon96">
|
<DeployClass Name="Android_LauncherIcon96">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<RemoteDir>res\drawable-xhdpi</RemoteDir>
|
<RemoteDir>res\drawable-xhdpi</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-xhdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="Android_NotificationIcon24">
|
<DeployClass Name="Android_NotificationIcon24">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<RemoteDir>res\drawable-mdpi</RemoteDir>
|
<RemoteDir>res\drawable-mdpi</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-mdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="Android_NotificationIcon36">
|
<DeployClass Name="Android_NotificationIcon36">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<RemoteDir>res\drawable-hdpi</RemoteDir>
|
<RemoteDir>res\drawable-hdpi</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-hdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="Android_NotificationIcon48">
|
<DeployClass Name="Android_NotificationIcon48">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<RemoteDir>res\drawable-xhdpi</RemoteDir>
|
<RemoteDir>res\drawable-xhdpi</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-xhdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="Android_NotificationIcon72">
|
<DeployClass Name="Android_NotificationIcon72">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<RemoteDir>res\drawable-xxhdpi</RemoteDir>
|
<RemoteDir>res\drawable-xxhdpi</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-xxhdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="Android_NotificationIcon96">
|
<DeployClass Name="Android_NotificationIcon96">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<RemoteDir>res\drawable-xxxhdpi</RemoteDir>
|
<RemoteDir>res\drawable-xxxhdpi</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-xxxhdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="Android_SplashImage426">
|
<DeployClass Name="Android_SplashImage426">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<RemoteDir>res\drawable-small</RemoteDir>
|
<RemoteDir>res\drawable-small</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-small</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="Android_SplashImage470">
|
<DeployClass Name="Android_SplashImage470">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<RemoteDir>res\drawable-normal</RemoteDir>
|
<RemoteDir>res\drawable-normal</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-normal</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="Android_SplashImage640">
|
<DeployClass Name="Android_SplashImage640">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<RemoteDir>res\drawable-large</RemoteDir>
|
<RemoteDir>res\drawable-large</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-large</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="Android_SplashImage960">
|
<DeployClass Name="Android_SplashImage960">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<RemoteDir>res\drawable-xlarge</RemoteDir>
|
<RemoteDir>res\drawable-xlarge</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-xlarge</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="Android_Strings">
|
<DeployClass Name="Android_Strings">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<RemoteDir>res\values</RemoteDir>
|
<RemoteDir>res\values</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\values</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="DebugSymbols">
|
<DeployClass Name="DebugSymbols">
|
||||||
<Platform Name="iOSSimulator">
|
<Platform Name="iOSSimulator">
|
||||||
@ -389,6 +501,9 @@
|
|||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<Operation>0</Operation>
|
<Operation>0</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
</Platform>
|
||||||
<Platform Name="iOSDevice32">
|
<Platform Name="iOSDevice32">
|
||||||
<Operation>0</Operation>
|
<Operation>0</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
@ -722,6 +837,9 @@
|
|||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="ProjectiOSDeviceDebug">
|
<DeployClass Name="ProjectiOSDeviceDebug">
|
||||||
<Platform Name="iOSDevice32">
|
<Platform Name="iOSDevice32">
|
||||||
@ -814,6 +932,10 @@
|
|||||||
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>library\lib\arm64-v8a</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
<Platform Name="iOSDevice32">
|
<Platform Name="iOSDevice32">
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
@ -838,6 +960,12 @@
|
|||||||
<Operation>0</Operation>
|
<Operation>0</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectOutput_Android32">
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
<DeployClass Name="ProjectUWPManifest">
|
<DeployClass Name="ProjectUWPManifest">
|
||||||
<Platform Name="Win32">
|
<Platform Name="Win32">
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
@ -875,6 +1003,7 @@
|
|||||||
<ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
|
<ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
|
||||||
<ProjectRoot Platform="OSX64" Name="$(PROJECTNAME).app"/>
|
<ProjectRoot Platform="OSX64" Name="$(PROJECTNAME).app"/>
|
||||||
<ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
|
<ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
|
||||||
|
<ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/>
|
||||||
</Deployment>
|
</Deployment>
|
||||||
<Platforms>
|
<Platforms>
|
||||||
<Platform value="Win32">True</Platform>
|
<Platform value="Win32">True</Platform>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<ProjectGuid>{AF5FBC36-0D1D-4C07-B2E3-C2A2E688AC6F}</ProjectGuid>
|
<ProjectGuid>{AF5FBC36-0D1D-4C07-B2E3-C2A2E688AC6F}</ProjectGuid>
|
||||||
<ProjectVersion>18.7</ProjectVersion>
|
<ProjectVersion>18.8</ProjectVersion>
|
||||||
<FrameworkType>VCL</FrameworkType>
|
<FrameworkType>VCL</FrameworkType>
|
||||||
<MainSource>jsonrpcserverwithobjects.dpr</MainSource>
|
<MainSource>jsonrpcserverwithobjects.dpr</MainSource>
|
||||||
<Base>True</Base>
|
<Base>True</Base>
|
||||||
@ -18,6 +18,11 @@
|
|||||||
<CfgParent>Base</CfgParent>
|
<CfgParent>Base</CfgParent>
|
||||||
<Base>true</Base>
|
<Base>true</Base>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="('$(Platform)'=='Android64' and '$(Base)'=='true') or '$(Base_Android64)'!=''">
|
||||||
|
<Base_Android64>true</Base_Android64>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="('$(Platform)'=='Linux64' and '$(Base)'=='true') or '$(Base_Linux64)'!=''">
|
<PropertyGroup Condition="('$(Platform)'=='Linux64' and '$(Base)'=='true') or '$(Base_Linux64)'!=''">
|
||||||
<Base_Linux64>true</Base_Linux64>
|
<Base_Linux64>true</Base_Linux64>
|
||||||
<CfgParent>Base</CfgParent>
|
<CfgParent>Base</CfgParent>
|
||||||
@ -75,6 +80,20 @@
|
|||||||
<Android_NotificationIcon72>$(BDS)\bin\Artwork\Android\FM_NotificationIcon_72x72.png</Android_NotificationIcon72>
|
<Android_NotificationIcon72>$(BDS)\bin\Artwork\Android\FM_NotificationIcon_72x72.png</Android_NotificationIcon72>
|
||||||
<Android_NotificationIcon96>$(BDS)\bin\Artwork\Android\FM_NotificationIcon_96x96.png</Android_NotificationIcon96>
|
<Android_NotificationIcon96>$(BDS)\bin\Artwork\Android\FM_NotificationIcon_96x96.png</Android_NotificationIcon96>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Base_Android64)'!=''">
|
||||||
|
<VerInfo_Keys>package=com.embarcadero.$(MSBuildProjectName);label=$(MSBuildProjectName);versionCode=1;versionName=1.0.0;persistent=False;restoreAnyVersion=False;installLocation=auto;largeHeap=False;theme=TitleBar;hardwareAccelerated=true;apiKey=</VerInfo_Keys>
|
||||||
|
<BT_BuildType>Debug</BT_BuildType>
|
||||||
|
<Base_Android>true</Base_Android>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
<Base>true</Base>
|
||||||
|
<DCC_UsePackage>DBXSqliteDriver;DBXInterBaseDriver;tethering;bindcompfmx;FmxTeeUI;fmx;FireDACDBXDriver;dbexpress;IndyCore;dsnap;DataSnapCommon;bindengine;DataSnapClient;IndyIPCommon;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;ibmonitor;FMXTee;DbxCommonDriver;ibxpress;xmlrtl;DataSnapNativeClient;FireDACDSDriver;rtl;ibxbindings;DbxClientDriver;CustomIPTransport;bindcomp;IndyIPClient;dbxcds;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;$(DCC_UsePackage);$(DCC_UsePackage)</DCC_UsePackage>
|
||||||
|
<EnabledSysJars>android-support-v4.dex.jar;cloud-messaging.dex.jar;fmx.dex.jar;google-analytics-v2.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar;google-play-services.dex.jar</EnabledSysJars>
|
||||||
|
<Android_NotificationIcon24>$(BDS)\bin\Artwork\Android\FM_NotificationIcon_24x24.png</Android_NotificationIcon24>
|
||||||
|
<Android_NotificationIcon36>$(BDS)\bin\Artwork\Android\FM_NotificationIcon_36x36.png</Android_NotificationIcon36>
|
||||||
|
<Android_NotificationIcon48>$(BDS)\bin\Artwork\Android\FM_NotificationIcon_48x48.png</Android_NotificationIcon48>
|
||||||
|
<Android_NotificationIcon72>$(BDS)\bin\Artwork\Android\FM_NotificationIcon_72x72.png</Android_NotificationIcon72>
|
||||||
|
<Android_NotificationIcon96>$(BDS)\bin\Artwork\Android\FM_NotificationIcon_96x96.png</Android_NotificationIcon96>
|
||||||
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Base_Linux64)'!=''">
|
<PropertyGroup Condition="'$(Base_Linux64)'!=''">
|
||||||
<DCC_UsePackage>FireDACADSDriver;DatasnapConnectorsFreePascal;FireDACMSSQLDriver;Spring.Data;inetdb;emsedge;dbexpress;IndyCore;dsnap;DataSnapCommon;DataSnapConnectors;bindengine;FireDACOracleDriver;FireDACMySQLDriver;FireDACCommonODBC;DataSnapClient;IndySystem;FireDACDb2Driver;FireDACInfxDriver;emshosting;FireDACPgDriver;FireDACASADriver;FireDACTDataDriver;DbxCommonDriver;DataSnapServer;xmlrtl;DataSnapNativeClient;rtl;DbxClientDriver;CustomIPTransport;bindcomp;dbxcds;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;dbrtl;IndyProtocols;FireDACMongoDBDriver;DataSnapServerMidas;$(DCC_UsePackage)</DCC_UsePackage>
|
<DCC_UsePackage>FireDACADSDriver;DatasnapConnectorsFreePascal;FireDACMSSQLDriver;Spring.Data;inetdb;emsedge;dbexpress;IndyCore;dsnap;DataSnapCommon;DataSnapConnectors;bindengine;FireDACOracleDriver;FireDACMySQLDriver;FireDACCommonODBC;DataSnapClient;IndySystem;FireDACDb2Driver;FireDACInfxDriver;emshosting;FireDACPgDriver;FireDACASADriver;FireDACTDataDriver;DbxCommonDriver;DataSnapServer;xmlrtl;DataSnapNativeClient;rtl;DbxClientDriver;CustomIPTransport;bindcomp;dbxcds;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;dbrtl;IndyProtocols;FireDACMongoDBDriver;DataSnapServerMidas;$(DCC_UsePackage)</DCC_UsePackage>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
@ -184,12 +203,20 @@
|
|||||||
<RemoteDir>classes</RemoteDir>
|
<RemoteDir>classes</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>classes</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="AndroidFileProvider">
|
<DeployClass Name="AndroidFileProvider">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<RemoteDir>res\xml</RemoteDir>
|
<RemoteDir>res\xml</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\xml</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="AndroidGDBServer">
|
<DeployClass Name="AndroidGDBServer">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
@ -202,138 +229,242 @@
|
|||||||
<RemoteDir>library\lib\armeabi</RemoteDir>
|
<RemoteDir>library\lib\armeabi</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>library\lib\armeabi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="AndroidLibnativeArmeabiv7aFile">
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="AndroidLibnativeMipsFile">
|
<DeployClass Name="AndroidLibnativeMipsFile">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<RemoteDir>library\lib\mips</RemoteDir>
|
<RemoteDir>library\lib\mips</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>library\lib\mips</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="AndroidServiceOutput">
|
<DeployClass Name="AndroidServiceOutput">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>library\lib\arm64-v8a</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="AndroidServiceOutput_Android32">
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="AndroidSplashImageDef">
|
<DeployClass Name="AndroidSplashImageDef">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<RemoteDir>res\drawable</RemoteDir>
|
<RemoteDir>res\drawable</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="AndroidSplashStyles">
|
<DeployClass Name="AndroidSplashStyles">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<RemoteDir>res\values</RemoteDir>
|
<RemoteDir>res\values</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\values</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="AndroidSplashStylesV21">
|
<DeployClass Name="AndroidSplashStylesV21">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<RemoteDir>res\values-v21</RemoteDir>
|
<RemoteDir>res\values-v21</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\values-v21</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="Android_Colors">
|
<DeployClass Name="Android_Colors">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<RemoteDir>res\values</RemoteDir>
|
<RemoteDir>res\values</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\values</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="Android_DefaultAppIcon">
|
<DeployClass Name="Android_DefaultAppIcon">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<RemoteDir>res\drawable</RemoteDir>
|
<RemoteDir>res\drawable</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="Android_LauncherIcon144">
|
<DeployClass Name="Android_LauncherIcon144">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<RemoteDir>res\drawable-xxhdpi</RemoteDir>
|
<RemoteDir>res\drawable-xxhdpi</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-xxhdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="Android_LauncherIcon36">
|
<DeployClass Name="Android_LauncherIcon36">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<RemoteDir>res\drawable-ldpi</RemoteDir>
|
<RemoteDir>res\drawable-ldpi</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-ldpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="Android_LauncherIcon48">
|
<DeployClass Name="Android_LauncherIcon48">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<RemoteDir>res\drawable-mdpi</RemoteDir>
|
<RemoteDir>res\drawable-mdpi</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-mdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="Android_LauncherIcon72">
|
<DeployClass Name="Android_LauncherIcon72">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<RemoteDir>res\drawable-hdpi</RemoteDir>
|
<RemoteDir>res\drawable-hdpi</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-hdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="Android_LauncherIcon96">
|
<DeployClass Name="Android_LauncherIcon96">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<RemoteDir>res\drawable-xhdpi</RemoteDir>
|
<RemoteDir>res\drawable-xhdpi</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-xhdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="Android_NotificationIcon24">
|
<DeployClass Name="Android_NotificationIcon24">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<RemoteDir>res\drawable-mdpi</RemoteDir>
|
<RemoteDir>res\drawable-mdpi</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-mdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="Android_NotificationIcon36">
|
<DeployClass Name="Android_NotificationIcon36">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<RemoteDir>res\drawable-hdpi</RemoteDir>
|
<RemoteDir>res\drawable-hdpi</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-hdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="Android_NotificationIcon48">
|
<DeployClass Name="Android_NotificationIcon48">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<RemoteDir>res\drawable-xhdpi</RemoteDir>
|
<RemoteDir>res\drawable-xhdpi</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-xhdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="Android_NotificationIcon72">
|
<DeployClass Name="Android_NotificationIcon72">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<RemoteDir>res\drawable-xxhdpi</RemoteDir>
|
<RemoteDir>res\drawable-xxhdpi</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-xxhdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="Android_NotificationIcon96">
|
<DeployClass Name="Android_NotificationIcon96">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<RemoteDir>res\drawable-xxxhdpi</RemoteDir>
|
<RemoteDir>res\drawable-xxxhdpi</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-xxxhdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="Android_SplashImage426">
|
<DeployClass Name="Android_SplashImage426">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<RemoteDir>res\drawable-small</RemoteDir>
|
<RemoteDir>res\drawable-small</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-small</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="Android_SplashImage470">
|
<DeployClass Name="Android_SplashImage470">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<RemoteDir>res\drawable-normal</RemoteDir>
|
<RemoteDir>res\drawable-normal</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-normal</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="Android_SplashImage640">
|
<DeployClass Name="Android_SplashImage640">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<RemoteDir>res\drawable-large</RemoteDir>
|
<RemoteDir>res\drawable-large</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-large</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="Android_SplashImage960">
|
<DeployClass Name="Android_SplashImage960">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<RemoteDir>res\drawable-xlarge</RemoteDir>
|
<RemoteDir>res\drawable-xlarge</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-xlarge</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="Android_Strings">
|
<DeployClass Name="Android_Strings">
|
||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<RemoteDir>res\values</RemoteDir>
|
<RemoteDir>res\values</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\values</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="DebugSymbols">
|
<DeployClass Name="DebugSymbols">
|
||||||
<Platform Name="iOSSimulator">
|
<Platform Name="iOSSimulator">
|
||||||
@ -403,6 +534,9 @@
|
|||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<Operation>0</Operation>
|
<Operation>0</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
</Platform>
|
||||||
<Platform Name="iOSDevice32">
|
<Platform Name="iOSDevice32">
|
||||||
<Operation>0</Operation>
|
<Operation>0</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
@ -734,6 +868,9 @@
|
|||||||
<Platform Name="Android">
|
<Platform Name="Android">
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="ProjectiOSDeviceDebug">
|
<DeployClass Name="ProjectiOSDeviceDebug">
|
||||||
<Platform Name="iOSDevice32">
|
<Platform Name="iOSDevice32">
|
||||||
@ -777,6 +914,10 @@
|
|||||||
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>library\lib\arm64-v8a</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
<Platform Name="iOSDevice32">
|
<Platform Name="iOSDevice32">
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
@ -799,6 +940,12 @@
|
|||||||
<Operation>0</Operation>
|
<Operation>0</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectOutput_Android32">
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
<DeployClass Name="ProjectUWPManifest">
|
<DeployClass Name="ProjectUWPManifest">
|
||||||
<Platform Name="Win32">
|
<Platform Name="Win32">
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
@ -836,9 +983,11 @@
|
|||||||
<ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
|
<ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
|
||||||
<ProjectRoot Platform="OSX64" Name="$(PROJECTNAME)"/>
|
<ProjectRoot Platform="OSX64" Name="$(PROJECTNAME)"/>
|
||||||
<ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
|
<ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
|
||||||
|
<ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/>
|
||||||
</Deployment>
|
</Deployment>
|
||||||
<Platforms>
|
<Platforms>
|
||||||
<Platform value="Android">False</Platform>
|
<Platform value="Android">False</Platform>
|
||||||
|
<Platform value="Android64">False</Platform>
|
||||||
<Platform value="Linux64">False</Platform>
|
<Platform value="Linux64">False</Platform>
|
||||||
<Platform value="Win32">True</Platform>
|
<Platform value="Win32">True</Platform>
|
||||||
<Platform value="Win64">False</Platform>
|
<Platform value="Win64">False</Platform>
|
||||||
|
@ -701,10 +701,10 @@ begin
|
|||||||
lQry.SQL.Text := lSQL;
|
lQry.SQL.Text := lSQL;
|
||||||
|
|
||||||
lHandled := False;
|
lHandled := False;
|
||||||
|
//lQry.Prepare;
|
||||||
MapObjectToParams(lQry.Params, lHandled);
|
MapObjectToParams(lQry.Params, lHandled);
|
||||||
if not lHandled then
|
if not lHandled then
|
||||||
begin
|
begin
|
||||||
// lQry.Prepare;
|
|
||||||
for lPair in fMap do
|
for lPair in fMap do
|
||||||
begin
|
begin
|
||||||
lPar := lQry.FindParam(lPair.value);
|
lPar := lQry.FindParam(lPair.value);
|
||||||
@ -1271,7 +1271,24 @@ begin
|
|||||||
// end;
|
// end;
|
||||||
tkString, tkUString:
|
tkString, tkUString:
|
||||||
begin
|
begin
|
||||||
aParam.AsString := aValue.AsString;
|
case aParam.DataType of
|
||||||
|
ftUnknown, ftString, ftWideString:
|
||||||
|
begin
|
||||||
|
aParam.AsString := aValue.AsString;
|
||||||
|
end;
|
||||||
|
ftWideMemo:
|
||||||
|
begin
|
||||||
|
aParam.AsWideMemo := aValue.AsString;
|
||||||
|
end;
|
||||||
|
ftMemo:
|
||||||
|
begin
|
||||||
|
aParam.AsMemo := aValue.AsString;
|
||||||
|
end;
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
raise EMVCActiveRecord.CreateFmt('Invalid data type for (tkString, tkUString) [%s]', [lName]);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
{$IF Defined(SeattleOrBetter)}
|
{$IF Defined(SeattleOrBetter)}
|
||||||
tkWideString:
|
tkWideString:
|
||||||
|
@ -345,11 +345,10 @@ type
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
EMVCException = class(Exception)
|
EMVCException = class(Exception)
|
||||||
private
|
protected
|
||||||
FHttpErrorCode: UInt16;
|
FHttpErrorCode: UInt16;
|
||||||
FAppErrorCode: UInt16;
|
FAppErrorCode: UInt16;
|
||||||
FDetailedMessage: string;
|
FDetailedMessage: string;
|
||||||
protected
|
|
||||||
procedure CheckHTTPErrorCode(const AHTTPErrorCode: UInt16);
|
procedure CheckHTTPErrorCode(const AHTTPErrorCode: UInt16);
|
||||||
public
|
public
|
||||||
constructor Create(const AMsg: string); overload; virtual;
|
constructor Create(const AMsg: string); overload; virtual;
|
||||||
|
@ -55,6 +55,24 @@ const
|
|||||||
JSONRPC_MESSAGE = 'message';
|
JSONRPC_MESSAGE = 'message';
|
||||||
JSONRPC_DATA = 'data';
|
JSONRPC_DATA = 'data';
|
||||||
|
|
||||||
|
{
|
||||||
|
http://www.jsonrpc.org/historical/json-rpc-over-http.html#response-codes
|
||||||
|
HTTP Status code message
|
||||||
|
500 -32700 Parse error.
|
||||||
|
400 -32600 Invalid Request.
|
||||||
|
404 -32601 Method not found.
|
||||||
|
500 -32602 Invalid params.
|
||||||
|
500 -32603 Internal error.
|
||||||
|
500 -32099..-32000 Server error.
|
||||||
|
}
|
||||||
|
JSONRPC_ERR_PARSE_ERROR = -32700;
|
||||||
|
JSONRPC_ERR_INVALID_REQUEST = -32600;
|
||||||
|
JSONRPC_ERR_METHOD_NOT_FOUND = -32601;
|
||||||
|
JSONRPC_ERR_INVALID_PARAMS = -32602;
|
||||||
|
JSONRPC_ERR_INTERNAL_ERROR = -32603;
|
||||||
|
JSONRPC_ERR_SERVER_ERROR_LOWERBOUND = -32099;
|
||||||
|
JSONRPC_ERR_SERVER_ERROR_UPPERBOUND = -32000;
|
||||||
|
|
||||||
type
|
type
|
||||||
IMVCJSONRPCMessage = interface
|
IMVCJSONRPCMessage = interface
|
||||||
['{73B8D463-75E1-404B-8437-EF4B3C950D2F}']
|
['{73B8D463-75E1-404B-8437-EF4B3C950D2F}']
|
||||||
@ -250,34 +268,39 @@ type
|
|||||||
|
|
||||||
EMVCJSONRPCErrorResponse = class abstract(Exception)
|
EMVCJSONRPCErrorResponse = class abstract(Exception)
|
||||||
private
|
private
|
||||||
FJSONRPCErrorCode: Integer;
|
fJSONRPCErrorCode: Integer;
|
||||||
public
|
public
|
||||||
property JSONRPCErrorCode: Integer read FJSONRPCErrorCode;
|
property JSONRPCErrorCode: Integer read fJSONRPCErrorCode;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
EMVCJSONRPCParseError = class(EMVCJSONRPCErrorResponse)
|
EMVCJSONRPCParseError = class(EMVCJSONRPCErrorResponse)
|
||||||
public
|
public
|
||||||
constructor Create;
|
constructor Create;
|
||||||
|
procedure AfterConstruction; override;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
EMVCJSONRPCInvalidRequest = class(EMVCJSONRPCErrorResponse)
|
EMVCJSONRPCInvalidRequest = class(EMVCJSONRPCErrorResponse)
|
||||||
public
|
public
|
||||||
constructor Create(const Message: String = ''); overload;
|
constructor Create(const Message: String = ''); overload;
|
||||||
|
procedure AfterConstruction; override;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
EMVCJSONRPCMethodNotFound = class(EMVCJSONRPCErrorResponse)
|
EMVCJSONRPCMethodNotFound = class(EMVCJSONRPCErrorResponse)
|
||||||
public
|
public
|
||||||
constructor Create(const MethodName: string);
|
constructor Create(const MethodName: string);
|
||||||
|
procedure AfterConstruction; override;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
EMVCJSONRPCInvalidParams = class(EMVCJSONRPCErrorResponse)
|
EMVCJSONRPCInvalidParams = class(EMVCJSONRPCErrorResponse)
|
||||||
public
|
public
|
||||||
constructor Create(const Message: string);
|
constructor Create(const Message: string);
|
||||||
|
procedure AfterConstruction; override;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
EMVCJSONRPCInternalError = class(EMVCJSONRPCErrorResponse)
|
EMVCJSONRPCInternalError = class(EMVCJSONRPCErrorResponse)
|
||||||
public
|
public
|
||||||
constructor Create;
|
constructor Create;
|
||||||
|
procedure AfterConstruction; override;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ -32000 to -32099 Server error Reserved for implementation-defined server-errors. }
|
{ -32000 to -32099 Server error Reserved for implementation-defined server-errors. }
|
||||||
@ -885,7 +908,8 @@ end;
|
|||||||
procedure TMVCJSONRPCController.GetPublishedMethodList;
|
procedure TMVCJSONRPCController.GetPublishedMethodList;
|
||||||
begin
|
begin
|
||||||
ResponseStream.AppendLine('// ' + StringOfChar('*', 80));
|
ResponseStream.AppendLine('// ' + StringOfChar('*', 80));
|
||||||
ResponseStream.AppendLine('// Generated by ' + DMVCFRAMEWORK_VERSION + ' at ' + FormatDateTime('yyyy-mm-dd hh:nn:ss', Now));
|
ResponseStream.AppendLine('// Generated by ' + DMVCFRAMEWORK_VERSION + ' at ' +
|
||||||
|
FormatDateTime('yyyy-mm-dd hh:nn:ss', Now));
|
||||||
ResponseStream.AppendLine('// ' + StringOfChar('*', 80));
|
ResponseStream.AppendLine('// ' + StringOfChar('*', 80));
|
||||||
ResponseStream.AppendLine('');
|
ResponseStream.AppendLine('');
|
||||||
ForEachInvokableMethod(
|
ForEachInvokableMethod(
|
||||||
@ -1028,17 +1052,17 @@ begin
|
|||||||
500 -32099..-32000 Server error.
|
500 -32099..-32000 Server error.
|
||||||
}
|
}
|
||||||
case E.JSONRPCErrorCode of
|
case E.JSONRPCErrorCode of
|
||||||
- 32700:
|
JSONRPC_ERR_PARSE_ERROR:
|
||||||
ResponseStatus(500);
|
ResponseStatus(500);
|
||||||
-32600:
|
JSONRPC_ERR_INVALID_REQUEST:
|
||||||
ResponseStatus(400);
|
ResponseStatus(400);
|
||||||
-32601:
|
JSONRPC_ERR_METHOD_NOT_FOUND:
|
||||||
ResponseStatus(404);
|
ResponseStatus(404);
|
||||||
-32602:
|
JSONRPC_ERR_INVALID_PARAMS:
|
||||||
ResponseStatus(500);
|
ResponseStatus(500);
|
||||||
-32603:
|
JSONRPC_ERR_INTERNAL_ERROR:
|
||||||
ResponseStatus(500);
|
ResponseStatus(500);
|
||||||
-32099 .. -32000:
|
JSONRPC_ERR_SERVER_ERROR_LOWERBOUND .. JSONRPC_ERR_SERVER_ERROR_UPPERBOUND:
|
||||||
ResponseStatus(500);
|
ResponseStatus(500);
|
||||||
end;
|
end;
|
||||||
Render(CreateError(lReqID, E.JSONRPCErrorCode, E.Message), True);
|
Render(CreateError(lReqID, E.JSONRPCErrorCode, E.Message), True);
|
||||||
@ -1066,15 +1090,26 @@ end;
|
|||||||
|
|
||||||
{ EMVCJSONRPCParseError }
|
{ EMVCJSONRPCParseError }
|
||||||
|
|
||||||
|
procedure EMVCJSONRPCParseError.AfterConstruction;
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
fJSONRPCErrorCode := JSONRPC_ERR_PARSE_ERROR;
|
||||||
|
end;
|
||||||
|
|
||||||
constructor EMVCJSONRPCParseError.Create;
|
constructor EMVCJSONRPCParseError.Create;
|
||||||
begin
|
begin
|
||||||
inherited Create
|
inherited Create
|
||||||
('Parse error. Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text');
|
('Parse error. Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text');
|
||||||
FJSONRPCErrorCode := -32700;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ EMVCJSONRPCInvalidRequest }
|
{ EMVCJSONRPCInvalidRequest }
|
||||||
|
|
||||||
|
procedure EMVCJSONRPCInvalidRequest.AfterConstruction;
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
fJSONRPCErrorCode := JSONRPC_ERR_INVALID_REQUEST;
|
||||||
|
end;
|
||||||
|
|
||||||
constructor EMVCJSONRPCInvalidRequest.Create(const Message: String);
|
constructor EMVCJSONRPCInvalidRequest.Create(const Message: String);
|
||||||
var
|
var
|
||||||
lMsg: string;
|
lMsg: string;
|
||||||
@ -1085,32 +1120,46 @@ begin
|
|||||||
lMsg := lMsg + ' [HINT] ' + Message;
|
lMsg := lMsg + ' [HINT] ' + Message;
|
||||||
end;
|
end;
|
||||||
inherited Create(lMsg);
|
inherited Create(lMsg);
|
||||||
FJSONRPCErrorCode := -32600;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ EMVCJSONRPCMethodNotFound }
|
{ EMVCJSONRPCMethodNotFound }
|
||||||
|
|
||||||
|
procedure EMVCJSONRPCMethodNotFound.AfterConstruction;
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
fJSONRPCErrorCode := JSONRPC_ERR_METHOD_NOT_FOUND;
|
||||||
|
end;
|
||||||
|
|
||||||
constructor EMVCJSONRPCMethodNotFound.Create(const MethodName: string);
|
constructor EMVCJSONRPCMethodNotFound.Create(const MethodName: string);
|
||||||
begin
|
begin
|
||||||
inherited CreateFmt('Method "%s" not found. The method does not exist or is not available.',
|
inherited CreateFmt('Method "%s" not found. The method does not exist or is not available.',
|
||||||
[MethodName]);
|
[MethodName]);
|
||||||
FJSONRPCErrorCode := -32601;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ EMVCJSONRPCInvalidParams }
|
{ EMVCJSONRPCInvalidParams }
|
||||||
|
|
||||||
|
procedure EMVCJSONRPCInvalidParams.AfterConstruction;
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
fJSONRPCErrorCode := JSONRPC_ERR_INVALID_PARAMS;
|
||||||
|
end;
|
||||||
|
|
||||||
constructor EMVCJSONRPCInvalidParams.Create(const Message: string);
|
constructor EMVCJSONRPCInvalidParams.Create(const Message: string);
|
||||||
begin
|
begin
|
||||||
inherited Create('Invalid params. [hint: ' + message + ']');
|
inherited Create('Invalid params. [hint: ' + message + ']');
|
||||||
FJSONRPCErrorCode := -32602;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ EMVCJSONRPCInternalError }
|
{ EMVCJSONRPCInternalError }
|
||||||
|
|
||||||
|
procedure EMVCJSONRPCInternalError.AfterConstruction;
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
fJSONRPCErrorCode := JSONRPC_ERR_INTERNAL_ERROR;
|
||||||
|
end;
|
||||||
|
|
||||||
constructor EMVCJSONRPCInternalError.Create;
|
constructor EMVCJSONRPCInternalError.Create;
|
||||||
begin
|
begin
|
||||||
inherited Create('Internal JSON-RPC error');
|
inherited Create('Internal JSON-RPC error');
|
||||||
FJSONRPCErrorCode := -32603;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ EMVCJSONRPCServerError }
|
{ EMVCJSONRPCServerError }
|
||||||
@ -1118,7 +1167,7 @@ end;
|
|||||||
constructor EMVCJSONRPCServerError.Create(const JSONRPCError: Integer; const Message: string);
|
constructor EMVCJSONRPCServerError.Create(const JSONRPCError: Integer; const Message: string);
|
||||||
begin
|
begin
|
||||||
inherited Create(message);
|
inherited Create(message);
|
||||||
FJSONRPCErrorCode := JSONRPCError;
|
fJSONRPCErrorCode := JSONRPCError;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TJSONRPCRequest }
|
{ TJSONRPCRequest }
|
||||||
|
@ -26,11 +26,8 @@ uses
|
|||||||
|
|
||||||
procedure REPLEmit(const Value: string);
|
procedure REPLEmit(const Value: string);
|
||||||
begin
|
begin
|
||||||
// TextColor(LightGreen);
|
|
||||||
write('#> ');
|
write('#> ');
|
||||||
// TextColor(White);
|
|
||||||
WriteLn(Value);
|
WriteLn(Value);
|
||||||
// TextColor(White);
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function HandleCommand(const Value: string; const Server: TIdHTTPWebBrokerBridge;
|
function HandleCommand(const Value: string; const Server: TIdHTTPWebBrokerBridge;
|
||||||
|
@ -392,6 +392,10 @@ var
|
|||||||
FoundOneAttProduces: Boolean;
|
FoundOneAttProduces: Boolean;
|
||||||
begin
|
begin
|
||||||
Result := False;
|
Result := False;
|
||||||
|
if AAccept = '*/*' then
|
||||||
|
begin
|
||||||
|
Exit(True);
|
||||||
|
end;
|
||||||
|
|
||||||
FoundOneAttProduces := False;
|
FoundOneAttProduces := False;
|
||||||
for I := 0 to high(AAttributes) do
|
for I := 0 to high(AAttributes) do
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// ***************************************************************************
|
// ***************************************************************************
|
||||||
//
|
//
|
||||||
// Delphi MVC Framework
|
// Delphi MVC Framework
|
||||||
//
|
//
|
||||||
@ -280,7 +280,7 @@ const
|
|||||||
JSONNameLowerCase = ncLowerCase deprecated 'Use MVCNameCaseAttribute(ncLowerCase)';
|
JSONNameLowerCase = ncLowerCase deprecated 'Use MVCNameCaseAttribute(ncLowerCase)';
|
||||||
JSONNameUpperCase = ncUpperCase deprecated 'Use MVCNameCaseAttribute(ncUpperCase)';
|
JSONNameUpperCase = ncUpperCase deprecated 'Use MVCNameCaseAttribute(ncUpperCase)';
|
||||||
|
|
||||||
function NewDataObjectHolder(const AObject: TObject; const AMetaFiller: TProc<TMVCStringDictionary> = nil;
|
function NewObjectHolder(const AObject: TObject; const AMetaFiller: TProc<TMVCStringDictionary> = nil;
|
||||||
const AOwns: boolean = false): TDataObjectHolder;
|
const AOwns: boolean = false): TDataObjectHolder;
|
||||||
function NewCollectionHolder(const AList: TObject; const AMetaFiller: TProc<TMVCStringDictionary> = nil;
|
function NewCollectionHolder(const AList: TObject; const AMetaFiller: TProc<TMVCStringDictionary> = nil;
|
||||||
const AOwns: boolean = false): TDataObjectHolder;
|
const AOwns: boolean = false): TDataObjectHolder;
|
||||||
@ -291,7 +291,7 @@ uses
|
|||||||
MVCFramework.Serializer.JsonDataObjects,
|
MVCFramework.Serializer.JsonDataObjects,
|
||||||
MVCFramework.Serializer.Intf;
|
MVCFramework.Serializer.Intf;
|
||||||
|
|
||||||
function NewDataObjectHolder(const AObject: TObject; const AMetaFiller: TProc<TMVCStringDictionary> = nil;
|
function NewObjectHolder(const AObject: TObject; const AMetaFiller: TProc<TMVCStringDictionary> = nil;
|
||||||
const AOwns: boolean = false): TDataObjectHolder;
|
const AOwns: boolean = false): TDataObjectHolder;
|
||||||
begin
|
begin
|
||||||
Result := TDataObjectHolder.Create(AObject, AOwns, dstSingleRecord);
|
Result := TDataObjectHolder.Create(AObject, AOwns, dstSingleRecord);
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
const
|
const
|
||||||
DMVCFRAMEWORK_VERSION = '3.2.0 (boron) RC2';
|
DMVCFRAMEWORK_VERSION = '3.2.0 (boron) RC3';
|
Loading…
Reference in New Issue
Block a user