neo4j-ruby-driver 5.7.0.alpha.4 → 6.0.3.alpha.0-java

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 (279) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +440 -40
  3. data/jruby/neo4j/driver/ext/async_converter.rb +55 -0
  4. data/jruby/neo4j/driver/ext/auth_tokens.rb +20 -0
  5. data/jruby/neo4j/driver/ext/config_converter.rb +83 -0
  6. data/jruby/neo4j/driver/ext/exception_checkable.rb +34 -0
  7. data/jruby/neo4j/driver/ext/exception_mapper.rb +92 -0
  8. data/jruby/neo4j/driver/ext/graph_database.rb +33 -0
  9. data/jruby/neo4j/driver/ext/internal/abstract_query_runner.rb +18 -0
  10. data/jruby/neo4j/driver/ext/internal/async/internal_async_session.rb +23 -0
  11. data/jruby/neo4j/driver/ext/internal/cluster/routing_table_registry_impl.rb +15 -0
  12. data/jruby/neo4j/driver/ext/internal/cursor/disposable_async_result_cursor.rb +15 -0
  13. data/jruby/neo4j/driver/ext/internal/driver_factory.rb +24 -0
  14. data/jruby/neo4j/driver/ext/internal/eager_result_value.rb +17 -0
  15. data/jruby/neo4j/driver/ext/internal/metrics/internal_connection_pool_metrics.rb +17 -0
  16. data/jruby/neo4j/driver/ext/internal/summary/internal_notification.rb +27 -0
  17. data/jruby/neo4j/driver/ext/internal/summary/internal_plan.rb +26 -0
  18. data/jruby/neo4j/driver/ext/internal/summary/internal_result_summary.rb +34 -0
  19. data/jruby/neo4j/driver/ext/internal_driver.rb +52 -0
  20. data/jruby/neo4j/driver/ext/internal_entity.rb +21 -0
  21. data/jruby/neo4j/driver/ext/internal_keys.rb +15 -0
  22. data/jruby/neo4j/driver/ext/internal_node.rb +13 -0
  23. data/jruby/neo4j/driver/ext/internal_record.rb +29 -0
  24. data/jruby/neo4j/driver/ext/internal_relationship.rb +13 -0
  25. data/jruby/neo4j/driver/ext/internal_result.rb +27 -0
  26. data/jruby/neo4j/driver/ext/internal_session.rb +44 -0
  27. data/jruby/neo4j/driver/ext/internal_transaction.rb +19 -0
  28. data/jruby/neo4j/driver/ext/logger.rb +60 -0
  29. data/jruby/neo4j/driver/ext/map_converter.rb +14 -0
  30. data/jruby/neo4j/driver/ext/neo_converter.rb +59 -0
  31. data/jruby/neo4j/driver/ext/query.rb +13 -0
  32. data/jruby/neo4j/driver/ext/ruby_converter.rb +57 -0
  33. data/jruby/neo4j/driver/ext/run_override.rb +22 -0
  34. data/jruby/neo4j/driver/ext/start_end_naming.rb +17 -0
  35. data/{ruby → jruby}/neo4j/driver/version.rb +1 -1
  36. data/jruby/neo4j/driver.rb +62 -0
  37. data/lib/neo4j/driver/{auto_closable.rb → auto_closeable.rb} +6 -6
  38. data/lib/neo4j/driver/exceptions/neo4j_exception.rb +6 -6
  39. data/lib/neo4j/driver/internal/deprecator.rb +15 -0
  40. metadata +91 -277
  41. data/ruby/neo4j/driver/access_mode.rb +0 -10
  42. data/ruby/neo4j/driver/auth_tokens.rb +0 -34
  43. data/ruby/neo4j/driver/bookmark.rb +0 -21
  44. data/ruby/neo4j/driver/config.rb +0 -89
  45. data/ruby/neo4j/driver/graph_database.rb +0 -78
  46. data/ruby/neo4j/driver/internal/async/connection/bolt_protocol_util.rb +0 -51
  47. data/ruby/neo4j/driver/internal/async/connection/bootstrap_factory.rb +0 -22
  48. data/ruby/neo4j/driver/internal/async/connection/channel_attributes.rb +0 -31
  49. data/ruby/neo4j/driver/internal/async/connection/channel_connected_listener.rb +0 -32
  50. data/ruby/neo4j/driver/internal/async/connection/channel_connector_impl.rb +0 -83
  51. data/ruby/neo4j/driver/internal/async/connection/channel_pipeline_builder_impl.rb +0 -22
  52. data/ruby/neo4j/driver/internal/async/connection/direct_connection.rb +0 -30
  53. data/ruby/neo4j/driver/internal/async/connection/event_loop_group_factory.rb +0 -83
  54. data/ruby/neo4j/driver/internal/async/connection/handshake_completed_listener.rb +0 -27
  55. data/ruby/neo4j/driver/internal/async/connection/handshake_handler.rb +0 -113
  56. data/ruby/neo4j/driver/internal/async/connection/netty_channel_initializer.rb +0 -57
  57. data/ruby/neo4j/driver/internal/async/connection/netty_domain_name_resolver.rb +0 -26
  58. data/ruby/neo4j/driver/internal/async/connection/netty_domain_name_resolver_group.rb +0 -19
  59. data/ruby/neo4j/driver/internal/async/connection/routing_connection.rb +0 -36
  60. data/ruby/neo4j/driver/internal/async/connection/stream.rb +0 -12
  61. data/ruby/neo4j/driver/internal/async/connection/stream_reader.rb +0 -16
  62. data/ruby/neo4j/driver/internal/async/connection_context.rb +0 -10
  63. data/ruby/neo4j/driver/internal/async/immutable_connection_context.rb +0 -24
  64. data/ruby/neo4j/driver/internal/async/inbound/byte_buf_input.rb +0 -30
  65. data/ruby/neo4j/driver/internal/async/inbound/channel_error_handler.rb +0 -77
  66. data/ruby/neo4j/driver/internal/async/inbound/chunk_decoder.rb +0 -41
  67. data/ruby/neo4j/driver/internal/async/inbound/connect_timeout_handler.rb +0 -32
  68. data/ruby/neo4j/driver/internal/async/inbound/connection_read_timeout_handler.rb +0 -17
  69. data/ruby/neo4j/driver/internal/async/inbound/inbound_message_dispatcher.rb +0 -171
  70. data/ruby/neo4j/driver/internal/async/inbound/inbound_message_handler.rb +0 -42
  71. data/ruby/neo4j/driver/internal/async/inbound/message_decoder.rb +0 -51
  72. data/ruby/neo4j/driver/internal/async/internal_async_session.rb +0 -98
  73. data/ruby/neo4j/driver/internal/async/internal_async_transaction.rb +0 -13
  74. data/ruby/neo4j/driver/internal/async/leak_logging_network_session.rb +0 -34
  75. data/ruby/neo4j/driver/internal/async/network_connection.rb +0 -194
  76. data/ruby/neo4j/driver/internal/async/network_session.rb +0 -150
  77. data/ruby/neo4j/driver/internal/async/outbound/chunk_aware_byte_buf_output.rb +0 -110
  78. data/ruby/neo4j/driver/internal/async/outbound/outbound_message_handler.rb +0 -39
  79. data/ruby/neo4j/driver/internal/async/pool/channel.rb +0 -66
  80. data/ruby/neo4j/driver/internal/async/pool/channel_pool.rb +0 -31
  81. data/ruby/neo4j/driver/internal/async/pool/channel_tracker.rb +0 -135
  82. data/ruby/neo4j/driver/internal/async/pool/connection_pool_impl.rb +0 -156
  83. data/ruby/neo4j/driver/internal/async/pool/netty_channel_health_checker.rb +0 -87
  84. data/ruby/neo4j/driver/internal/async/pool/netty_channel_pool.rb +0 -52
  85. data/ruby/neo4j/driver/internal/async/pool/network_connection_factory.rb +0 -21
  86. data/ruby/neo4j/driver/internal/async/pool/pool_settings.rb +0 -34
  87. data/ruby/neo4j/driver/internal/async/pool/timed_stack.rb +0 -15
  88. data/ruby/neo4j/driver/internal/async/result_cursors_holder.rb +0 -17
  89. data/ruby/neo4j/driver/internal/async/unmanaged_transaction.rb +0 -212
  90. data/ruby/neo4j/driver/internal/bookmark_holder.rb +0 -9
  91. data/ruby/neo4j/driver/internal/cluster/cluster_composition.rb +0 -48
  92. data/ruby/neo4j/driver/internal/cluster/cluster_composition_lookup_result.rb +0 -14
  93. data/ruby/neo4j/driver/internal/cluster/cluster_routing_table.rb +0 -122
  94. data/ruby/neo4j/driver/internal/cluster/identity_resolver.rb +0 -10
  95. data/ruby/neo4j/driver/internal/cluster/loadbalancing/least_connected_load_balancing_strategy.rb +0 -68
  96. data/ruby/neo4j/driver/internal/cluster/loadbalancing/load_balancer.rb +0 -125
  97. data/ruby/neo4j/driver/internal/cluster/loadbalancing/round_robin_array_index.rb +0 -13
  98. data/ruby/neo4j/driver/internal/cluster/multi_databases_routing_procedure_runner.rb +0 -31
  99. data/ruby/neo4j/driver/internal/cluster/rediscovery_impl.rb +0 -147
  100. data/ruby/neo4j/driver/internal/cluster/route_message_routing_procedure_runner.rb +0 -43
  101. data/ruby/neo4j/driver/internal/cluster/routing_context.rb +0 -77
  102. data/ruby/neo4j/driver/internal/cluster/routing_procedure_cluster_composition_provider.rb +0 -60
  103. data/ruby/neo4j/driver/internal/cluster/routing_procedure_response.rb +0 -35
  104. data/ruby/neo4j/driver/internal/cluster/routing_settings.rb +0 -24
  105. data/ruby/neo4j/driver/internal/cluster/routing_table_handler_impl.rb +0 -95
  106. data/ruby/neo4j/driver/internal/cluster/routing_table_registry_impl.rb +0 -121
  107. data/ruby/neo4j/driver/internal/cluster/single_database_routing_procedure_runner.rb +0 -73
  108. data/ruby/neo4j/driver/internal/connection_settings.rb +0 -16
  109. data/ruby/neo4j/driver/internal/cursor/async_result_cursor_impl.rb +0 -55
  110. data/ruby/neo4j/driver/internal/cursor/async_result_cursor_only_factory.rb +0 -24
  111. data/ruby/neo4j/driver/internal/cursor/disposable_async_result_cursor.rb +0 -61
  112. data/ruby/neo4j/driver/internal/cursor/result_cursor_factory_impl.rb +0 -24
  113. data/ruby/neo4j/driver/internal/cursor/rx_result_cursor_impl.rb +0 -110
  114. data/ruby/neo4j/driver/internal/database_name_util.rb +0 -37
  115. data/ruby/neo4j/driver/internal/default_bookmark_holder.rb +0 -9
  116. data/ruby/neo4j/driver/internal/default_domain_name_resolver.rb +0 -11
  117. data/ruby/neo4j/driver/internal/direct_connection_provider.rb +0 -40
  118. data/ruby/neo4j/driver/internal/driver_factory.rb +0 -126
  119. data/ruby/neo4j/driver/internal/handlers/begin_tx_response_handler.rb +0 -20
  120. data/ruby/neo4j/driver/internal/handlers/channel_releasing_reset_response_handler.rb +0 -30
  121. data/ruby/neo4j/driver/internal/handlers/commit_tx_response_handler.rb +0 -25
  122. data/ruby/neo4j/driver/internal/handlers/hello_response_handler.rb +0 -65
  123. data/ruby/neo4j/driver/internal/handlers/init_response_handler.rb +0 -34
  124. data/ruby/neo4j/driver/internal/handlers/legacy_pull_all_response_handler.rb +0 -199
  125. data/ruby/neo4j/driver/internal/handlers/no_op_response_handler.rb +0 -16
  126. data/ruby/neo4j/driver/internal/handlers/ping_response_handler.rb +0 -29
  127. data/ruby/neo4j/driver/internal/handlers/pull_handlers.rb +0 -32
  128. data/ruby/neo4j/driver/internal/handlers/pulln/auto_pull_response_handler.rb +0 -168
  129. data/ruby/neo4j/driver/internal/handlers/pulln/basic_pull_response_handler.rb +0 -298
  130. data/ruby/neo4j/driver/internal/handlers/pulln/fetch_size_util.rb +0 -20
  131. data/ruby/neo4j/driver/internal/handlers/reset_response_handler.rb +0 -34
  132. data/ruby/neo4j/driver/internal/handlers/rollback_tx_response_handler.rb +0 -25
  133. data/ruby/neo4j/driver/internal/handlers/route_message_response_handler.rb +0 -21
  134. data/ruby/neo4j/driver/internal/handlers/routing_response_handler.rb +0 -70
  135. data/ruby/neo4j/driver/internal/handlers/run_response_handler.rb +0 -38
  136. data/ruby/neo4j/driver/internal/handlers/session_pull_response_completion_listener.rb +0 -34
  137. data/ruby/neo4j/driver/internal/handlers/transaction_pull_response_completion_listener.rb +0 -20
  138. data/ruby/neo4j/driver/internal/impersonation_util.rb +0 -22
  139. data/ruby/neo4j/driver/internal/internal_bookmark.rb +0 -36
  140. data/ruby/neo4j/driver/internal/internal_database_name.rb +0 -9
  141. data/ruby/neo4j/driver/internal/internal_driver.rb +0 -74
  142. data/ruby/neo4j/driver/internal/internal_entity.rb +0 -21
  143. data/ruby/neo4j/driver/internal/internal_node.rb +0 -21
  144. data/ruby/neo4j/driver/internal/internal_pair.rb +0 -9
  145. data/ruby/neo4j/driver/internal/internal_path.rb +0 -35
  146. data/ruby/neo4j/driver/internal/internal_point2_d.rb +0 -9
  147. data/ruby/neo4j/driver/internal/internal_point3_d.rb +0 -6
  148. data/ruby/neo4j/driver/internal/internal_record.rb +0 -27
  149. data/ruby/neo4j/driver/internal/internal_relationship.rb +0 -27
  150. data/ruby/neo4j/driver/internal/internal_result.rb +0 -49
  151. data/ruby/neo4j/driver/internal/internal_session.rb +0 -81
  152. data/ruby/neo4j/driver/internal/internal_transaction.rb +0 -48
  153. data/ruby/neo4j/driver/internal/logging/channel_activity_logger.rb +0 -29
  154. data/ruby/neo4j/driver/internal/logging/channel_error_logger.rb +0 -17
  155. data/ruby/neo4j/driver/internal/logging/prefixed_logger.rb +0 -19
  156. data/ruby/neo4j/driver/internal/logging/reformatted_logger.rb +0 -17
  157. data/ruby/neo4j/driver/internal/messaging/abstract_message_writer.rb +0 -23
  158. data/ruby/neo4j/driver/internal/messaging/bolt_protocol.rb +0 -32
  159. data/ruby/neo4j/driver/internal/messaging/bolt_protocol_version.rb +0 -48
  160. data/ruby/neo4j/driver/internal/messaging/common/common_message_reader.rb +0 -51
  161. data/ruby/neo4j/driver/internal/messaging/common/common_value.rb +0 -33
  162. data/ruby/neo4j/driver/internal/messaging/common/common_value_packer.rb +0 -104
  163. data/ruby/neo4j/driver/internal/messaging/common/common_value_unpacker.rb +0 -256
  164. data/ruby/neo4j/driver/internal/messaging/encode/begin_message_encoder.rb +0 -15
  165. data/ruby/neo4j/driver/internal/messaging/encode/commit_message_encoder.rb +0 -14
  166. data/ruby/neo4j/driver/internal/messaging/encode/discard_all_message_encoder.rb +0 -14
  167. data/ruby/neo4j/driver/internal/messaging/encode/discard_message_encoder.rb +0 -15
  168. data/ruby/neo4j/driver/internal/messaging/encode/goodbye_message_encoder.rb +0 -14
  169. data/ruby/neo4j/driver/internal/messaging/encode/hello_message_encoder.rb +0 -15
  170. data/ruby/neo4j/driver/internal/messaging/encode/init_message_encoder.rb +0 -16
  171. data/ruby/neo4j/driver/internal/messaging/encode/logoff_message_encoder.rb +0 -14
  172. data/ruby/neo4j/driver/internal/messaging/encode/logon_message_encoder.rb +0 -15
  173. data/ruby/neo4j/driver/internal/messaging/encode/pull_all_message_encoder.rb +0 -14
  174. data/ruby/neo4j/driver/internal/messaging/encode/pull_message_encoder.rb +0 -15
  175. data/ruby/neo4j/driver/internal/messaging/encode/reset_message_encoder.rb +0 -14
  176. data/ruby/neo4j/driver/internal/messaging/encode/rollback_message_encoder.rb +0 -14
  177. data/ruby/neo4j/driver/internal/messaging/encode/route_message_encoder.rb +0 -24
  178. data/ruby/neo4j/driver/internal/messaging/encode/route_v44_message_encoder.rb +0 -22
  179. data/ruby/neo4j/driver/internal/messaging/encode/run_message_encoder.rb +0 -16
  180. data/ruby/neo4j/driver/internal/messaging/encode/run_with_metadata_message_encoder.rb +0 -17
  181. data/ruby/neo4j/driver/internal/messaging/request/abstract_streaming_message.rb +0 -25
  182. data/ruby/neo4j/driver/internal/messaging/request/begin_message.rb +0 -25
  183. data/ruby/neo4j/driver/internal/messaging/request/commit_message.rb +0 -20
  184. data/ruby/neo4j/driver/internal/messaging/request/discard_all_message.rb +0 -20
  185. data/ruby/neo4j/driver/internal/messaging/request/discard_message.rb +0 -23
  186. data/ruby/neo4j/driver/internal/messaging/request/goodbye_message.rb +0 -20
  187. data/ruby/neo4j/driver/internal/messaging/request/hello_message.rb +0 -30
  188. data/ruby/neo4j/driver/internal/messaging/request/init_message.rb +0 -19
  189. data/ruby/neo4j/driver/internal/messaging/request/logoff_message.rb +0 -13
  190. data/ruby/neo4j/driver/internal/messaging/request/logon_message.rb +0 -13
  191. data/ruby/neo4j/driver/internal/messaging/request/message_with_metadata.rb +0 -17
  192. data/ruby/neo4j/driver/internal/messaging/request/multi_database_util.rb +0 -26
  193. data/ruby/neo4j/driver/internal/messaging/request/pull_all_message.rb +0 -23
  194. data/ruby/neo4j/driver/internal/messaging/request/pull_message.rb +0 -22
  195. data/ruby/neo4j/driver/internal/messaging/request/reset_message.rb +0 -32
  196. data/ruby/neo4j/driver/internal/messaging/request/rollback_message.rb +0 -20
  197. data/ruby/neo4j/driver/internal/messaging/request/route_message.rb +0 -28
  198. data/ruby/neo4j/driver/internal/messaging/request/run_message.rb +0 -23
  199. data/ruby/neo4j/driver/internal/messaging/request/run_with_metadata_message.rb +0 -49
  200. data/ruby/neo4j/driver/internal/messaging/request/transaction_metadata_builder.rb +0 -24
  201. data/ruby/neo4j/driver/internal/messaging/response/failure_message.rb +0 -40
  202. data/ruby/neo4j/driver/internal/messaging/response/ignored_message.rb +0 -29
  203. data/ruby/neo4j/driver/internal/messaging/response/record_message.rb +0 -33
  204. data/ruby/neo4j/driver/internal/messaging/response/success_message.rb +0 -34
  205. data/ruby/neo4j/driver/internal/messaging/v3/bolt_protocol_v3.rb +0 -82
  206. data/ruby/neo4j/driver/internal/messaging/v3/message_format_v3.rb +0 -17
  207. data/ruby/neo4j/driver/internal/messaging/v3/message_writer_v3.rb +0 -27
  208. data/ruby/neo4j/driver/internal/messaging/v4/bolt_protocol_v4.rb +0 -29
  209. data/ruby/neo4j/driver/internal/messaging/v4/message_format_v4.rb +0 -13
  210. data/ruby/neo4j/driver/internal/messaging/v4/message_writer_v4.rb +0 -17
  211. data/ruby/neo4j/driver/internal/messaging/v41/bolt_protocol_v41.rb +0 -25
  212. data/ruby/neo4j/driver/internal/messaging/v42/bolt_protocol_v42.rb +0 -13
  213. data/ruby/neo4j/driver/internal/messaging/v43/bolt_protocol_v43.rb +0 -19
  214. data/ruby/neo4j/driver/internal/messaging/v43/message_format_v43.rb +0 -14
  215. data/ruby/neo4j/driver/internal/messaging/v43/message_writer_v43.rb +0 -20
  216. data/ruby/neo4j/driver/internal/messaging/v44/bolt_protocol_v44.rb +0 -17
  217. data/ruby/neo4j/driver/internal/messaging/v44/message_format_v44.rb +0 -14
  218. data/ruby/neo4j/driver/internal/messaging/v44/message_writer_v44.rb +0 -15
  219. data/ruby/neo4j/driver/internal/messaging/v5/bolt_protocol_v5.rb +0 -21
  220. data/ruby/neo4j/driver/internal/messaging/v5/message_format_v5.rb +0 -18
  221. data/ruby/neo4j/driver/internal/messaging/v5/value_unpacker_v5.rb +0 -17
  222. data/ruby/neo4j/driver/internal/messaging/v51/bolt_protocol_v51.rb +0 -40
  223. data/ruby/neo4j/driver/internal/messaging/v51/message_format_v51.rb +0 -14
  224. data/ruby/neo4j/driver/internal/messaging/v51/message_writer_v51.rb +0 -17
  225. data/ruby/neo4j/driver/internal/metrics/connection_pool_metrics_listener.rb +0 -34
  226. data/ruby/neo4j/driver/internal/metrics/internal_abstract_metrics.rb +0 -46
  227. data/ruby/neo4j/driver/internal/metrics/internal_connection_pool_metrics.rb +0 -105
  228. data/ruby/neo4j/driver/internal/metrics/internal_metrics.rb +0 -82
  229. data/ruby/neo4j/driver/internal/metrics/internal_metrics_provider.rb +0 -18
  230. data/ruby/neo4j/driver/internal/metrics/listener_event.rb +0 -17
  231. data/ruby/neo4j/driver/internal/metrics/metrics_provider.rb +0 -24
  232. data/ruby/neo4j/driver/internal/metrics/time_recorder_listener_event.rb +0 -15
  233. data/ruby/neo4j/driver/internal/packstream/byte_array_incompatible_packer.rb +0 -12
  234. data/ruby/neo4j/driver/internal/packstream/pack_input.rb +0 -47
  235. data/ruby/neo4j/driver/internal/packstream/pack_output.rb +0 -39
  236. data/ruby/neo4j/driver/internal/packstream/pack_stream.rb +0 -326
  237. data/ruby/neo4j/driver/internal/packstream/pack_type.rb +0 -17
  238. data/ruby/neo4j/driver/internal/read_only_bookmark_holder.rb +0 -13
  239. data/ruby/neo4j/driver/internal/resolved_bolt_server_address.rb +0 -35
  240. data/ruby/neo4j/driver/internal/retry/exponential_backoff_retry_logic.rb +0 -151
  241. data/ruby/neo4j/driver/internal/revocation_strategy.rb +0 -19
  242. data/ruby/neo4j/driver/internal/scheme.rb +0 -32
  243. data/ruby/neo4j/driver/internal/security/internal_auth_token.rb +0 -15
  244. data/ruby/neo4j/driver/internal/security/security_plan_impl.rb +0 -48
  245. data/ruby/neo4j/driver/internal/security_setting.rb +0 -66
  246. data/ruby/neo4j/driver/internal/session_factory_impl.rb +0 -32
  247. data/ruby/neo4j/driver/internal/spi/connection.rb +0 -19
  248. data/ruby/neo4j/driver/internal/spi/connection_pool.rb +0 -9
  249. data/ruby/neo4j/driver/internal/spi/response_handler.rb +0 -23
  250. data/ruby/neo4j/driver/internal/summary/internal_database_info.rb +0 -7
  251. data/ruby/neo4j/driver/internal/summary/internal_input_position.rb +0 -11
  252. data/ruby/neo4j/driver/internal/summary/internal_notification.rb +0 -16
  253. data/ruby/neo4j/driver/internal/summary/internal_plan.rb +0 -41
  254. data/ruby/neo4j/driver/internal/summary/internal_profiled_plan.rb +0 -32
  255. data/ruby/neo4j/driver/internal/summary/internal_result_summary.rb +0 -33
  256. data/ruby/neo4j/driver/internal/summary/internal_server_info.rb +0 -6
  257. data/ruby/neo4j/driver/internal/summary/internal_summary_counters.rb +0 -18
  258. data/ruby/neo4j/driver/internal/svm/netty_substitutions.rb +0 -196
  259. data/ruby/neo4j/driver/internal/svm/z_lib_substitutions.rb +0 -21
  260. data/ruby/neo4j/driver/internal/util/certificate_tool.rb +0 -65
  261. data/ruby/neo4j/driver/internal/util/clock.rb +0 -29
  262. data/ruby/neo4j/driver/internal/util/error_util.rb +0 -104
  263. data/ruby/neo4j/driver/internal/util/extract.rb +0 -123
  264. data/ruby/neo4j/driver/internal/util/format.rb +0 -39
  265. data/ruby/neo4j/driver/internal/util/futures.rb +0 -99
  266. data/ruby/neo4j/driver/internal/util/iterables.rb +0 -35
  267. data/ruby/neo4j/driver/internal/util/lock_util.rb +0 -23
  268. data/ruby/neo4j/driver/internal/util/metadata_extractor.rb +0 -107
  269. data/ruby/neo4j/driver/internal/util/mutex.rb +0 -9
  270. data/ruby/neo4j/driver/internal/util/preconditions.rb +0 -16
  271. data/ruby/neo4j/driver/internal/util/result_holder.rb +0 -72
  272. data/ruby/neo4j/driver/internal/util/server_version.rb +0 -60
  273. data/ruby/neo4j/driver/logging1.rb +0 -51
  274. data/ruby/neo4j/driver/net/server_address.rb +0 -9
  275. data/ruby/neo4j/driver/query.rb +0 -48
  276. data/ruby/neo4j/driver/records.rb +0 -13
  277. data/ruby/neo4j/driver/transaction_config.rb +0 -50
  278. data/ruby/neo4j/driver/values.rb +0 -26
  279. data/ruby/neo4j/driver.rb +0 -28
