Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 9 additions & 5 deletions HarmonyCore.Test/Bridge/BasicBridge.dbl
Original file line number Diff line number Diff line change
Expand Up @@ -174,20 +174,24 @@ namespace HarmonyCore.Test.Bridge
Assert.AreEqual(7777777, mscAryTstIntResult.p1[3])
Assert.AreEqual(666666, mscAryTstIntResult.p1[4])

;Console.ReadKey()

data timeStart = DateTime.Now
data i = 0
for i from 1 thru 100 by 1
data CData = new string('C', 65535)
data DData = new string('D', 65535)
for i from 1 thru 1000 by 1
begin
data passtringResult = await context.passstring(new passstring_Request() { p1 = new string('C', 65535), p3=new string('D', 65535) })
data passtringResult = await context.passstring(new passstring_Request() { p1 = CData, p3=DData})

Assert.AreEqual(new string('C', 65535), passtringResult.p2)
Assert.AreEqual(new string('D', 65535), passtringResult.p3)
Assert.AreEqual(CData, passtringResult.p2)
Assert.AreEqual(DData, passtringResult.p3)
end
data timeEnd = DateTime.Now
data timeTaken = timeEnd - timeStart
contextPool.ReturnContext(context)
await contextPool.TrimPool(0)
Console.WriteLine("shutting down test")
Console.WriteLine("shutting down test {0}", timeTaken)
endmethod

public class ExternalCallContext extends DynamicCallProvider
Expand Down
6 changes: 5 additions & 1 deletion HarmonyCore/Context/ProcessDynamicCallConnection.dbl
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,11 @@ namespace Harmony.Core.Context
mTargetProcess.Exited += ProcessExit

data result = JsonRpc.Attach(new StreamWrapper(mTargetProcess.StandardOutput, mTargetProcess.StandardInput), ^null)
result.TraceSource = new TraceSource("Client", SourceLevels.All)
if(DebugLogSession.Logging.Level == Harmony.Core.Interface.LogLevel.Trace)
begin
result.TraceSource = new TraceSource("Client", SourceLevels.All)
end

mreturn result
endmethod

Expand Down
5 changes: 4 additions & 1 deletion HarmonyCore/Context/SSHDynamicCallConnection.dbl
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,10 @@ namespace Harmony.Core.Context


data result = new JsonRPC(new HeaderDelimitedMessageHandler(streamWrapper, new JsonMessageFormatter(new UTF8Encoding(false))))
result.TraceSource = new TraceSource("Client", SourceLevels.All)
if(DebugLogSession.Logging.Level == Harmony.Core.Interface.LogLevel.Trace)
begin
result.TraceSource = new TraceSource("Client", SourceLevels.All)
end
result.StartListening()
mreturn result
endmethod
Expand Down
42 changes: 21 additions & 21 deletions Services.Test/UnitTests/CustomerTests.dbl
Original file line number Diff line number Diff line change
Expand Up @@ -69,16 +69,16 @@ namespace Services.Test.UnitTests
;;------------------------------------------------------------
;;Get all Customers and expand relation REL_CustomerNotes

; {TestMethod}
; {TestCategory("Customer Tests - Read All")}
; public method GetCustomers_Expand_REL_CustomerNotes, void
; proc
; data uri = "/odata/v1/Customers?$expand=REL_CustomerNotes"
; disposable data client = UnitTestEnvironment.Server.CreateClient()
; disposable data response = client.GetAsync(uri).Result
; data result = response.Content.ReadAsStringAsync().Result
; response.EnsureSuccessStatusCode()
; endmethod
{TestMethod}
{TestCategory("Customer Tests - Read All")}
public method GetCustomers_Expand_REL_CustomerNotes, void
proc
data uri = "/odata/v1/Customers?$expand=REL_CustomerNotes"
disposable data client = UnitTestEnvironment.Server.CreateClient()
disposable data response = client.GetAsync(uri).Result
data result = response.Content.ReadAsStringAsync().Result
response.EnsureSuccessStatusCode()
endmethod

;;------------------------------------------------------------
;;Get all Customers and expand all relations
Expand Down Expand Up @@ -142,17 +142,17 @@ namespace Services.Test.UnitTests
;;------------------------------------------------------------
;;Get a single Customer by primary key and expand relation REL_CustomerNotes

