javonet-ruby-sdk 2.6.10 → 2.6.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (429) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +4 -4
  3. data/README.md +1 -1
  4. data/Rakefile +38 -30
  5. data/VERSION +1 -1
  6. data/javonet-ruby-sdk.gemspec +38 -38
  7. data/lib/javonet-ruby-sdk/Binaries/Clr/Javonet.Clr.Utils.dll +0 -0
  8. data/lib/javonet-ruby-sdk/Binaries/Clr/JavonetClrRuntime.dll +0 -0
  9. data/lib/javonet-ruby-sdk/Binaries/Jvm/JavonetJvmRuntime.jar +0 -0
  10. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libConfigs.so +0 -0
  11. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetActivationService.so +0 -0
  12. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetCppRuntimeNative.so +0 -0
  13. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetGoRuntimeNative.so +0 -0
  14. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetJvmRuntimeNative.so +0 -0
  15. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetNetcoreRuntimeNative.so +0 -0
  16. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetPhpRuntimeNative.so +0 -0
  17. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetPythonRuntimeNative.so +0 -0
  18. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetRubyRuntimeNative.so +0 -0
  19. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetTcpClient.so +0 -0
  20. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetTcpTlsClient.so +0 -0
  21. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libUtils.so +0 -0
  22. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/version.txt +1 -1
  23. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libConfigs.so +0 -0
  24. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetActivationService.so +0 -0
  25. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetCppRuntimeNative.so +0 -0
  26. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetGoRuntimeNative.so +0 -0
  27. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetJvmRuntimeNative.so +0 -0
  28. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetNetcoreRuntimeNative.so +0 -0
  29. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetNodejs2218RuntimeNative.so +0 -0
  30. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetNodejsRuntimeNative.so +0 -0
  31. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetPerl534RuntimeNative.so +0 -0
  32. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetPerlRuntimeNative.so +0 -0
  33. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetPhp848RuntimeNative.so +0 -0
  34. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetPhpRuntimeNative.so +0 -0
  35. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetPython2RuntimeNative.so +0 -0
  36. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetPythonRuntimeNative.so +0 -0
  37. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetRubyRuntimeNative.so +0 -0
  38. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetTcpClient.so +0 -0
  39. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetTcpTlsClient.so +0 -0
  40. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libUtils.so +0 -0
  41. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/version.txt +1 -1
  42. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/libConfigs.dylib +0 -0
  43. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/libJavonetActivationService.dylib +0 -0
  44. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/libJavonetCppRuntimeNative.dylib +0 -0
  45. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/libJavonetGoRuntimeNative.dylib +0 -0
  46. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/libJavonetJvmRuntimeNative.dylib +0 -0
  47. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/libJavonetNetcoreRuntimeNative.dylib +0 -0
  48. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/libJavonetPythonRuntimeNative.dylib +0 -0
  49. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/libJavonetRubyRuntimeNative.dylib +0 -0
  50. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/libJavonetTcpClient.dylib +0 -0
  51. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/libJavonetTcpTlsClient.dylib +0 -0
  52. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/libUtils.dylib +0 -0
  53. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/version.txt +1 -1
  54. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libConfigs.dylib +0 -0
  55. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetActivationService.dylib +0 -0
  56. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetCppRuntimeNative.dylib +0 -0
  57. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetGoRuntimeNative.dylib +0 -0
  58. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetJvmRuntimeNative.dylib +0 -0
  59. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetNetcoreRuntimeNative.dylib +0 -0
  60. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetNodejs2218RuntimeNative.dylib +0 -0
  61. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetNodejsRuntimeNative.dylib +0 -0
  62. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetPerlRuntimeNative.dylib +0 -0
  63. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetPhp848RuntimeNative.dylib +0 -0
  64. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetPhpRuntimeNative.dylib +0 -0
  65. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetPythonRuntimeNative.dylib +0 -0
  66. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetRubyRuntimeNative.dylib +0 -0
  67. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetTcpClient.dylib +0 -0
  68. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetTcpTlsClient.dylib +0 -0
  69. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libUtils.dylib +0 -0
  70. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/version.txt +1 -1
  71. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/Configs.dll +0 -0
  72. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetActivationService.dll +0 -0
  73. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetCppRuntimeNative.dll +0 -0
  74. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetGoRuntimeNative.dll +0 -0
  75. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetJvmRuntimeNative.dll +0 -0
  76. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetNetcoreRuntimeNative.dll +0 -0
  77. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetPhpRuntimeNative.dll +0 -0
  78. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetPythonRuntimeNative.dll +0 -0
  79. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetRubyRuntimeNative.dll +0 -0
  80. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetTcpClient.dll +0 -0
  81. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetTcpTlsClient.dll +0 -0
  82. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/Utils.dll +0 -0
  83. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/version.txt +0 -0
  84. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/Configs.dll +0 -0
  85. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetActivationService.dll +0 -0
  86. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetClrRuntimeNative.dll +0 -0
  87. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetCppRuntimeNative.dll +0 -0
  88. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetGoRuntimeNative.dll +0 -0
  89. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetJvmRuntimeNative.dll +0 -0
  90. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetNetcoreRuntimeNative.dll +0 -0
  91. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetNodejs2218RuntimeNative.dll +0 -0
  92. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetNodejsRuntimeNative.dll +0 -0
  93. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetPerlRuntimeNative.dll +0 -0
  94. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetPhp848RuntimeNative.dll +0 -0
  95. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetPhpRuntimeNative.dll +0 -0
  96. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetPython2RuntimeNative.dll +0 -0
  97. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetPythonRuntimeNative.dll +0 -0
  98. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetRubyRuntimeNative.dll +0 -0
  99. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetTcpClient.dll +0 -0
  100. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetTcpTlsClient.dll +0 -0
  101. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/Utils.dll +0 -0
  102. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/version.txt +1 -1
  103. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/Configs.dll +0 -0
  104. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetActivationService.dll +0 -0
  105. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetClrRuntimeNative.dll +0 -0
  106. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetCppRuntimeNative.dll +0 -0
  107. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetGoRuntimeNative.dll +0 -0
  108. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetJvmRuntimeNative.dll +0 -0
  109. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetNetcoreRuntimeNative.dll +0 -0
  110. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetPhpRuntimeNative.dll +0 -0
  111. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetPython2RuntimeNative.dll +0 -0
  112. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetPythonRuntimeNative.dll +0 -0
  113. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetTcpClient.dll +0 -0
  114. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetTcpTlsClient.dll +0 -0
  115. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/Utils.dll +0 -0
  116. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/version.txt +1 -1
  117. data/lib/javonet-ruby-sdk/Binaries/Netcore/Javonet.Netcore.Core.dll +0 -0
  118. data/lib/javonet-ruby-sdk/Binaries/Netcore/Javonet.Netcore.Plugins.dll +0 -0
  119. data/lib/javonet-ruby-sdk/Binaries/Netcore/Javonet.Netcore.Utils.dll +0 -0
  120. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/handler/Handler.cjs +12 -10
  121. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/handler/PassDelegateHandler.cjs +13 -5
  122. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/interpreter/Interpreter.cjs +4 -13
  123. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/protocol/CommandDeserializer.cjs +1 -1
  124. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/protocol/CommandSerializer.cjs +5 -5
  125. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/receiver/Receiver.cjs +4 -7
  126. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/sdk/InvocationContext.cjs +5 -7
  127. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/sdk/Javonet.cjs +3 -1
  128. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/sdk/RuntimeContext.cjs +29 -11
  129. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/sdk/RuntimeFactory.cjs +0 -22
  130. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/core/handler/Handler.d.ts +11 -11
  131. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/core/handler/PassDelegateHandler.d.ts +0 -5
  132. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/core/interpreter/Interpreter.d.ts +2 -7
  133. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/core/protocol/CommandSerializer.d.ts +2 -2
  134. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/core/receiver/Receiver.d.ts +0 -1
  135. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/sdk/Javonet.d.ts +2 -2
  136. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/sdk/RuntimeContext.d.ts +8 -3
  137. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/sdk/RuntimeFactory.d.ts +0 -8
  138. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Class/Load/XS/XS.so +0 -0
  139. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Data/UUID/UUID.so +0 -0
  140. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/FFI/Platypus/Platypus.so +0 -0
  141. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/List/Util/Util.so +0 -0
  142. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Moose/Moose.so +0 -0
  143. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/PPI/XS/XS.so +0 -0
  144. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Package/Stash/XS/XS.so +0 -0
  145. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Params/Util/Util.so +0 -0
  146. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Want/Want.so +0 -0
  147. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/share/dist/FFI-Platypus/lib/libplfill.so +0 -0
  148. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/perllocal.pod +96 -96
  149. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Core/Handler/PerlHandler.pm +1 -1
  150. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Core/Interpreter/Interpreter.pm +6 -14
  151. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Core/Protocol/CommandDeserializer.pm +196 -190
  152. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Core/Protocol/CommandSerializer.pm +13 -14
  153. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Core/Protocol/TypeDeserializer.pm +11 -12
  154. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Core/Protocol/TypeSerializer.pm +17 -20
  155. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Core/Receiver/Receiver.pm +4 -3
  156. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Sdk/Core/PerlCommand.pm +166 -54
  157. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Sdk/Internal/InvocationContext.pm +0 -2
  158. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Sdk/Internal/RuntimeContext.pm +0 -1
  159. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/bin/yamlpp-events.bat +0 -0
  160. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/bin/yamlpp-highlight.bat +0 -0
  161. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/bin/yamlpp-load-dump.bat +0 -0
  162. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/bin/yamlpp-load.bat +0 -0
  163. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/bin/yamlpp-parse-emit.bat +0 -0
  164. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/Data/UUID/UUID.xs.dll +0 -0
  165. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/PPI/XS/XS.xs.dll +0 -0
  166. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/Scalar/Util/Numeric/Numeric.xs.dll +0 -0
  167. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/Want/Want.xs.dll +0 -0
  168. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/autobox/autobox.xs.dll +0 -0
  169. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/perllocal.pod +25 -25
  170. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/lib/Javonet/Core/Handler/PerlHandler.pm +1 -1
  171. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/lib/Javonet/Core/Interpreter/Interpreter.pm +6 -14
  172. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/lib/Javonet/Core/Protocol/CommandDeserializer.pm +196 -190
  173. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/lib/Javonet/Core/Protocol/CommandSerializer.pm +13 -14
  174. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/lib/Javonet/Core/Protocol/TypeDeserializer.pm +11 -12
  175. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/lib/Javonet/Core/Protocol/TypeSerializer.pm +17 -20
  176. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/lib/Javonet/Core/Receiver/Receiver.pm +4 -3
  177. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/lib/Javonet/Sdk/Core/PerlCommand.pm +166 -54
  178. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/lib/Javonet/Sdk/Internal/InvocationContext.pm +0 -2
  179. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/lib/Javonet/Sdk/Internal/RuntimeContext.pm +0 -1
  180. data/lib/javonet-ruby-sdk/Binaries/Php/composer.json +6 -5
  181. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/core/handler/AbstractHandler.php +1 -2
  182. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/core/handler/Handler.php +74 -58
  183. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/core/handler/LoadLibraryHandler.php +110 -0
  184. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/core/interpreter/Interpreter.php +25 -23
  185. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/core/protocol/CommandSerializer.php +5 -5
  186. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/core/receiver/Receiver.php +7 -4
  187. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/utils/Command.php +86 -22
  188. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/utils/DynamicMethodFactory.php +1 -2
  189. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/utils/ExceptionSerializer.php +15 -1
  190. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/utils/RuntimeNameHandler.php +32 -0
  191. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/utils/UtilsConst.php +6 -3
  192. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/utils/connectiondata/IConnectionData.php +1 -1
  193. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/utils/connectiondata/InMemoryConnectionData.php +1 -1
  194. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/utils/connectiondata/TcpConnectionData.php +6 -1
  195. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/utils/connectiondata/WsConnectionData.php +1 -1
  196. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/callback/callbackFunc.py +4 -4
  197. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/Handler.py +72 -52
  198. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/PassDelegateHandler.py +1 -1
  199. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/interpreter/Interpreter.py +13 -13
  200. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/protocol/CommandDeserializer.py +143 -155
  201. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/protocol/CommandSerializer.py +7 -5
  202. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/receiver/Receiver.py +64 -21
  203. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/Command.py +114 -45
  204. data/lib/javonet-ruby-sdk/Binaries/Python2/javonet/core/callback/callbackFunc.py +2 -3
  205. data/lib/javonet-ruby-sdk/Binaries/Python2/javonet/core/handler/GetKwargHandler.py +5 -0
  206. data/lib/javonet-ruby-sdk/Binaries/Python2/javonet/core/handler/Handler.py +30 -12
  207. data/lib/javonet-ruby-sdk/Binaries/Python2/javonet/core/handler/InvokeDelegateHandler.py +2 -2
  208. data/lib/javonet-ruby-sdk/Binaries/Python2/javonet/core/handler/InvokeGlobalFunctionHandler.py +2 -2
  209. data/lib/javonet-ruby-sdk/Binaries/Python2/javonet/core/interpreter/Interpreter.py +9 -9
  210. data/lib/javonet-ruby-sdk/Binaries/Python2/javonet/core/protocol/CommandDeserializer.py +149 -130
  211. data/lib/javonet-ruby-sdk/Binaries/Python2/javonet/core/protocol/CommandSerializer.py +21 -17
  212. data/lib/javonet-ruby-sdk/Binaries/Python2/javonet/core/receiver/Receiver.py +11 -10
  213. data/lib/javonet-ruby-sdk/Binaries/Python2/javonet/utils/Command.py +89 -24
  214. data/lib/javonet-ruby-sdk/Binaries/version.txt +1 -1
  215. data/lib/javonet-ruby-sdk/core/handler/abstract_command_handler.rb +23 -23
  216. data/lib/javonet-ruby-sdk/core/handler/abstract_handler.rb +4 -4
  217. data/lib/javonet-ruby-sdk/core/handler/add_event_listener_handler.rb +12 -12
  218. data/lib/javonet-ruby-sdk/core/handler/array_get_item_handler.rb +47 -47
  219. data/lib/javonet-ruby-sdk/core/handler/array_get_rank_handler.rb +22 -22
  220. data/lib/javonet-ruby-sdk/core/handler/array_get_size_handler.rb +36 -36
  221. data/lib/javonet-ruby-sdk/core/handler/array_handler.rb +12 -12
  222. data/lib/javonet-ruby-sdk/core/handler/array_reference_handler.rb +12 -12
  223. data/lib/javonet-ruby-sdk/core/handler/array_set_item_handler.rb +46 -46
  224. data/lib/javonet-ruby-sdk/core/handler/as_kwargs_handler.rb +12 -12
  225. data/lib/javonet-ruby-sdk/core/handler/as_out_handler.rb +12 -12
  226. data/lib/javonet-ruby-sdk/core/handler/as_ref_handler.rb +11 -11
  227. data/lib/javonet-ruby-sdk/core/handler/casting_handler.rb +11 -11
  228. data/lib/javonet-ruby-sdk/core/handler/convert_type_handler.rb +11 -11
  229. data/lib/javonet-ruby-sdk/core/handler/create_class_instance_handler.rb +34 -34
  230. data/lib/javonet-ruby-sdk/core/handler/create_null_handler.rb +12 -12
  231. data/lib/javonet-ruby-sdk/core/handler/destruct_reference_handler.rb +20 -20
  232. data/lib/javonet-ruby-sdk/core/handler/enable_namespace_handler.rb +30 -30
  233. data/lib/javonet-ruby-sdk/core/handler/enable_type_handler.rb +32 -32
  234. data/lib/javonet-ruby-sdk/core/handler/exception_handler.rb +12 -12
  235. data/lib/javonet-ruby-sdk/core/handler/generate_lib_handler.rb +12 -12
  236. data/lib/javonet-ruby-sdk/core/handler/get_async_operation_result_handler.rb +12 -12
  237. data/lib/javonet-ruby-sdk/core/handler/get_enum_item_handler.rb +12 -12
  238. data/lib/javonet-ruby-sdk/core/handler/get_enum_name_handler.rb +12 -12
  239. data/lib/javonet-ruby-sdk/core/handler/get_enum_value_handler.rb +12 -12
  240. data/lib/javonet-ruby-sdk/core/handler/get_global_field_handler.rb +11 -11
  241. data/lib/javonet-ruby-sdk/core/handler/get_instance_field_handler.rb +34 -34
  242. data/lib/javonet-ruby-sdk/core/handler/get_instance_method_as_delegate_handler.rb +11 -11
  243. data/lib/javonet-ruby-sdk/core/handler/get_module_handler.rb +11 -11
  244. data/lib/javonet-ruby-sdk/core/handler/get_ref_value_handler.rb +11 -11
  245. data/lib/javonet-ruby-sdk/core/handler/get_result_type_handler.rb +12 -12
  246. data/lib/javonet-ruby-sdk/core/handler/get_static_field_handler.rb +34 -34
  247. data/lib/javonet-ruby-sdk/core/handler/get_static_method_as_delegate_handler.rb +11 -11
  248. data/lib/javonet-ruby-sdk/core/handler/get_type_handler.rb +70 -71
  249. data/lib/javonet-ruby-sdk/core/handler/handler.rb +227 -225
  250. data/lib/javonet-ruby-sdk/core/handler/handler_dictionary.rb +7 -7
  251. data/lib/javonet-ruby-sdk/core/handler/heartbeat_handler.rb +12 -12
  252. data/lib/javonet-ruby-sdk/core/handler/invoke_delegate_handler.rb +12 -12
  253. data/lib/javonet-ruby-sdk/core/handler/invoke_generic_method_handler.rb +11 -11
  254. data/lib/javonet-ruby-sdk/core/handler/invoke_generic_static_method_handler.rb +12 -12
  255. data/lib/javonet-ruby-sdk/core/handler/invoke_global_function_handler.rb +45 -45
  256. data/lib/javonet-ruby-sdk/core/handler/invoke_instance_method_handler.rb +35 -35
  257. data/lib/javonet-ruby-sdk/core/handler/invoke_static_method_handler.rb +38 -38
  258. data/lib/javonet-ruby-sdk/core/handler/load_library_handler.rb +49 -49
  259. data/lib/javonet-ruby-sdk/core/handler/optimize_handler.rb +12 -12
  260. data/lib/javonet-ruby-sdk/core/handler/pass_delegate_handler.rb +11 -11
  261. data/lib/javonet-ruby-sdk/core/handler/plugin_wrapper_handler.rb +12 -12
  262. data/lib/javonet-ruby-sdk/core/handler/register_for_update_handler.rb +28 -28
  263. data/lib/javonet-ruby-sdk/core/handler/resolve_instance_handler.rb +29 -29
  264. data/lib/javonet-ruby-sdk/core/handler/retrieve_array_handler.rb +12 -12
  265. data/lib/javonet-ruby-sdk/core/handler/set_instance_field_handler.rb +35 -35
  266. data/lib/javonet-ruby-sdk/core/handler/set_static_field_handler.rb +31 -31
  267. data/lib/javonet-ruby-sdk/core/handler/value_for_update_handler.rb +11 -11
  268. data/lib/javonet-ruby-sdk/core/handler/value_handler.rb +6 -6
  269. data/lib/javonet-ruby-sdk/core/interpreter/interpreter.rb +26 -28
  270. data/lib/javonet-ruby-sdk/core/namespace_cache/namespace_cache.rb +42 -42
  271. data/lib/javonet-ruby-sdk/core/protocol/command_deserializer.rb +184 -184
  272. data/lib/javonet-ruby-sdk/core/protocol/command_serializer.rb +36 -36
  273. data/lib/javonet-ruby-sdk/core/protocol/type_deserializer.rb +65 -65
  274. data/lib/javonet-ruby-sdk/core/protocol/type_serializer.rb +120 -120
  275. data/lib/javonet-ruby-sdk/core/receiver/{receiver_new.rb → receiver.rb} +38 -42
  276. data/lib/javonet-ruby-sdk/core/reference_cache/references_cache.rb +39 -39
  277. data/lib/javonet-ruby-sdk/core/transmitter/transmitter.rb +58 -58
  278. data/lib/javonet-ruby-sdk/core/transmitter/transmitter_wrapper.rb +31 -31
  279. data/lib/javonet-ruby-sdk/core/type_cache/type_cache.rb +41 -41
  280. data/lib/javonet-ruby-sdk/core/web_socket_client/web_socket_client.rb +228 -228
  281. data/lib/javonet-ruby-sdk/sdk/config_runtime_factory.rb +132 -132
  282. data/lib/javonet-ruby-sdk/sdk/configuration/config.rb +32 -0
  283. data/lib/javonet-ruby-sdk/sdk/configuration/config_priority.rb +27 -0
  284. data/lib/javonet-ruby-sdk/sdk/configuration/config_resolvers/config_resolver.rb +80 -0
  285. data/lib/javonet-ruby-sdk/sdk/configuration/config_resolvers/connection_string_config_resolver.rb +89 -0
  286. data/lib/javonet-ruby-sdk/sdk/configuration/config_resolvers/json_config_resolver.rb +66 -0
  287. data/lib/javonet-ruby-sdk/sdk/configuration/config_resolvers/yaml_config_resolver.rb +77 -0
  288. data/lib/javonet-ruby-sdk/sdk/configuration/config_source_resolver.rb +70 -0
  289. data/lib/javonet-ruby-sdk/sdk/configuration/configs_dictionary.rb +48 -0
  290. data/lib/javonet-ruby-sdk/sdk/internal/abstract_config_runtime_factory.rb +33 -33
  291. data/lib/javonet-ruby-sdk/sdk/internal/abstract_invocation_context.rb +70 -70
  292. data/lib/javonet-ruby-sdk/sdk/internal/abstract_runtime_context.rb +10 -10
  293. data/lib/javonet-ruby-sdk/sdk/internal/abstract_runtime_factory.rb +37 -37
  294. data/lib/javonet-ruby-sdk/sdk/internal/invocation_context_iterator.rb +27 -27
  295. data/lib/javonet-ruby-sdk/sdk/invocation_context.rb +318 -319
  296. data/lib/javonet-ruby-sdk/sdk/javonet.rb +132 -106
  297. data/lib/javonet-ruby-sdk/sdk/runtime_context.rb +259 -218
  298. data/lib/javonet-ruby-sdk/sdk/runtime_factory.rb +78 -78
  299. data/lib/javonet-ruby-sdk/sdk/tools/activation_helper.rb +37 -37
  300. data/lib/javonet-ruby-sdk/sdk/tools/json_file_resolver.rb +62 -62
  301. data/lib/javonet-ruby-sdk/sdk/tools/sdk_message_helper.rb +71 -71
  302. data/lib/javonet-ruby-sdk/utils/command.rb +79 -93
  303. data/lib/javonet-ruby-sdk/utils/command_type.rb +154 -154
  304. data/lib/javonet-ruby-sdk/utils/connection_type.rb +5 -5
  305. data/lib/javonet-ruby-sdk/utils/exceptions/exception_serializer.rb +116 -116
  306. data/lib/javonet-ruby-sdk/utils/exceptions/exception_thrower.rb +65 -65
  307. data/lib/javonet-ruby-sdk/utils/exceptions/exception_type.rb +10 -10
  308. data/lib/javonet-ruby-sdk/utils/os_helper.rb +21 -21
  309. data/lib/javonet-ruby-sdk/utils/runtime_logger.rb +46 -46
  310. data/lib/javonet-ruby-sdk/utils/runtime_name_handler.rb +71 -40
  311. data/lib/javonet-ruby-sdk/utils/runtime_name_javonet.rb +13 -13
  312. data/lib/javonet-ruby-sdk/utils/string_encoding_mode_javonet.rb +6 -6
  313. data/lib/javonet-ruby-sdk/utils/tcp_connection_data.rb +36 -36
  314. data/lib/javonet-ruby-sdk/utils/type.rb +15 -15
  315. data/lib/javonet-ruby-sdk/utils/types_handler.rb +10 -10
  316. data/lib/javonet-ruby-sdk/utils/ws_connection_data.rb +23 -19
  317. metadata +14 -117
  318. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/libcrypto-3-arm64.dll +0 -0
  319. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/libssl-3-arm64.dll +0 -0
  320. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/libxml2.dll +0 -0
  321. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/libxmlsec-openssl.dll +0 -0
  322. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/libxmlsec.dll +0 -0
  323. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/libxslt.dll +0 -0
  324. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/libcrypto-3-x64.dll +0 -0
  325. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/libssl-3-x64.dll +0 -0
  326. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/libxml2.dll +0 -0
  327. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/libxmlsec-openssl.dll +0 -0
  328. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/libxmlsec.dll +0 -0
  329. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/libxslt.dll +0 -0
  330. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/libcrypto-3.dll +0 -0
  331. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/libssl-3.dll +0 -0
  332. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/libxml2.dll +0 -0
  333. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/libxmlsec-openssl.dll +0 -0
  334. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/libxmlsec.dll +0 -0
  335. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/libxslt.dll +0 -0
  336. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/__pycache__/__init__.cpython-312.pyc +0 -0
  337. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/delegateCache/__pycache__/DelegatesCache.cpython-312.pyc +0 -0
  338. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/delegateCache/__pycache__/__init__.cpython-312.pyc +0 -0
  339. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/AbstractCommandHandler.cpython-312.pyc +0 -0
  340. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/AbstractHandler.cpython-312.pyc +0 -0
  341. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/AddEventListenerHandler.cpython-312.pyc +0 -0
  342. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ArrayGetItemHandler.cpython-312.pyc +0 -0
  343. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ArrayGetRankHandler.cpython-312.pyc +0 -0
  344. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ArrayGetSizeHandler.cpython-312.pyc +0 -0
  345. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ArrayHandler.cpython-312.pyc +0 -0
  346. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ArrayReferenceHandler.cpython-312.pyc +0 -0
  347. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ArraySetItemHandler.cpython-312.pyc +0 -0
  348. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/AsOutHandler.cpython-312.pyc +0 -0
  349. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/AsRefHandler.cpython-312.pyc +0 -0
  350. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/CastingHandler.cpython-312.pyc +0 -0
  351. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ConvertTypeHandler.cpython-312.pyc +0 -0
  352. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/CreateClassInstanceHandler.cpython-312.pyc +0 -0
  353. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/CreateNullHandler.cpython-312.pyc +0 -0
  354. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/DestructReferenceHandler.cpython-312.pyc +0 -0
  355. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/EnableNamespaceHandler.cpython-312.pyc +0 -0
  356. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/EnableTypeHandler.cpython-312.pyc +0 -0
  357. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ExceptionHandler.cpython-312.pyc +0 -0
  358. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GenerateLibHandler.cpython-312.pyc +0 -0
  359. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetAsyncOperationResultHandler.cpython-312.pyc +0 -0
  360. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetEnumItemHandler.cpython-312.pyc +0 -0
  361. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetEnumNameHandler.cpython-312.pyc +0 -0
  362. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetEnumValueHandler.cpython-312.pyc +0 -0
  363. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetGlobalFieldHandler.cpython-312.pyc +0 -0
  364. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetInstanceFieldHandler.cpython-312.pyc +0 -0
  365. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetInstanceMethodAsDelegateHandler.cpython-312.pyc +0 -0
  366. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetKwargHandler.cpython-312.pyc +0 -0
  367. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetModuleHandler.cpython-312.pyc +0 -0
  368. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetRefValueHandler.cpython-312.pyc +0 -0
  369. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetResultTypeHandler.cpython-312.pyc +0 -0
  370. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetStaticFieldHandler.cpython-312.pyc +0 -0
  371. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetStaticMethodAsDelegateHandler.cpython-312.pyc +0 -0
  372. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetTypeHandler.cpython-312.pyc +0 -0
  373. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/Handler.cpython-312.pyc +0 -0
  374. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/HandlerDictionary.cpython-312.pyc +0 -0
  375. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/HeartBeatHandler.cpython-312.pyc +0 -0
  376. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/InvokeDelegateHandler.cpython-312.pyc +0 -0
  377. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/InvokeGenericMethodHandler.cpython-312.pyc +0 -0
  378. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/InvokeGenericStaticMethodHandler.cpython-312.pyc +0 -0
  379. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/InvokeGlobalFunctionHandler.cpython-312.pyc +0 -0
  380. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/InvokeInstanceMethodHandler.cpython-312.pyc +0 -0
  381. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/InvokeStaticMethodHandler.cpython-312.pyc +0 -0
  382. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/LoadLibraryHandler.cpython-312.pyc +0 -0
  383. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/OptimizeHandler.cpython-312.pyc +0 -0
  384. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/PassDelegateHandler.cpython-312.pyc +0 -0
  385. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/PluginWrapperHandler.cpython-312.pyc +0 -0
  386. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/RegisterForUpdateHandler.cpython-312.pyc +0 -0
  387. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ResolveInstanceHandler.cpython-312.pyc +0 -0
  388. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/RetrieveArrayHandler.cpython-312.pyc +0 -0
  389. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/SetInstanceFieldHandler.cpython-312.pyc +0 -0
  390. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/SetStaticFieldHandler.cpython-312.pyc +0 -0
  391. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ValueForUpdateHandler.cpython-312.pyc +0 -0
  392. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ValueHandler.cpython-312.pyc +0 -0
  393. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/__init__.cpython-312.pyc +0 -0
  394. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/interpreter/__pycache__/Interpreter.cpython-312.pyc +0 -0
  395. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/interpreter/__pycache__/__init__.cpython-312.pyc +0 -0
  396. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/namespaceCache/__pycache__/NamespaceCache.cpython-312.pyc +0 -0
  397. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/namespaceCache/__pycache__/__init__.cpython-312.pyc +0 -0
  398. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/protocol/__pycache__/CommandDeserializer.cpython-312.pyc +0 -0
  399. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/protocol/__pycache__/CommandSerializer.cpython-312.pyc +0 -0
  400. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/protocol/__pycache__/TypeDeserializer.cpython-312.pyc +0 -0
  401. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/protocol/__pycache__/TypeSerializer.cpython-312.pyc +0 -0
  402. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/protocol/__pycache__/__init__.cpython-312.pyc +0 -0
  403. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/receiver/__pycache__/Receiver.cpython-312.pyc +0 -0
  404. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/receiver/__pycache__/__init__.cpython-312.pyc +0 -0
  405. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/referenceCache/__pycache__/ReferencesCache.cpython-312.pyc +0 -0
  406. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/referenceCache/__pycache__/__init__.cpython-312.pyc +0 -0
  407. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/typeCache/__pycache__/TypeCache.cpython-312.pyc +0 -0
  408. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/typeCache/__pycache__/__init__.cpython-312.pyc +0 -0
  409. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/Command.cpython-312.pyc +0 -0
  410. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/CommandType.cpython-312.pyc +0 -0
  411. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/ConnectionType.cpython-312.pyc +0 -0
  412. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/ExceptionType.cpython-312.pyc +0 -0
  413. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/LazyModuleLoader.cpython-312.pyc +0 -0
  414. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/RuntimeLogger.cpython-312.pyc +0 -0
  415. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/RuntimeName.cpython-312.pyc +0 -0
  416. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/StringEncodingMode.cpython-312.pyc +0 -0
  417. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/Type.cpython-312.pyc +0 -0
  418. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/TypesHandler.cpython-312.pyc +0 -0
  419. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/UtilsConst.cpython-312.pyc +0 -0
  420. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/__init__.cpython-312.pyc +0 -0
  421. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/connectionData/__pycache__/IConnectionData.cpython-312.pyc +0 -0
  422. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/connectionData/__pycache__/InMemoryConnectionData.cpython-312.pyc +0 -0
  423. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/connectionData/__pycache__/__init__.cpython-312.pyc +0 -0
  424. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/exception/__pycache__/ExceptionSerializer.cpython-312.pyc +0 -0
  425. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/exception/__pycache__/ExceptionThrower.cpython-312.pyc +0 -0
  426. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/exception/__pycache__/JavonetException.cpython-312.pyc +0 -0
  427. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/exception/__pycache__/__init__.cpython-312.pyc +0 -0
  428. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/messageHelper/__pycache__/MessageHelper.cpython-312.pyc +0 -0
  429. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/messageHelper/__pycache__/__init__.cpython-312.pyc +0 -0