@@ -1,16 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
-
4
- # The connection settings are used whenever a new connection is
5
- # established to a server, specifically as part of the INIT request.
6
- class ConnectionSettings
7
- attr_reader :auth_token, :user_agent, :connect_timeout_millis
8
-
9
- def initialize(auth_token, user_agent, connect_timeout_millis)
10
- @auth_token = auth_token
11
- @user_agent = user_agent
12
- @connect_timeout_millis = connect_timeout_millis
13
- end
14
- end
15
- end
16
- end
@@ -1,55 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- module Cursor
4
- class AsyncResultCursorImpl
5
- delegate :consume_async, :next_async, :peek_async, to: :@pull_all_handler
6
-
7
- def initialize(run_handler, pull_all_handler)
8
- @run_handler = run_handler
9
- @pull_all_handler = pull_all_handler
10
- end
11
-
12
- def keys
13
- @run_handler.query_keys
14
- end
15
-
16
- def single_async
17
- next_async.compose do |first_record|
18
- unless first_record
19
- raise Exceptions::NoSuchRecordException, 'Cannot retrieve a single record, because this result is empty.'
20
- end
21
- next_async.then do |second_record|
22
- if second_record
23
- raise Exceptions::NoSuchRecordException,
24
- 'Expected a result with a single record, but this result contains at least one more. Ensure your query returns only one record.'
25
- end
26
- first_record
27
- end
28
- end
29
- end
30
-
31
- def list_async(&map_function)
32
- @pull_all_handler.list_async(&block_given? ? map_function : :itself)
33
- end
34
-
35
- def discard_all_failure_async
36
- # runError has priority over other errors and is expected to have been reported to user by now
37
- consume_async.error.then { |error| run_error ? nil : error }
38
- end
39
-
40
- def pull_all_failure_async
41
- # runError has priority over other errors and is expected to have been reported to user by now
42
- @pull_all_handler.pull_all_failure_async.then { |error| run_error ? nil : error }
43
- end
44
-
45
- def map_successful_run_completion_async
46
- run_error&.then(&Util::ResultHolder.method(:failed)) || Util::ResultHolder.successful(self)
47
- end
48
-
49
- def run_error
50
- @run_handler.error
51
- end
52
- end
53
- end
54
- end
55
- end
@@ -1,24 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- module Cursor
4
- # Used by Bolt V1, V2, V3
5
- class AsyncResultCursorOnlyFactory
6
- def initialize(connection, run_message, run_handler, pull_handler)
7
- @connection = Internal::Validator.require_non_nil!(connection)
8
- @run_message = Internal::Validator.require_non_nil!(run_message)
9
- @run_handler = Internal::Validator.require_non_nil!(run_handler)
10
-
11
- @pull_all_handler = Internal::Validator.require_non_nil!(pull_handler)
12
- end
13
-
14
- def async_result
15
- # only write and flush messages when async result is wanted.
16
- @connection.write(@run_message, @run_handler) # queues the run message, will be flushed with pull message together
17
- @pull_all_handler.pre_populate_records
18
-
19
- DisposableAsyncResultCursor.new(AsyncResultCursorImpl.new(@run_handler, @pull_all_handler))
20
- end
21
- end
22
- end
23
- end
24
- end
@@ -1,61 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- module Cursor
4
- class DisposableAsyncResultCursor
5
- include Enumerable
6
- delegate :keys, :pull_all_failure_async, to: :@delegate
7
-
8
- def initialize(delegate)
9
- @delegate = delegate
10
- end
11
-
12
- def consume_async
13
- @disposed = true
14
- @delegate.consume_async
15
- end
16
-
17
- def next_async
18
- assert_not_disposed
19
- @delegate.next_async
20
- end
21
-
22
- def peek_async
23
- assert_not_disposed
24
- @delegate.peek_async
25
- end
26
-
27
- def single_async
28
- assert_not_disposed
29
- @delegate.single_async
30
- end
31
-
32
- def each(&action)
33
- assert_not_disposed
34
- @delegate.each(&action)
35
- end
36
-
37
- def list_async(&block)
38
- assert_not_disposed
39
- @delegate.list_async(&block)
40
- end
41
-
42
- def discard_all_failure_async
43
- @disposed = true
44
- @delegate.discard_all_failure_async
45
- end
46
-
47
- private def assert_not_disposed
48
- raise Util::ErrorUtil.new_result_consumed_error if @disposed
49
- end
50
-
51
- def disposed?
52
- @disposed
53
- end
54
-
55
- def map_successful_run_completion_async
56
- @delegate.map_successful_run_completion_async.then { self }
57
- end
58
- end
59
- end
60
- end
61
- end
@@ -1,24 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- module Cursor
4
- # Bolt V4
5
- class ResultCursorFactoryImpl
6
- def initialize(connection, run_message, run_handler, pull_handler, pull_all_handler)
7
- @connection = Internal::Validator.require_non_nil!(connection)
8
- @run_message = Internal::Validator.require_non_nil!(run_message)
9
- @run_handler = Internal::Validator.require_non_nil!(run_handler)
10
- @pull_handler = Internal::Validator.require_non_nil!(pull_handler)
11
- @pull_all_handler = Internal::Validator.require_non_nil!(pull_all_handler)
12
- end
13
-
14
- def async_result
15
- # only write and flush messages when async result is wanted.
16
- @connection.write(@run_message, @run_handler) # queues the run message, will be flushed with pull message together
17
- @pull_all_handler.pre_populate_records
18
-
19
- DisposableAsyncResultCursor.new(AsyncResultCursorImpl.new(@run_handler, @pull_all_handler))
20
- end
21
- end
22
- end
23
- end
24
- end
@@ -1,110 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- module Cursor
4
- class RxResultCursorImpl
5
- DISCARD_RECORD_CONSUMER = -> (record, throwable) {}
6
-
7
- delegate :cancel, to: :@pull_handler
8
- delegate :done?, to: :@summary_future
9
-
10
- def initialize(run_error, run_handler, pull_handler)
11
- java.util.Objects.require_non_null(run_handler)
12
- java.util.Objects.require_non_null(pull_handler)
13
-
14
- @run_response_error = run_error
15
- @run_handler = @run_handler
16
- @pull_handler = @pull_handler
17
- @summary_future = java.util.concurrent.CompletableFuture.new
18
- @consumer_status = RecordConsumerStatus::NOT_INSTALLED
19
- install_summary_consumer
20
- end
21
-
22
- def keys
23
- @run_handler.query_keys.keys
24
- end
25
-
26
- def install_record_consumer(record_consumer)
27
- raise Util::ErrorUtil.new_result_consumed_error if result_consumed
28
-
29
- return if @consumer_status.installed?
30
-
31
- @consumer_status = record_consumer == DISCARD_RECORD_CONSUMER ? RecordConsumerStatus::DISCARD_INSTALLED : RecordConsumerStatus::INSTALLED
32
- @pull_handler.install_record_consumer(record_consumer)
33
- assert_run_completed_successfully
34
- end
35
-
36
- def request(n)
37
- n = -1 if n == java.lang.Long::MAX_VALUE
38
-
39
- @pull_handler.request(n)
40
- end
41
-
42
- def discard_all_failure_async
43
- # calling this method will enforce discarding record stream and finish running cypher query
44
- summary_stage.then_apply(-> (_summary) { nil }).exceptionally do |throwable|
45
- @summary_future_exposed ? null : throwable
46
- end
47
- end
48
-
49
- def pull_all_failure_async
50
- if @consumer_status.installed? && !done?
51
- return java.util.concurrent.CompletableFuture.completed_future(Exceptions::TransactionNestingException.new("You cannot run another query or begin a new transaction in the same session before you've fully consumed the previous run result."))
52
- end
53
-
54
- # It is safe to discard records as either the streaming has not started at all, or the streaming is fully finished.
55
- discard_all_failure_async
56
- end
57
-
58
- def summary_async
59
- @summary_future_exposed = true
60
- summary_stage
61
- end
62
-
63
- def summary_stage
64
- unless done? && @result_consumed # the summary is called before record streaming
65
- install_record_consumer(DISCARD_RECORD_CONSUMER)
66
- cancel
67
- @result_consumed = true
68
- end
69
-
70
- @summary_future
71
- end
72
-
73
- private
74
-
75
- def assert_run_completed_successfully
76
- unless @run_response_error.nil?
77
- @pull_handler.on_failure(@run_response_error)
78
- end
79
- end
80
-
81
- def install_summary_consumer
82
- @pull_handler.install_summary_consumer do |summary, error|
83
- if !error.nil? && @consumer_status.discard_consumer?
84
- # We will only report the error to summary if there is no user record consumer installed
85
- # When a user record consumer is installed, the error will be reported to record consumer instead.
86
- @summary_future.complete_exceptionally(error)
87
- elsif !summary.nil?
88
- @summary_future.complete(summary)
89
- end
90
-
91
- # else (nil, nil) to indicate a has_more success
92
- end
93
- end
94
-
95
- class RecordConsumerStatus
96
- attr_reader :installed, :discard_consumer
97
-
98
- def initialize(installed, discard_consumer)
99
- @installed = installed
100
- @discard_consumer = discard_consumer
101
- end
102
-
103
- NOT_INSTALLED = new(false, false)
104
- INSTALLED = new(true, false)
105
- DISCARD_INSTALLED = new(true, true)
106
- end
107
- end
108
- end
109
- end
110
- end
@@ -1,37 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- class DatabaseNameUtil
4
- DEFAULT_DATABASE_NAME = nil
5
- SYSTEM_DATABASE_NAME = 'system'
6
-
7
- private
8
-
9
- DEFAULT_DATABASE = InternalDatabaseName.new(description: '<default database>')
10
- SYSTEM_DATABASE = InternalDatabaseName.new(database_name: SYSTEM_DATABASE_NAME)
11
-
12
- public
13
-
14
- class << self
15
- def default_database
16
- DEFAULT_DATABASE
17
- end
18
-
19
- def system_database
20
- SYSTEM_DATABASE
21
- end
22
-
23
- def database(name)
24
- case name
25
- when DEFAULT_DATABASE_NAME
26
- default_database
27
- when SYSTEM_DATABASE_NAME
28
- system_database
29
- else
30
- InternalDatabaseName.new(database_name: name)
31
- end
32
- end
33
- end
34
- end
35
- end
36
- end
37
-
@@ -1,9 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- class DefaultBookmarkHolder < ReadOnlyBookmarkHolder
4
- def bookmark=(bookmark)
5
- @bookmark = bookmark if bookmark.present?
6
- end
7
- end
8
- end
9
- end
@@ -1,11 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- class DefaultDomainNameResolver
4
- INSTANCE = new
5
-
6
- def resolve(name)
7
- java.net.InetAddress.get_all_by_name(name)
8
- end
9
- end
10
- end
11
- end
@@ -1,40 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- class DirectConnectionProvider
4
- attr_reader :address
5
-
6
- def initialize(address, connection_pool)
7
- @address = address
8
- @connection_pool = connection_pool
9
- end
10
-
11
- delegate :close, to: :@connection_pool
12
-
13
- def acquire_connection(context)
14
- database_name = context.database_name || DatabaseNameUtil::DEFAULT_DATABASE
15
- Async::Connection::DirectConnection.new(private_acquire_connection, database_name, context.mode,
16
- context.impersonated_user)
17
- end
18
-
19
- def verify_connectivity
20
- private_acquire_connection&.release
21
- end
22
-
23
- def supports_multi_db?
24
- private_acquire_connection.then do |conn|
25
- Messaging::Request::MultiDatabaseUtil.supports_multi_database?(conn)
26
- ensure
27
- conn.release
28
- end
29
- end
30
-
31
- private
32
-
33
- # Used only for grabbing a connection with the server after hello message.
34
- # This connection cannot be directly used for running any queries as it is missing necessary connection context
35
- def private_acquire_connection
36
- @connection_pool.acquire(@address)
37
- end
38
- end
39
- end
40
- end
@@ -1,126 +0,0 @@
1
- module Neo4j::Driver::Internal
2
- class DriverFactory
3
- include Scheme
4
- NO_ROUTING_CONTEXT_ERROR_MESSAGE = "Routing parameters are not supported with scheme 'bolt'. Given URI: "
5
-
6
- def initialize(&domain_name_resolver)
7
- @domain_name_resolver = domain_name_resolver || ->(name) { [name] }
8
- end
9
-
10
- def new_instance(uri, auth_token, routing_settings, retry_settings, config, security_plan, event_loop_group = nil)
11
- bootstrap = create_bootstrap(
12
- **event_loop_group ? { event_loop_group: event_loop_group } : { thread_count: config[:event_loop_threads] }
13
- )
14
-
15
- address = BoltServerAddress.new(uri: uri)
16
- new_routing_settings = routing_settings.with_routing_context(Cluster::RoutingContext.new(uri))
17
-
18
- # org.neo4j.driver.internal.shaded.io.netty.util.internal.logging.InternalLoggerFactory.setDefaultFactory(org.neo4j.driver.internal.logging.NettyLogging.new(config.logging))
19
- _event_executor_group = nil #bootstrap.group
20
- retry_logic = Retry::ExponentialBackoffRetryLogic.new(retry_settings, _event_executor_group, config[:logger])
21
-
22
- metrics_provider = create_driver_metrics(config)
23
- connection_pool = create_connection_pool(auth_token, security_plan, bootstrap, metrics_provider, config,
24
- event_loop_group.nil?, new_routing_settings.routing_context)
25
-
26
- create_driver(uri, security_plan, address, connection_pool, _event_executor_group, new_routing_settings, retry_logic, metrics_provider, config)
27
- end
28
-
29
- private
30
-
31
- def create_connection_pool(auth_token, security_plan, bootstrap, metrics_provider, config, owns_event_loop_group, routing_context)
32
- clock = Util::Clock::System
33
- settings = ConnectionSettings.new(auth_token, config[:user_agent], config[:connection_timeout].in_milliseconds)
34
- connector = create_connector(settings, security_plan, config, clock, routing_context)
35
- pool_settings = Async::Pool::PoolSettings.new(
36
- config[:max_connection_pool_size],
37
- config[:connection_acquisition_timeout],
38
- config[:max_connection_lifetime].in_milliseconds,
39
- config[:idle_time_before_connection_test]&.in_milliseconds || -1 # TODO: remember to get rid of -1
40
- )
41
- Async::Pool::ConnectionPoolImpl.new(connector, pool_settings, config[:logger])
42
- end
43
-
44
- def create_driver_metrics(config)
45
- if config[:metrics_enabled]
46
- Metrics::InternalMetricsProvider.new(config[:logger])
47
- else
48
- Metrics::MetricsProvider::METRICS_DISABLED_PROVIDER
49
- end
50
- end
51
-
52
- def create_resolver(config)
53
- config[:resolver] || ->(address) { [address] }
54
- end
55
-
56
- def assert_no_routing_context(uri, routing_settings)
57
- routing_context = routing_settings.routing_context
58
- if routing_context.defined?
59
- raise ArgumentError, "Routing parameters are not supported with scheme 'bolt'. Given URI: '#{uri}'"
60
- end
61
- end
62
-
63
- def create_connector(settings, security_plan, config, clock, routing_context)
64
- Async::Connection::ChannelConnectorImpl.new(
65
- settings, security_plan, config[:logger], clock, routing_context, &method(:domain_name_resolver))
66
- end
67
-
68
- def create_driver(uri, security_plan, address, connection_pool, eventExecutorGroup, routing_settings, retryLogic, metricsProvider, config)
69
- if routing_scheme?(uri.scheme.downcase)
70
- create_routing_driver(security_plan, address, connection_pool, eventExecutorGroup, routing_settings, retryLogic, metricsProvider, config)
71
- else
72
- assert_no_routing_context(uri, routing_settings)
73
- create_direct_driver(security_plan, address, connection_pool, retryLogic, metricsProvider, config)
74
- end
75
- rescue => driver_error
76
- # we need to close the connection pool if driver creation threw exception
77
- close_connection_pool_and_suppress_error(connection_pool, driver_error)
78
- raise
79
- end
80
-
81
- def create_direct_driver(securityPlan, address, connection_pool, retryLogic, metricsProvider, config)
82
- connection_provider = DirectConnectionProvider.new(address, connection_pool)
83
- driver(:Direct, securityPlan, address, connection_provider, retryLogic, metricsProvider, config)
84
- end
85
-
86
- def create_routing_driver(securityPlan, address, connection_pool, eventExecutorGroup, routing_settings, retryLogic, metricsProvider, config)
87
- connection_provider = create_load_balancer(address, connection_pool, eventExecutorGroup, config, routing_settings)
88
- driver(:Routing, securityPlan, address, connection_provider, retryLogic, metricsProvider, config)
89
- end
90
-
91
- def driver(type, security_plan, address, connection_provider, retry_logic, metrics_provider, config)
92
- session_factory = SessionFactoryImpl.new(connection_provider, retry_logic, config)
93
- InternalDriver.new(security_plan, session_factory, metrics_provider, config[:logger]).tap do |driver|
94
- config[:logger]&.info { "#{type} driver instance #{driver.object_id} created for server address #{address}" }
95
- end
96
- end
97
-
98
- def create_load_balancer(address, connection_pool, eventExecutorGroup, config, routing_settings)
99
- load_balancing_strategy = Cluster::Loadbalancing::LeastConnectedLoadBalancingStrategy.new(connection_pool, config[:logger])
100
- resolver = create_resolver(config)
101
- Cluster::Loadbalancing::LoadBalancer.new(
102
- address, routing_settings, connection_pool, eventExecutorGroup,
103
- config[:logger], load_balancing_strategy, resolver, &method(:domain_name_resolver))
104
- end
105
-
106
- def create_bootstrap(**args)
107
- Async::Connection::BootstrapFactory.new_bootstrap(**args)
108
- end
109
-
110
- protected
111
-
112
- def close_connection_pool_and_suppress_error(connection_pool, main_error)
113
- connection_pool.close
114
- rescue => close_error
115
- Util::ErrorUtil.add_suppressed(main_error, close_error)
116
- end
117
-
118
- # def getDomainNameResolver(name)
119
- # domain_name_resolver(name).map { |addrinfo| java.net.InetAddress.getByName(addrinfo.canonname) }.to_java(java.net.InetAddress)
120
- # end
121
-
122
- def domain_name_resolver(name)
123
- @domain_name_resolver.call(name).flat_map { |n| Addrinfo.getaddrinfo(n, nil, nil, nil, Socket::IPPROTO_TCP) }
124
- end
125
- end
126
- end
@@ -1,20 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- module Handlers
4
- class BeginTxResponseHandler
5
- include Spi::ResponseHandler
6
-
7
- def on_success(_metadata)
8
- end
9
-
10
- def on_failure(error)
11
- raise error
12
- end
13
-
14
- def on_record(fields)
15
- raise "Transaction begin is not expected to receive records: #{fields}"
16
- end
17
- end
18
- end
19
- end
20
- end
@@ -1,30 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- module Handlers
4
- class ChannelReleasingResetResponseHandler < ResetResponseHandler
5
- def initialize(channel, pool, message_dispatcher, log, release_future)
6
- super(message_dispatcher, release_future)
7
- @channel = channel
8
- @pool = pool
9
- @log = log
10
- end
11
-
12
- def reset_completed(success)
13
- if success
14
- # update the last-used timestamp before returning the channel back to the pool
15
- # Async::Connection::ChannelAttributes.set_last_used_timestamp(@channel, @clock.millis)
16
- # closure_stage = Util::Futures.completed_with_null
17
- else
18
- # close the channel before returning it back to the pool if RESET failed
19
- @channel.close
20
- end
21
- rescue
22
- nil
23
- ensure
24
- @pool.release(@channel)
25
- @log.debug { "Channel #{@channel.object_id} released." }
26
- end
27
- end
28
- end
29
- end
30
- end
@@ -1,25 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- module Handlers
4
- class CommitTxResponseHandler
5
- include Spi::ResponseHandler
6
-
7
- def initialize(result_holder)
8
- @result_holder = result_holder
9
- end
10
-
11
- def on_success(metadata)
12
- @result_holder.succeed(metadata[:bookmark]&.then(&InternalBookmark.method(:parse)))
13
- end
14
-
15
- def on_failure(error)
16
- @result_holder.fail(error)
17
- end
18
-
19
- def on_record(fields)
20
- raise "Transaction commit is not expected to receive records: #{fields}"
21
- end
22
- end
23
- end
24
- end
25
- end
@@ -1,65 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- module Handlers
4
- class HelloResponseHandler
5
- include Spi::ResponseHandler
6
- CONNECTION_ID_METADATA_KEY = :connection_id
7
- CONFIGURATION_HINTS_KEY = :hints
8
- CONNECTION_RECEIVE_TIMEOUT_SECONDS_KEY = :'connection.recv_timeout_seconds'
9
- delegate :attributes, to: :@channel
10
-
11
- def initialize(channel, protocol_version)
12
- @channel = channel
13
- @protocol_version = protocol_version
14
- end
15
-
16
- def on_success(metadata)
17
- begin
18
- attributes[:server_agent] = Util::MetadataExtractor.extract_server(metadata)
19
- # From Server V4 extracting server from metadata in the success message is unreliable
20
- # so we fix the Server version against the Bolt Protocol version for Server V4 and above.
21
- attributes[:server_version] =
22
- if Messaging::V3::BoltProtocolV3::VERSION == @protocol_version
23
- Util::MetadataExtractor.extract_neo4j_server_version(metadata)
24
- else
25
- Util::ServerVersion.from_bolt_protocol_version(@protocol_version)
26
- end
27
-
28
- attributes[:connection_id] = extract_connection_id(metadata)
29
- process_configuration_hints(metadata)
30
- rescue => error
31
- on_failure(error)
32
- raise error
33
- end
34
- end
35
-
36
- def on_failure(error)
37
- @channel.close
38
- raise error ### Not sure about that
39
- end
40
-
41
- def on_record(_fields)
42
- raise NotImplementedError
43
- end
44
-
45
- private
46
-
47
- def extract_connection_id(metadata)
48
- value = metadata[CONNECTION_ID_METADATA_KEY]
49
-
50
- if value.nil?
51
- raise Exceptions::IllegalStateException, "Unable to extract #{CONNECTION_ID_METADATA_KEY} from a response to HELLO message. Received metadata: #{metadata}"
52
- end
53
-
54
- value
55
- end
56
-
57
- def process_configuration_hints(metadata)
58
- metadata[CONFIGURATION_HINTS_KEY]&.dig(CONNECTION_RECEIVE_TIMEOUT_SECONDS_KEY)&.tap do |value|
59
- attributes[:connection_read_timeout] = value
60
- end
61
- end
62
- end
63
- end
64
- end
65
- end