; {TestMethod}
; {TestCategory("Customer Tests - Read by Primary Key")}
; public method GetCustomer_Expand_REL_CustomerNotes, void
; proc
; data client = UnitTestEnvironment.Server.CreateClient()
; data request = String.Format("/odata/v1/Customers(CustomerNumber={1})?$expand=REL_CustomerNotes","",TestConstants.GetCustomer_Expand_REL_CustomerNotes_CustomerNumber)
; data response = client.GetAsync(request).Result
; data result = response.Content.ReadAsStringAsync().Result
; response.EnsureSuccessStatusCode()
; data customer, @ODataCustomer, JsonConvert.DeserializeObject<ODataCustomer>(result)
; endmethod
{TestMethod}
{TestCategory("Customer Tests - Read by Primary Key")}
public method GetCustomer_Expand_REL_CustomerNotes, void
proc
data client = UnitTestEnvironment.Server.CreateClient()
data request = String.Format("/odata/v1/Customers(CustomerNumber={1})?$expand=REL_CustomerNotes","",TestConstants.GetCustomer_Expand_REL_CustomerNotes_CustomerNumber)
data response = client.GetAsync(request).Result
data result = response.Content.ReadAsStringAsync().Result
response.EnsureSuccessStatusCode()
data customer, @ODataCustomer, JsonConvert.DeserializeObject<ODataCustomer>(result)
endmethod

;;------------------------------------------------------------
;;Get a single Customer by primary key and expand all relations
Expand Down
41 changes: 24 additions & 17 deletions Templates/TraditionalBridge/InterfaceMethodDispatchers.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,13 @@ import Harmony.TraditionalBridge
import System.Collections
import <MODELS_NAMESPACE>

.ifdef DBLV11
import System.Text.Json
.define JSON_ELEMENT @JsonElement
.else
.define JSON_ELEMENT @JsonValue
.endc

namespace <NAMESPACE>.<INTERFACE_NAME>

<METHOD_LOOP>
Expand Down Expand Up @@ -82,12 +89,12 @@ namespace <NAMESPACE>.<INTERFACE_NAME>

protected override method DispatchInternal, void
required in name, string
required in callFrame, @JsonObject
required in callFrame, JSON_ELEMENT
required in serializer, @DispatchSerializer
required in dispatcher, @RoutineDispatcher
record
requestId, int
arguments, @JsonArray
arguments, JSON_ELEMENT
argumentDefinition, @ArgumentDataDefinition

<COUNTER_1_RESET>
Expand All @@ -100,7 +107,7 @@ namespace <NAMESPACE>.<INTERFACE_NAME>
;;Argument <COUNTER_1_VALUE> (<PARAMETER_REQUIRED> <PARAMETER_DIRECTION> <PARAMETER_NAME> <IF COLLECTION_ARRAY>[*]</IF COLLECTION_ARRAY><IF COLLECTION_HANDLE>memory handle collection of </IF COLLECTION_HANDLE><IF COLLECTION_ARRAYLIST>ArrayList collection of </IF COLLECTION_ARRAYLIST><IF STRUCTURE>structure </IF STRUCTURE><IF ENUM>enum </IF ENUM><IF STRUCTURE>@<ParameterStructureNoplural><ELSE><PARAMETER_DEFINITION></IF STRUCTURE><IF DATE> <PARAMETER_DATE_FORMAT> date</IF DATE><IF TIME> <PARAMETER_DATE_FORMAT> time</IF TIME><IF REFERENCE> passed by REFERENCE</IF REFERENCE><IF VALUE> passed by VALUE</IF VALUE><IF DATATABLE> returned as DataTable</IF DATATABLE>)
<IF COLLECTION>
<IF IN_OR_INOUT>
arg<COUNTER_1_VALUE>Array, @JsonArray
arg<COUNTER_1_VALUE>Array, JSON_ELEMENT
</IF IN_OR_INOUT>
<IF COLLECTION_ARRAY>
arg<COUNTER_1_VALUE>Handle, D_HANDLE
Expand Down Expand Up @@ -161,7 +168,7 @@ namespace <NAMESPACE>.<INTERFACE_NAME>
;;Process inbound arguments