@@ -15,7 +15,10 @@ use utils\exception\JavonetArgumentsMismatchException;
15
15
  final class LoadLibraryHandler extends AbstractHandler
16
16
  {
17
17
  private const REQUIRED_ARGUMENTS_COUNT = 1;
18
+ private const MAX_DIRECTORY_DEPTH = 10;
18
19
  private static array $loadedLibraries = [];
20
+ private static array $loadedAutoloaders = [];
21
+ private static array $registeredPsr4Autoloaders = [];
19
22
  private array $loadedClassPaths = [];
20
23
 
21
24
  public function process(CommandInterface $command): int
@@ -149,10 +152,117 @@ final class LoadLibraryHandler extends AbstractHandler
149
152
  throw new Exception(sprintf('PHP syntax error in file %s: %s', $realPath, $lastError['message']));
150
153
  }
151
154
 
155
+ // Try to find and load Composer autoloader before including the file
156
+ $this->findAndLoadComposerAutoloader($realPath);
157
+
152
158
  include_once $realPath;
153
159
  self::$loadedPhpFiles[] = $realPath;
154
160
  }
155
161
 
162
+ /**
163
+ * Searches for Composer autoloader in the directory hierarchy and loads it.
164
+ * Falls back to registering PSR-4 autoloader from composer.json if vendor/autoload.php is not available.
165
+ */
166
+ private function findAndLoadComposerAutoloader(string $filePath): void
167
+ {
168
+ $directory = dirname($filePath);
169
+
170
+ for ($i = 0; $i < self::MAX_DIRECTORY_DEPTH; $i++) {
171
+ $vendorAutoloader = $directory . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php';
172
+ $composerJson = $directory . DIRECTORY_SEPARATOR . 'composer.json';
173
+
174
+ // Prefer ready-made vendor autoloader
175
+ if (file_exists($vendorAutoloader)) {
176
+ $this->loadVendorAutoloader($vendorAutoloader);
177
+ return;
178
+ }
179
+
180
+ // Fallback: build autoloader from composer.json
181
+ if (file_exists($composerJson)) {
182
+ $this->registerAutoloaderFromComposerJson($composerJson, $directory);
183
+ return;
184
+ }
185
+
186
+ $parentDirectory = dirname($directory);
187
+ // Reached filesystem root
188
+ if ($parentDirectory === $directory) {
189
+ break;
190
+ }
191
+ $directory = $parentDirectory;
192
+ }
193
+ }
194
+
195
+ /**
196
+ * Loads vendor autoloader if not already loaded.
197
+ */
198
+ private function loadVendorAutoloader(string $autoloaderPath): void
199
+ {
200
+ $realAutoloaderPath = realpath($autoloaderPath);
201
+
202
+ if ($realAutoloaderPath === false) {
203
+ return;
204
+ }
205
+
206
+ // Don't load the same autoloader twice
207
+ if (in_array($realAutoloaderPath, self::$loadedAutoloaders, true)) {
208
+ return;
209
+ }
210
+
211
+ include_once $realAutoloaderPath;
212
+ self::$loadedAutoloaders[] = $realAutoloaderPath;
213
+ }
214
+
215
+ /**
216
+ * Registers PSR-4 autoloader based on composer.json configuration.
217
+ * This is a fallback when vendor/autoload.php is not available.
218
+ */
219
+ private function registerAutoloaderFromComposerJson(string $composerJsonPath, string $baseDir): void
220
+ {
221
+ $realComposerJsonPath = realpath($composerJsonPath);
222
+
223
+ if ($realComposerJsonPath === false) {
224
+ return;
225
+ }
226
+
227
+ // Don't register autoloader for the same composer.json twice
228
+ if (in_array($realComposerJsonPath, self::$registeredPsr4Autoloaders, true)) {
229
+ return;
230
+ }
231
+
232
+ $composerContent = file_get_contents($realComposerJsonPath);
233
+ if ($composerContent === false) {
234
+ return;
235
+ }
236
+
237
+ $composerConfig = json_decode($composerContent, true);
238
+ if ($composerConfig === null || !isset($composerConfig['autoload']['psr-4'])) {
239
+ return;
240
+ }
241
+
242
+ $psr4Map = $composerConfig['autoload']['psr-4'];
243
+ $realBaseDir = realpath($baseDir) ?: $baseDir;
244
+
245
+ spl_autoload_register(function (string $class) use ($psr4Map, $realBaseDir): void {
246
+ foreach ($psr4Map as $prefix => $path) {
247
+ $prefixLength = strlen($prefix);
248
+
249
+ if (strncmp($class, $prefix, $prefixLength) !== 0) {
250
+ continue;
251
+ }
252
+
253
+ $relativeClass = substr($class, $prefixLength);
254
+ $file = $realBaseDir . DIRECTORY_SEPARATOR . $path . str_replace('\\', DIRECTORY_SEPARATOR, $relativeClass) . '.php';
255
+
256
+ if (file_exists($file)) {
257
+ include_once $file;
258
+ return;
259
+ }
260
+ }
261
+ });
262
+
263
+ self::$registeredPsr4Autoloaders[] = $realComposerJsonPath;
264
+ }
265
+
156
266
  private function autoloadPhpFilesFromDirectory(string $directory): void