<IF COUNTER_1>
arguments = (@JsonArray)callFrame.GetProperty("params")
arguments = callFrame.GetProperty("params")
<ELSE>
;;There are no inbound arguments to process
</IF COUNTER_1>
Expand All @@ -174,17 +181,17 @@ namespace <NAMESPACE>.<INTERFACE_NAME>
;;Argument <COUNTER_1_VALUE> (<PARAMETER_REQUIRED> <PARAMETER_DIRECTION> <PARAMETER_NAME> <IF COLLECTION_ARRAY>[*]</IF COLLECTION_ARRAY><IF COLLECTION_HANDLE>memory handle collection of </IF COLLECTION_HANDLE><IF COLLECTION_ARRAYLIST>ArrayList collection of </IF COLLECTION_ARRAYLIST><IF STRUCTURE>structure </IF STRUCTURE><IF ENUM>enum </IF ENUM><IF STRUCTURE>@<ParameterStructureNoplural><ELSE><PARAMETER_DEFINITION></IF STRUCTURE><IF DATE> <PARAMETER_DATE_FORMAT> date</IF DATE><IF TIME> <PARAMETER_DATE_FORMAT> time</IF TIME><IF REFERENCE> passed by REFERENCE</IF REFERENCE><IF VALUE> passed by VALUE</IF VALUE><IF DATATABLE> returned as DataTable</IF DATATABLE>)
<IF COLLECTION>
;//
argumentDefinition = dispatcher.GetArgumentDataDefForCollection((@JsonObject)arguments.arrayValues[<COUNTER_1_VALUE>], <PARAMETER_SIZE>)
arg<COUNTER_1_VALUE>Array = (@JsonArray)((@JsonObject)arguments.arrayValues[<COUNTER_1_VALUE>]).GetProperty("PassedValue")
argumentDefinition = dispatcher.GetArgumentDataDefForCollection(arguments[<COUNTER_1_VALUE>], <PARAMETER_SIZE>)
arg<COUNTER_1_VALUE>Array = arguments[<COUNTER_1_VALUE>].GetProperty("PassedValue")
;//
<IF COLLECTION_ARRAY>
arg<COUNTER_1_VALUE>Handle = %mem_proc(DM_ALLOC,argumentDefinition.ElementSize*arg<COUNTER_1_VALUE>Array.arrayValues.Count)
arg<COUNTER_1_VALUE>Handle = %mem_proc(DM_ALLOC,argumentDefinition.ElementSize*arg<COUNTER_1_VALUE>Array.GetArrayLength())
arg<COUNTER_1_VALUE>HandlePos = 1
dispatcher.UnwrapObjectCollection(^m(arg<COUNTER_1_VALUE>Handle),argumentDefinition,arg<COUNTER_1_VALUE>HandlePos,arg<COUNTER_1_VALUE>Array)
</IF COLLECTION_ARRAY>
;//
<IF COLLECTION_HANDLE>
arg<COUNTER_1_VALUE>Handle = %mem_proc(DM_ALLOC,argumentDefinition.ElementSize*arg<COUNTER_1_VALUE>Array.arrayValues.Count)
arg<COUNTER_1_VALUE>Handle = %mem_proc(DM_ALLOC,argumentDefinition.ElementSize*arg<COUNTER_1_VALUE>Array.GetArrayLength())
arg<COUNTER_1_VALUE>HandlePos = 1
dispatcher.UnwrapObjectCollection(^m(arg<COUNTER_1_VALUE>Handle),argumentDefinition,arg<COUNTER_1_VALUE>HandlePos,arg<COUNTER_1_VALUE>Array)
</IF COLLECTION_HANDLE>
Expand All @@ -196,31 +203,31 @@ namespace <NAMESPACE>.<INTERFACE_NAME>
<ELSE>
;//
<IF ALPHA>
arg<COUNTER_1_VALUE> = dispatcher.GetText((@JsonObject)arguments.arrayValues[<COUNTER_1_VALUE>])
arg<COUNTER_1_VALUE> = dispatcher.GetText(arguments[<COUNTER_1_VALUE>])
</IF ALPHA>
;//
<IF DECIMAL>
arg<COUNTER_1_VALUE> = dispatcher.GetDecimal((@JsonObject)arguments.arrayValues[<COUNTER_1_VALUE>])
arg<COUNTER_1_VALUE> = dispatcher.GetDecimal(arguments[<COUNTER_1_VALUE>])
</IF DECIMAL>
;//
<IF IMPLIED>
arg<COUNTER_1_VALUE> = dispatcher.GetImplied((@JsonObject)arguments.arrayValues[<COUNTER_1_VALUE>])
arg<COUNTER_1_VALUE> = dispatcher.GetImplied(arguments[<COUNTER_1_VALUE>])
</IF IMPLIED>
;//
<IF INTEGER>
arg<COUNTER_1_VALUE> = dispatcher.GetInt((@JsonObject)arguments.arrayValues[<COUNTER_1_VALUE>])
arg<COUNTER_1_VALUE> = dispatcher.GetInt(arguments[<COUNTER_1_VALUE>])
</IF INTEGER>
;//
<IF ENUM>
arg<COUNTER_1_VALUE> = (<PARAMETER_ENUM>)dispatcher.GetInt((@JsonObject)arguments.arrayValues[<COUNTER_1_VALUE>])
arg<COUNTER_1_VALUE> = (<PARAMETER_ENUM>)dispatcher.GetInt(arguments[<COUNTER_1_VALUE>])
</IF ENUM>
;//
<IF DATE>
arg<COUNTER_1_VALUE> = dispatcher.GetDecimal((@JsonObject)arguments.arrayValues[<COUNTER_1_VALUE>])
arg<COUNTER_1_VALUE> = dispatcher.GetDecimal(arguments[<COUNTER_1_VALUE>])
</IF DATE>
;//
<IF TIME>
arg<COUNTER_1_VALUE> = dispatcher.GetDecimal((@JsonObject)arguments.arrayValues[<COUNTER_1_VALUE>])
arg<COUNTER_1_VALUE> = dispatcher.GetDecimal(arguments[<COUNTER_1_VALUE>])
</IF TIME>
;//
<IF HANDLE>
Expand All @@ -234,12 +241,12 @@ namespace <NAMESPACE>.<INTERFACE_NAME>
</IF BINARY_HANDLE>
;//
<IF STRING>
arg<COUNTER_1_VALUE> = dispatcher.GetText((@JsonObject)arguments.arrayValues[<COUNTER_1_VALUE>])
arg<COUNTER_1_VALUE> = dispatcher.GetText(arguments[<COUNTER_1_VALUE>])
</IF STRING>
;//
<IF STRUCTURE>
;;Structure argument. Get the data object then get the record from it
arg<COUNTER_1_VALUE>DataObject = dispatcher.DeserializeObject((@JsonObject)arguments.arrayValues[3],m<ParameterStructureNoplural>Metadata)
arg<COUNTER_1_VALUE>DataObject = dispatcher.DeserializeObject(arguments[<COUNTER_1_VALUE>],m<ParameterStructureNoplural>Metadata)
arg<COUNTER_1_VALUE> = arg<COUNTER_1_VALUE>DataObject.SynergyRecord
</IF STRUCTURE>
;//
Expand Down
2 changes: 1 addition & 1 deletion TraditionalBridge.Models/Models/Booleanstr.dbl
Original file line number Diff line number Diff line change
Expand Up @@ -289,6 +289,6 @@ namespace TraditionalBridge.Models
endmethod

.endregion
endclass
endclass

endnamespace
4 changes: 2 additions & 2 deletions TraditionalBridge.Models/Models/Coercestructure.dbl
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,7 @@ namespace TraditionalBridge.Models
;;; <summary>
;;;
;;; </summary>
public property Nulldatetime, @Nullable<DateTime>
public property Nulldatetime, Nullable<DateTime>
method get
proc
data formatString = "YYYYMMDD"
Expand Down Expand Up @@ -472,6 +472,6 @@ namespace TraditionalBridge.Models
endmethod

.endregion
endclass
endclass

endnamespace
2 changes: 1 addition & 1 deletion TraditionalBridge.Models/Models/Datatablestr.dbl
Original file line number Diff line number Diff line change
Expand Up @@ -185,6 +185,6 @@ namespace TraditionalBridge.Models
endmethod

.endregion
endclass
endclass

endnamespace
2 changes: 1 addition & 1 deletion TraditionalBridge.Models/Models/Dateteblestr2.dbl
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,6 @@ namespace TraditionalBridge.Models
endmethod

.endregion
endclass
endclass

endnamespace
2 changes: 1 addition & 1 deletion TraditionalBridge.Models/Models/Datetimeary.dbl
Original file line number Diff line number Diff line change
Expand Up @@ -413,6 +413,6 @@ namespace TraditionalBridge.Models
endmethod

.endregion
endclass
endclass

endnamespace
2 changes: 1 addition & 1 deletion TraditionalBridge.Models/Models/Datetimestr.dbl
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,6 @@ namespace TraditionalBridge.Models
endmethod

.endregion
endclass
endclass

endnamespace
2 changes: 1 addition & 1 deletion TraditionalBridge.Models/Models/Dnetdatetime.dbl
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,6 @@ namespace TraditionalBridge.Models
endmethod

.endregion
endclass
endclass

endnamespace
Loading