157
267
  {
158
268
  $iterator = new RecursiveIteratorIterator(
@@ -23,29 +23,30 @@ use utils\Uri;
23
23
 
24
24
  final class Interpreter
25
25
  {
26
- private string $debugMode;
27
- private Handler $handler;
26
+ private function __construct()
27
+ {
28
+ }
28
29
 
29
- public function __construct()
30
+ private static function getDebugMode(): string
30
31
  {
31
- $this->debugMode = getenv('DEBUG') !== false ? getenv('DEBUG') : 'FALSE';
32
- $this->handler = new Handler();
32
+ return getenv('DEBUG') !== false ? getenv('DEBUG') : 'FALSE';
33
33
  }
34
34
 
35
- public function execute(CommandInterface $command, IConnectionData $connectionData): CommandInterface
35
+ public static function execute(CommandInterface $command, IConnectionData $IConnectionData): CommandInterface
36
36
  {
37
- if ($this->debugMode === 'TRUE') {
37
+ $debugMode = self::getDebugMode();
38
+ if ($debugMode === 'TRUE') {
38
39
  echo 'Sent command: ' . $command;
39
40
  MessageHelper::getInstance()->sendMessageToAppInsights('SentCommand', $command->toString());
40
41
  }
41
42
 
42
- $responseByteArray = $this->getResponseByteArray($command, $connectionData);
43
+ $responseByteArray = self::getResponseByteArray($command, $IConnectionData);
43
44
  if ($responseByteArray instanceof Command) {
44
45
  return $responseByteArray;
45
46
  }
46
47
 
47
48
  $response = CommandDeserializer::deserialize($responseByteArray);
48
- if ($this->debugMode === 'TRUE') {
49
+ if ($debugMode === 'TRUE') {
49
50
  echo 'Received command: ' . $response;
50
51
  MessageHelper::getInstance()->sendMessageToAppInsights('ReceivedCommand', $response->toString());
51
52
  }
@@ -53,13 +54,13 @@ final class Interpreter
53
54
  return $response;
54
55
  }
55
56
 
56
- private function getResponseByteArray(Command $command, IConnectionData $connectionData)
57
+ private static function getResponseByteArray(Command $command, IConnectionData $IConnectionData)
57
58
  {
58
- $messageByteArray = CommandSerializer::serialize($command, $connectionData);
59
- if ($this->isWebSocket($connectionData))
59
+ $messageByteArray = CommandSerializer::serialize($command, $IConnectionData);
60
+ if (self::isWebSocket($IConnectionData))
60
61
  {
61
62
  try {
62
- return WebSocketClient::sendMessage(new Uri($connectionData->getHostname()), $messageByteArray);
63
+ return WebSocketClient::sendMessage(new Uri($IConnectionData->getHostname()), $messageByteArray);
63
64
  } catch (Exception $e) {
64
65
  if ($e->getPrevious() instanceof Throwable) {
65
66
  return ExceptionSerializer::serializeException($e->getPrevious(), $command);
@@ -69,34 +70,35 @@ final class Interpreter
69
70
  }
70
71
  }
71
72
 
72
- if ($this->isInMemoryAndSameRuntime($command, $connectionData)) {
73
- return (new Receiver())->sendCommand($messageByteArray);
73
+ if (self::isInMemoryAndSameRuntime($command, $IConnectionData)) {
74
+ return Receiver::sendCommand($messageByteArray);
74
75
  }
75
76
 
76
77
  return Transmitter::sendCommand($messageByteArray);
77
78
  }
78
79
 
79
- private function isWebSocket(IConnectionData $connectionData): bool
80
+ private static function isWebSocket(IConnectionData $IConnectionData): bool
80
81
  {
81
- return $connectionData->getConnectionType()->equalsByValue(ConnectionType::WEB_SOCKET);
82
+ return $IConnectionData->getConnectionType()->equalsByValue(ConnectionType::WEB_SOCKET);
82
83
  }
83
84
 
84
- private function isInMemoryAndSameRuntime(Command $command, IConnectionData $connectionData): bool
85
+ private static function isInMemoryAndSameRuntime(Command $command, IConnectionData $IConnectionData): bool
85
86
  {
86
87
  return $command->getRuntimeName()->equalsByValue(RuntimeName::PHP)
87
- && $connectionData->getConnectionType()->equalsByValue(ConnectionType::IN_MEMORY);
88
+ && $IConnectionData->getConnectionType()->equalsByValue(ConnectionType::IN_MEMORY);
88
89
  }
89
90
 
90
- public function process(array $byteArray): CommandInterface
91
+ public static function process(array $byteArray): CommandInterface
91
92
  {
93
+ $debugMode = self::getDebugMode();
92
94
  $receivedCommand = CommandDeserializer::deserialize($byteArray);
93
- if ($this->debugMode === 'TRUE') {
95
+ if ($debugMode === 'TRUE') {
94
96
  echo 'Received command: ' . $receivedCommand;
95
97
  MessageHelper::getInstance()->sendMessageToAppInsights('ReceivedCommand', $receivedCommand->toString());
96
98
  }
97
99
 
98
- $response = $this->handler->handleCommand($receivedCommand);
99
- if ($this->debugMode === 'TRUE') {
100
+ $response = Handler::handleCommand($receivedCommand);
101
+ if ($debugMode === 'TRUE') {
100
102
  echo 'Response command: ' . $response;
101
103
  MessageHelper::getInstance()->sendMessageToAppInsights('ResponseCommand', $response->toString());
102
104
  }
@@ -27,7 +27,7 @@ final class CommandSerializer
27
27
  *
28
28
  * @return int[]
29
29
  */
30
- public static function serialize(CommandInterface $rootCommand, ?IConnectionData $connectionData): array
30
+ public static function serialize(CommandInterface $rootCommand, ?IConnectionData $IConnectionData): array
31
31
  {
32
32
  try {
33
33
  $buffer = [];
@@ -37,7 +37,7 @@ final class CommandSerializer
37
37
  $buffer[] = 0; // runtimeVersion
38
38
 
39
39
  // Write connection data
40
- self::insertIntoBuffer($buffer, self::getDataByConnectionData($connectionData));
40
+ self::insertIntoBuffer($buffer, self::getDataByIConnectionData($IConnectionData));
41
41
 
42
42
  // Write runtime name and command type header for PHP runtime
43
43
  self::insertIntoBuffer($buffer, [
@@ -61,10 +61,10 @@ final class CommandSerializer
61
61
  /**
62
62
  * @return int[]
63
63
  */
64
- private static function getDataByConnectionData(?IConnectionData $connectionData): array
64
+ private static function getDataByIConnectionData(?IConnectionData $IConnectionData): array
65
65
  {
66
- if ($connectionData !== null) {
67
- return $connectionData->serializeConnectionData();
66
+ if ($IConnectionData !== null) {
67
+ return $IConnectionData->serializeConnectionData();
68
68
  }
69
69
 
70
70
  return self::DEFAULT_SERIALIZER_CONNECTION_DATA;
@@ -17,11 +17,14 @@ use utils\type\CommandType;
17
17
 
18
18
  final class Receiver
19
19
  {
20
+ private function __construct()
21
+ {
22
+ }
20
23
 
21
- public function sendCommand(array $messageByteArray): array
24
+ public static function sendCommand(array $messageByteArray): array
22
25
  {
23
26
  try {
24
- $result = (new Interpreter())->process($messageByteArray);
27
+ $result = Interpreter::process($messageByteArray);
25
28
  return CommandSerializer::serialize($result, null);
26
29
  } catch (Throwable $ex) {
27
30
  $exceptionCommand = ExceptionSerializer::serializeException(
@@ -32,12 +35,12 @@ final class Receiver
32
35
  }
33
36
  }
34
37
 
35
- public function heartBeat(array $messageByteArray): array
38
+ public static function heartBeat(array $messageByteArray): array
36
39
  {
37
40
  return [$messageByteArray[11], $messageByteArray[12] - 2];
38
41
  }
39
42
 
40
- public function getRuntimeInfo(): string
43
+ public static function getRuntimeInfo(): string
41
44
  {
42
45
  return RuntimeLogger::getRuntimeInfo();
43
46
  }
@@ -14,18 +14,26 @@ final class Command implements CommandInterface
14
14
  /** @var array<mixed> */
15
15
  private array $payload;
16
16
 
17
+ /**
18
+ * Constructor with variadic parameters (params object[] payload in C#)
19
+ * Also handles Array payload case - if a single array is passed, treat it as the payload
20
+ */
17
21
  public function __construct(
18
22
  RuntimeName $runtimeName,
19
23
  CommandType $commandType,
20
- ...$payload
24
+ ...$payload
21
25
  ) {
22
26
  $this->runtimeName = $runtimeName;
23
27
  $this->commandType = $commandType;
24
-
25
- // If a single array is passed, treat it as the payload itself.
26
- if (count($payload) === 1 && is_array($payload[0])) {
28
+
29
+ if ($payload === null || count($payload) === 0) {
30
+ $this->payload = [];
31
+ } elseif (count($payload) === 1 && is_array($payload[0])) {
32
+ // Single array passed - treat it as the payload itself (Array payload case in C#)
33
+ // Reuse array directly - no conversion overhead if it's already object[]
27
34
  $this->payload = $payload[0];
28
35
  } else {
36
+ // Multiple arguments or non-array - treat as variadic params
29
37
  $this->payload = $payload;
30
38
  }
31
39
  }
@@ -35,10 +43,19 @@ final class Command implements CommandInterface
35
43
  */
36
44
  public function addArgToPayload($arg): CommandInterface
37
45
  {
38
- // Keep semantics (return new Command) but avoid array_merge overhead.
39
- $newPayload = $this->payload;
40
- $newPayload[] = $arg;
41
-
46
+ $oldLength = count($this->payload);
47
+ $newPayload = [];
48
+
49
+ if ($oldLength > 0) {
50
+ // Copy existing payload
51
+ foreach ($this->payload as $item) {
52
+ $newPayload[] = $item;
53
+ }
54
+ }
55
+
56
+ $newPayload[$oldLength] = $arg;
57
+
58
+ // Pass as single array argument to match Array constructor pattern
42
59
  return new Command($this->runtimeName, $this->commandType, $newPayload);
43
60
  }
44
61
 
@@ -91,16 +108,29 @@ final class Command implements CommandInterface
91
108
  public function __toString(): string
92
109
  {
93
110
  try {
94
- $result = 'RuntimeName: ';
111
+ $result = 'RuntimeName ';
95
112
  $result .= $this->runtimeName->getName();
96
- $result .= ' CommandType: ';
113
+ $result .= ' ';
114
+ $result .= 'CommandType ';
97
115
  $result .= $this->commandType->getName();
98
- $result .= ' Payload: ';
99
- $result .= json_encode($this->payload);
100
-
116
+ $result .= ' ';
117
+ $result .= 'Payload ';
118
+
119
+ $payload = $this->payload;
120
+ $len = count($payload);
121
+
122
+ for ($i = 0; $i < $len; $i++) {
123
+ $item = $payload[$i];
124
+ $result .= ($item !== null ? (string)$item : 'null');
125
+
126
+ if ($i < $len - 1) {
127
+ $result .= ' ';
128
+ }
129
+ }
130
+
101
131
  return $result;
102
132
  } catch (Exception $e) {
103
- return 'Error while converting command to string: ' . $e->getMessage();
133
+ return 'Error while converting command to string:' . $e->getMessage();
104
134
  }
105
135
  }
106
136
 
@@ -128,11 +158,43 @@ final class Command implements CommandInterface
128
158
  return new self($this->runtimeName, $this->commandType, $this->payload);
129
159
  }
130
160
 
131
- return new self(
132
- $this->runtimeName,
133
- $this->commandType,
134
- [$currentCommand, ...$this->payload]
135
- );
161
+ $oldLength = count($this->payload);
162
+ $newPayload = [];
163
+
164
+ // Put new element at the front
165
+ $newPayload[0] = $currentCommand;
166
+
167
+ if ($oldLength > 0) {
168
+ // Copy existing payload starting from index 1
169
+ foreach ($this->payload as $item) {
170
+ $newPayload[] = $item;
171
+ }
172
+ }
173
+
174
+ // Pass as single array argument to match Array constructor pattern
175
+ return new self($this->runtimeName, $this->commandType, $newPayload);
176
+ }
177
+
178
+ /**
179
+ * Drop first payload argument and return new Command
180
+ */
181
+ public function dropFirstPayloadArg(): CommandInterface
182
+ {
183
+ $payloadLength = count($this->payload);
184
+
185
+ if ($payloadLength <= 1) {
186
+ return new Command($this->runtimeName, $this->commandType);
187
+ }
188
+
189
+ $newPayload = [];
190
+
191
+ // Copy from index 1 to end
192
+ for ($i = 1; $i < $payloadLength; $i++) {
193
+ $newPayload[] = $this->payload[$i];
194
+ }
195
+
196
+ // Pass as single array argument to match Array constructor pattern
197
+ return new Command($this->runtimeName, $this->commandType, $newPayload);
136
198
  }
137
199
 
138
200
  /**
@@ -148,16 +210,18 @@ final class Command implements CommandInterface
148
210
  return false;
149
211
  }
150
212
 
151
- if ($this->runtimeName !== $element->runtimeName || $this->commandType !== $element->commandType) {
213
+ if ($this->runtimeName->getValue() !== $element->getRuntimeName()->getValue() ||
214
+ $this->commandType->getValue() !== $element->getCommandType()->getValue()) {
152
215
  return false;
153
216
  }
154
217
 
155
- if (count($this->payload) !== count($element->payload)) {
218
+ $elementPayload = $element->getPayload();
219
+ if (count($this->payload) !== count($elementPayload)) {
156
220
  return false;
157
221
  }
158
222
 
159
223
  foreach ($this->payload as $index => $payloadItem) {
160
- $elementPayloadItem = $element->payload[$index];
224
+ $elementPayloadItem = $elementPayload[$index];
161
225
 
162
226
  if ($payloadItem instanceof CommandInterface && $elementPayloadItem instanceof CommandInterface) {
163
227
  if (!$payloadItem->equals($elementPayloadItem)) {
@@ -45,8 +45,7 @@ final class DynamicMethodFactory
45
45
  $payload
46
46
  );
47
47
 
48
- $interpreter = new Interpreter();
49
- $executeCall = $interpreter->execute(
48
+ $executeCall = Interpreter::execute(
50
49
  $invokeDelegateCommand,
51
50
  new InMemoryConnectionData()
52
51
  );
@@ -27,7 +27,21 @@ final class ExceptionSerializer
27
27
  $exceptionName = basename(str_replace('\\', '/', get_class($exception)));
28
28
 
29
29
  $exceptionCommand = $exceptionCommand->addArgToPayload(ExceptionType::getExceptionCodeByExceptionName($exceptionName));
30
- $exceptionCommand = $exceptionCommand->addArgToPayload((string)$command);
30
+ $commandString = '';
31
+ try {
32
+ if (is_string($command)) {
33
+ $commandString = $command;
34
+ } elseif (method_exists($command, '__toString')) {
35
+ $commandString = (string)$command;
36
+ } else {
37
+ $encoded = json_encode($command, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
38
+ $commandString = $encoded !== false ? $encoded : get_class($command);
39
+ }
40
+ } catch (\Throwable $e) {
41
+ $commandString = get_class($command);
42
+ }
43
+
44
+ $exceptionCommand = $exceptionCommand->addArgToPayload($commandString);
31
45
  $exceptionCommand = $exceptionCommand->addArgToPayload($exceptionName);
32
46
  $exceptionCommand = $exceptionCommand->addArgToPayload($exception->getMessage());
33
47
  $exceptionCommand = $exceptionCommand->addArgToPayload($stackClasses);
@@ -37,4 +37,36 @@ final class RuntimeNameHandler
37
37
  throw new \Exception('Invalid runtime name.');
38
38
  }
39
39
  }
40
+
41
+ public static function getRuntimeName(string $runtime): RuntimeName
42
+ {
43
+ switch (strtolower($runtime)) {
44
+ case 'clr':
45
+ return new RuntimeName(RuntimeName::CLR);
46
+ case 'go':
47
+ return new RuntimeName(RuntimeName::GO);
48
+ case 'jvm':
49
+ return new RuntimeName(RuntimeName::JVM);
50
+ case 'netcore':
51
+ return new RuntimeName(RuntimeName::NETCORE);
52
+ case 'perl':
53
+ return new RuntimeName(RuntimeName::PERL);
54
+ case 'python':
55
+ return new RuntimeName(RuntimeName::PYTHON);
56
+ case 'ruby':
57
+ return new RuntimeName(RuntimeName::RUBY);
58
+ case 'nodejs':
59
+ return new RuntimeName(RuntimeName::NODEJS);
60
+ case 'cpp':
61
+ return new RuntimeName(RuntimeName::CPP);
62
+ case 'php':
63
+ return new RuntimeName(RuntimeName::PHP);
64
+ case 'python27':
65
+ return new RuntimeName(RuntimeName::PYTHON27);
66
+ case 'none':
67
+ return new RuntimeName(RuntimeName::NONE);
68
+ default:
69
+ throw new \Exception('Invalid runtime name string.');
70
+ }
71
+ }
40
72
  }
@@ -28,9 +28,12 @@ final class UtilsConst
28
28
 
29
29
  public static function getJavonetWorkingDirectory(): string
30
30
  {
31
- if (empty(self::$javonetWorkingDirectory)) {
32
- return self::$javonetWorkingDirectory = dirname(__DIR__) . '/';
33
- }
31
+ if (empty(self::$javonetWorkingDirectory)) {
32
+ $base = str_replace('\\', '/', dirname(__DIR__));
33
+ self::$javonetWorkingDirectory = rtrim($base, '/') . '/';
34
+ } else {
35
+ self::$javonetWorkingDirectory = rtrim(str_replace('\\', '/', self::$javonetWorkingDirectory), '/') . '/';
36
+ }
34
37
 
35
38
  return self::$javonetWorkingDirectory;
36
39
  }
@@ -12,4 +12,4 @@ interface IConnectionData
12
12
  public function getHostname(): string;
13
13
  public function serializeConnectionData(): array;
14
14
  public function toString(): string;
15
- }
15
+ }
@@ -32,4 +32,4 @@ final class InMemoryConnectionData implements IConnectionData
32
32
  {
33
33
  return $this->getHostname();
34
34
  }
35
- }
35
+ }
@@ -60,6 +60,11 @@ final class TcpConnectionData implements IConnectionData
60
60
  ];
61
61
  }
62
62
 
63
+ public function getPort(): int
64
+ {
65
+ return $this->port;
66
+ }
67
+
63
68
  public function toString(): string
64
69
  {
65
70
  return $this->ipAddress . ':' . $this->port;
@@ -69,4 +74,4 @@ final class TcpConnectionData implements IConnectionData
69
74
  {
70
75
  return $this->ipAddress . ':' . $this->port;
71
76
  }
72
- }
77
+ }
@@ -40,4 +40,4 @@ final class WsConnectionData implements IConnectionData
40
40
  {
41
41
  return $this->hostName;
42
42
  }
43
- }
43
+ }
@@ -3,10 +3,10 @@ from ctypes import *
3
3
  def callbackFunc(message_byte_array, message_byte_array_len):
4
4
  message_byte_array_py = bytearray((c_ubyte * message_byte_array_len).from_address(
5
5
  addressof(message_byte_array.contents)))
6
- message_byte_array_len_py = int(message_byte_array_len)
7
6
  from javonet.core.receiver.Receiver import Receiver
8
- python_receiver = Receiver()
7
+ # Initialize exception handler if not already done
8
+ Receiver.initialize_exception_handler()
9
9
  if message_byte_array[10] == 11:
10
- return python_receiver.HeartBeat(message_byte_array_py, message_byte_array_len_py)
10
+ return Receiver.heart_beat(message_byte_array_py)
11
11
  else:
12
- return python_receiver.SendCommand(message_byte_array_py, message_byte_array_len_py)
12
+ return Receiver.send_command(message_byte_array_py)