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,57 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- module Async
4
- module Connection
5
- class NettyChannelInitializer #< org.neo4j.driver.internal.shaded.io.netty.channel.ChannelInitializer
6
- def initialize(address, security_plan, connect_timeout_millis, clock, logger)
7
- super()
8
- @address = address
9
- @security_plan = security_plan
10
- @connect_timeout_millis = connect_timeout_millis
11
- @clock = clock
12
- @logger = logger
13
- end
14
-
15
- protected
16
-
17
- def initChannel(channel)
18
- if @security_plan.requires_encryption?
19
- ssl_handler = create_ssl_handler
20
- channel.pipeline.add_first(ssl_handler)
21
- end
22
-
23
- update_channel_attributes(channel)
24
- end
25
-
26
- private
27
-
28
- def create_ssl_handler
29
- ssl_engine = create_ssl_engine
30
- ssl_handler = org.neo4j.driver.internal.shaded.io.netty.handler.ssl.SslHandler.new(ssl_engine)
31
- ssl_handler.set_handshake_timeout_millis(@connect_timeout_millis)
32
- ssl_handler
33
- end
34
-
35
- def create_ssl_engine
36
- ssl_context = @security_plan.ssl_context
37
- ssl_engine = ssl_context.create_ssl_engine(@address.host, @address.port)
38
- ssl_engine.set_use_client_mode(true)
39
-
40
- if @security_plan.requires_hostname_verification
41
- ssl_parameters = ssl_engine.get_ssl_parameters
42
- ssl_parameters.set_endpoint_identification_algorithm('HTTPS')
43
- ssl_engine.set_ssl_parameters(ssl_parameters)
44
- end
45
- ssl_engine
46
- end
47
-
48
- def update_channel_attributes(channel)
49
- ChannelAttributes.set_server_address(channel, @address)
50
- ChannelAttributes.set_creation_timestamp(channel, @clock.millis)
51
- ChannelAttributes.set_message_dispatcher(channel, Inbound::InboundMessageDispatcher.new(channel, @logger))
52
- end
53
- end
54
- end
55
- end
56
- end
57
- end
@@ -1,26 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- module Async
4
- module Connection
5
- class NettyDomainNameResolver #< org.neo4j.driver.internal.shaded.io.netty.resolver.InetNameResolver
6
- def initialize(executor, domain_name_resolver)
7
- # super(executor)
8
- @domain_name_resolver = domain_name_resolver
9
- end
10
-
11
- def doResolve(inet_host, promise)
12
- promise.set_success(@domain_name_resolver.call(inet_host).first)
13
- rescue java.net.UnknownHostException => e
14
- promise.set_failure(e)
15
- end
16
-
17
- def doResolveAll(inet_host, promise)
18
- promise.set_success(@domain_name_resolver.call(inet_host))
19
- rescue java.net.UnknownHostException => e
20
- promise.set_failure(e)
21
- end
22
- end
23
- end
24
- end
25
- end
26
- end
@@ -1,19 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- module Async
4
- module Connection
5
- class NettyDomainNameResolverGroup #< org.neo4j.driver.internal.shaded.io.netty.resolver.AddressResolverGroup
6
- attr_reader :domain_name_resolver
7
-
8
- def initialize(&domain_name_resolver)
9
- @domain_name_resolver = domain_name_resolver
10
- end
11
-
12
- def newResolver(executor)
13
- NettyDomainNameResolver.new(executor, domain_name_resolver).as_address_resolver
14
- end
15
- end
16
- end
17
- end
18
- end
19
- end
@@ -1,36 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- module Async
4
- module Connection
5
- # A connection used by the routing driver.
6
- class RoutingConnection < Struct.new(:delegate, :database_name, :access_mode, :impersonated_user, :error_handler)
7
- delegate *%i[enable_auto_read disable_auto_read reset open? release terminate_and_release server_agent
8
- server_address server_version protocol flush], to: :delegate
9
- alias mode access_mode
10
-
11
- def write(message1, handler1, message2 = nil, handler2 = nil)
12
- if message2.present? && handler2.present?
13
- delegate.write(message1, handler1, message2, handler2)
14
- else
15
- delegate.write(message1, handler1)
16
- end
17
- end
18
-
19
- def write_and_flush(message1, handler1, message2 = nil, handler2 = nil)
20
- if message2.present? && handler2.present?
21
- delegate.write_and_flush(message1, handler1, message2, handler2)
22
- else
23
- delegate.write_and_flush(message1, handler1)
24
- end
25
- end
26
-
27
- private
28
-
29
- def new_routing_response_handler(handler)
30
- Handlers::RoutingResponseHandler.new(handler, server_address, access_mode, error_handler)
31
- end
32
- end
33
- end
34
- end
35
- end
36
- end
@@ -1,12 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- module Async
4
- module Connection
5
- class Stream < ::Async::IO::Stream
6
- include Packstream::PackInput
7
- include Packstream::PackOutput
8
- end
9
- end
10
- end
11
- end
12
- end
@@ -1,16 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- module Async
4
- module Connection
5
- class StreamReader
6
- include Inbound::ChunkDecoder
7
- include Packstream::PackInput
8
- include Packstream::PackStream::Unpacker
9
- include Messaging::Common::CommonValueUnpacker
10
- # delegate_missing_to :@input
11
-
12
- end
13
- end
14
- end
15
- end
16
- end
@@ -1,10 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- module Async
4
- module ConnectionContext
5
- PENDING_DATABASE_NAME_EXCEPTION_SUPPLIER =
6
- ->() { Exceptions::IllegalStateException.new('Pending database name encountered') }
7
- end
8
- end
9
- end
10
- end
@@ -1,24 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- module Async
4
- class ImmutableConnectionContext
5
- attr :database_name, :mode, :rediscovery_bookmark, :impersonated_user
6
-
7
- def initialize(database_name, bookmark, mode)
8
- @database_name = database_name
9
- @rediscovery_bookmark = bookmark
10
- @mode = mode
11
- end
12
-
13
- SINGLE_DB_CONTEXT = new(DatabaseNameUtil::DEFAULT_DATABASE, InternalBookmark::EMPTY, AccessMode::READ)
14
- MULTI_DB_CONTEXT = new(DatabaseNameUtil::SYSTEM_DATABASE, InternalBookmark::EMPTY, AccessMode::READ)
15
-
16
- # A simple context is used to test connectivity with a remote server/cluster. As long as there is a read only service, the connection shall be established
17
- # successfully. Depending on whether multidb is supported or not, this method returns different context for routing table discovery.
18
- def self.simple(supports_multi_db)
19
- supports_multi_db ? MULTI_DB_CONTEXT : SINGLE_DB_CONTEXT
20
- end
21
- end
22
- end
23
- end
24
- end
@@ -1,30 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- module Async
4
- module Inbound
5
- class ByteBufInput
6
- delegate :read_byte, :read_short, :read_int, :read_long, :read_double, :read_bytes, to: :@buf
7
-
8
- def start(new_buf)
9
- assert_not_started
10
- @buf = Validator.require_non_nil!(new_buf)
11
- end
12
-
13
- def stop
14
- @buf = nil
15
- end
16
-
17
- def peek_byte
18
- @buf.get_byte(@buf.read_index)
19
- end
20
-
21
- private
22
-
23
- def assert_not_started
24
- raise Neo4j::Driver::Exceptions::IllegalStateException, 'Already started' if @buf
25
- end
26
- end
27
- end
28
- end
29
- end
30
- end
@@ -1,77 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- module Async
4
- module Inbound
5
- class ChannelErrorHandler
6
- def initialize(logger)
7
- @logger = logger
8
- end
9
-
10
- def handler_added(ctx)
11
- @message_dispatcher = java.util.Objects.require_non_null(Connection::ChannelAttributes.message_dispatcher(ctx.channel))
12
- @log = Logging::ChannelActivityLogger.new(ctx.channel, @logger, self.class)
13
- @error_log = Logging::ChannelErrorLogger.new(ctx.channel, @logger)
14
- end
15
-
16
- def handler_removed(ctx)
17
- @message_dispatcher = @log = nil
18
- @failed = false
19
- end
20
-
21
- def channel_inactive(ctx)
22
- @log.debug('Channel is inactive')
23
-
24
- termination_reason = Connection::ChannelAttributes.termination_reason(ctx.channel)
25
- error = Util::ErrorUtil.new_connection_terminated_error(termination_reason)
26
-
27
- if @failed
28
-
29
- # channel became inactive not because of a fatal exception that came from exceptionCaught
30
- # it is most likely inactive because actual network connection broke or was explicitly closed by the driver
31
- @message_dispatcher.handle_channel_inactive(error)
32
- ctx.channel.close
33
- else
34
- fail(error)
35
- end
36
- end
37
-
38
- def exception_caught(ctx, error)
39
- if @failed
40
- @error_log.debug('Another fatal error occurred in the pipeline', error)
41
- else
42
- @failed = true
43
- log_unexpected_error_warning(error)
44
- fail(error)
45
- end
46
- end
47
-
48
- private
49
-
50
- def log_unexpected_error_warning(error)
51
- unless error.is_a?(Exceptions::ConnectionReadTimeoutException)
52
- @error_log.debug('Fatal error occurred in the pipeline', error)
53
- end
54
- end
55
-
56
- def fail(error)
57
- cause = transform_error(error)
58
- @message_dispatcher.handle_channel_error(cause)
59
- end
60
-
61
- class << self
62
- def transform_error(error)
63
- # unwrap the CodecException if it has a cause
64
- error = error.cause if error.is_a?(io.netty.handler.codec.CodecException) && error.cause
65
-
66
- if error.is_a?(java.io.IOException)
67
- Neo4j::Driver::Exceptions::ServiceUnavailableException.new('Connection to the database failed', error)
68
- else
69
- error
70
- end
71
- end
72
- end
73
- end
74
- end
75
- end
76
- end
77
- end
@@ -1,41 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- module Async
4
- module Inbound
5
- module ChunkDecoder
6
- def initialize(input)
7
- @input = input
8
- @remaining = 0
9
- end
10
-
11
- def read_exactly(size, buffer = nil)
12
- while @remaining.zero?
13
- @remaining = read_length_field
14
- end
15
- if size > @remaining
16
- # (buffer ||= Buffer.new(capacity: size)) << super(@remaining)
17
- (buffer ||= ::Async::IO::Buffer.new) << @input.read_exactly(@remaining)
18
- size -= @remaining
19
- @remaining = 0
20
- read_exactly(size, buffer)
21
- else
22
- data = @input.read_exactly(size)
23
- @remaining -= size
24
- buffer ? buffer << data : data
25
- end
26
- end
27
-
28
- def ensure_termination
29
- raise 'Chunking problem' unless @remaining.zero? && read_length_field.zero?
30
- end
31
-
32
- private
33
-
34
- def read_length_field
35
- @input.read_exactly(2).unpack1('S>')
36
- end
37
- end
38
- end
39
- end
40
- end
41
- end
@@ -1,32 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- module Async
4
- module Inbound
5
- # Handler needed to limit amount of time connection performs TLS and Bolt handshakes.
6
- # It should only be used when connection is established and removed from the pipeline afterwards.
7
- # Otherwise it will make long running queries fail.
8
- class ConnectTimeoutHandler #< org.neo4j.driver.internal.shaded.io.netty.handler.timeout.ReadTimeoutHandler
9
- def initialize(timeout_millis)
10
- super(timeout_millis, java.util.concurrent.TimeUnit::MILLISECONDS)
11
- @timeout_millis = timeout_millis
12
- end
13
-
14
- protected
15
-
16
- def readTimedOut(ctx)
17
- unless @triggered
18
- @triggered = true
19
- ctx.fire_exception_caught(unable_to_connect_error)
20
- end
21
- end
22
-
23
- private
24
-
25
- def unable_to_connect_error
26
- Neo4j::Driver::Exceptions::ServiceUnavailableException.new("Unable to establish connection in #{@timeout_millis}ms")
27
- end
28
- end
29
- end
30
- end
31
- end
32
- end
@@ -1,17 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- module Async
4
- module Inbound
5
- class ConnectionReadTimeoutHandler #< org.neo4j.driver.internal.shaded.io.netty.handler.timeout.ReadTimeoutHandler
6
- def read_timeout(ctx)
7
- unless @triggered
8
- ctx.fire_exception_caught(Neo4j::Driver::Exception::ConnectionReadTimeoutException::INSTANCE)
9
- ctx.close
10
- @triggered = true
11
- end
12
- end
13
- end
14
- end
15
- end
16
- end
17
- end
@@ -1,171 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- module Async
4
- module Inbound
5
- class InboundMessageDispatcher
6
- attr_reader :fatal_error_occurred, :current_error
7
-
8
- def initialize(channel, logger)
9
- @handlers = []
10
- @channel = Validator.require_non_nil!(channel)
11
- @log = Logging::ChannelActivityLogger.new(channel, logger, self.class)
12
- @error_log = Logging::ChannelErrorLogger.new(channel, logger)
13
- end
14
-
15
- def enqueue(handler)
16
- if fatal_error_occurred
17
- handler.on_failure(@current_error)
18
- else
19
- @handlers << handler
20
- update_auto_read_managing_handler_if_needed(handler)
21
- end
22
- end
23
-
24
- def set_before_last_handler_hook(before_last_handler_hook)
25
- unless @channel.event_loop.in_event_loop
26
- raise Neo4j::Driver::Exceptions::IllegalStateException.new('This method may only be called in the EventLoop')
27
- end
28
- @before_last_handler_hook = before_last_handler_hook
29
- end
30
-
31
- def queued_handlers_count
32
- @handlers.size
33
- end
34
-
35
- def handle_success_message(meta)
36
- @log.debug("S: SUCCESS #{meta}")
37
- invoke_before_last_handler_hook(HandlerHook::SUCCESS)
38
- handler = remove_handler
39
- handler.on_success(meta)
40
- end
41
-
42
- def handle_record_message(fields)
43
- @log.debug { "S: RECORD #{fields}" }
44
-
45
- (@handlers.first or
46
- raise Exceptions::IllegalStateException,
47
- "No handler exists to handle RECORD message with fields #{fields}")
48
- .on_record(fields)
49
- end
50
-
51
- def handle_failure_message(code:, message:)
52
- @log.debug("S: FAILURE #{code}, '#{message}'")
53
- @current_error = Util::ErrorUtil.new_neo4j_error(code, message)
54
-
55
- # we should not continue using channel after a fatal error
56
- # fire error event back to the pipeline and avoid sending RESET
57
-
58
- # return @channel.pipeline.fire_exception_caught(current_error) if Util::ErrorUtil.fatal?(current_error)
59
- raise @current_error if Util::ErrorUtil.fatal?(@current_error) # TODO clarify
60
-
61
- if @current_error.is_a?(Exceptions::AuthorizationExpiredException)
62
- # TODO: ??????
63
- # Connection::ChannelAttributes.authorization_state_listener(@channel).on_expired(@current_error, @channel)
64
- else
65
- # write a RESET to "acknowledge" the failure
66
- enqueue(Handlers::ResetResponseHandler.new(self))
67
- @channel.write_and_flush(Messaging::Request::ResetMessage::RESET)
68
- end
69
-
70
- invoke_before_last_handler_hook(HandlerHook::FAILURE)
71
- handler = remove_handler
72
- handler.on_failure(@current_error)
73
- end
74
-
75
- def handle_ignored_message
76
- @log.debug('S: IGNORED')
77
- handler = remove_handler
78
-
79
- if @current_error
80
- error = @current_error
81
- else
82
- @log.warn("Received IGNORED message for handler #{handler} but error is missing and RESET is not in progress. Current handlers #{@handlers}")
83
- error = Exceptions::ClientException.new('Database ignored the request')
84
- end
85
-
86
- handler.on_failure(error)
87
- end
88
-
89
- def handle_channel_inactive(cause)
90
- # report issue if the connection has not been terminated as a result of a graceful shutdown request from its
91
- # parent pool
92
- if !@gracefully_closed
93
- handle_channel_error(cause)
94
- else
95
- @channel.close
96
- end
97
- end
98
-
99
- def handle_channel_error(error)
100
- if @current_error
101
- # we already have an error, this new error probably is caused by the existing one, thus we chain the new error on this current error
102
- Util::ErrorUtil.add_suppressed(@current_error, error)
103
- else
104
- @current_error = error
105
- end
106
-
107
- @fatal_error_occurred = true
108
-
109
- while !@handlers.empty?
110
- handler = remove_handler
111
- handler.on_failure(@current_error)
112
- end
113
-
114
- @error_log.debug('Closing channel because of a failure', error)
115
- @channel.close
116
- end
117
-
118
- def clear_current_error
119
- @current_error = nil
120
- end
121
-
122
- def prepare_to_close_channel
123
- @gracefully_closed = true
124
- end
125
-
126
- def remove_handler
127
- handler = @handlers.shift
128
-
129
- if handler == @auto_read_managing_handler
130
- # the auto-read managing handler is being removed
131
- # make sure this dispatcher does not hold on to a removed handler
132
- update_auto_read_managing_handler(nil)
133
- end
134
- handler
135
- end
136
-
137
- private
138
-
139
- def update_auto_read_managing_handler_if_needed(handler)
140
- if handler.can_manage_auto_read?
141
- update_auto_read_managing_handler(handler)
142
- end
143
- end
144
-
145
- def update_auto_read_managing_handler(new_handler)
146
- if @auto_read_managing_handler
147
-
148
- # there already exists a handler that manages channel's auto-read
149
- # make it stop because new managing handler is being added and there should only be a single such handler
150
- @auto_read_managing_handler.disable_auto_read_management
151
-
152
- # restore the default value of auto-read
153
- @channel.auto_read = true
154
- end
155
-
156
- @auto_read_managing_handler = new_handler
157
- end
158
-
159
- def invoke_before_last_handler_hook(message_type)
160
- @before_last_handler_hook&.run(message_type) if @handlers.size == 1
161
- end
162
-
163
- module HandlerHook
164
- SUCCESS = :success
165
- FAILURE = :failure
166
- end
167
- end
168
- end
169
- end
170
- end
171
- end
@@ -1,42 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- module Async
4
- module Inbound
5
- class InboundMessageHandler #< org.neo4j.driver.internal.shaded.io.netty.channel.SimpleChannelInboundHandler
6
- def initialize(message_format, logger)
7
- @input = ByteBufInput.new
8
- @reader = message_format.new_reader(input)
9
- @logger = logger
10
- end
11
-
12
- def handler_added(ctx)
13
- @message_dispatcher = Validator::require_non_nil!(connection.ChannelAttributes.message_dispatcher(ctx.channel))
14
- @log = Logging::ChannelActivityLogger.new(ctx.channel, logger, self.class)
15
- end
16
-
17
- def handler_removed(_ctx)
18
- @message_dispatcher = nil
19
- @log = nil
20
- end
21
-
22
- def channel_read0(_ctx, msg)
23
- if message_dispatcher.fatal_error_occurred
24
- return @log.warn( "Message ignored because of the previous fatal error. Channel will be closed. Message:\n#{org.neo4j.driver.internal.shaded.io.netty.buffer.ByteBufUtil.hex_dump(msg)}")
25
- end
26
-
27
- @log.debug( "S: #{org.neo4j.driver.internal.shaded.io.netty.buffer.ByteBufUtil.hex_dump(msg)}") if @log.is_trace_enabled?
28
-
29
- @input.start(msg)
30
- begin
31
- @reader.read(@message_dispatcher)
32
- rescue StandardError => error
33
- org.neo4j.driver.internal.shaded.io.netty.handler.codec.DecoderException.new("Failed to read inbound message:\n#{org.neo4j.driver.internal.shaded.io.netty.buffer.ByteBufUtil.hex_dump(msg)}\n", error)
34
- ensure
35
- @input.stop
36
- end
37
- end
38
- end
39
- end
40
- end
41
- end
42
- end
@@ -1,51 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- module Async
4
- module Inbound
5
- class MessageDecoder #< org.neo4j.driver.internal.shaded.io.netty.handler.codec.ByteToMessageDecoder
6
- class << self
7
- def determine_default_cumulator
8
- value = ENV['message_decoder_cumulator']
9
- # 'merge' == value ? org.neo4j.driver.internal.shaded.io.netty.handler.codec.ByteToMessageDecoder::MERGE_CUMULATOR : org.neo4j.driver.internal.shaded.io.netty.handler.codec.ByteToMessageDecoder::COMPOSITE_CUMULATOR
10
- end
11
- end
12
-
13
- DEFAULT_CUMULATOR = determine_default_cumulator
14
-
15
- def initialize
16
- set_cumulator(DEFAULT_CUMULATOR)
17
- end
18
-
19
- def channel_read(ctx, msg)
20
- if msg.is_a?(org.neo4j.driver.internal.shaded.io.netty.buffer.ByteBuf)
21
-
22
- # on every read check if input buffer is empty or not
23
- # if it is empty then it's a message boundary and full message is in the buffer
24
- @read_message_boundary = msg.readable_bytes == 0
25
- end
26
-
27
- org.neo4j.driver.internal.shaded.io.netty.handler.codec.ByteToMessageDecoder.channel_read(ctx, msg)
28
- end
29
-
30
- def decode(ctx, inward, out)
31
- if @read_message_boundary
32
-
33
- # now we have a complete message in the input buffer
34
-
35
- # increment ref count of the buffer and create it's duplicate that shares the content
36
- # duplicate will be the output of this decoded and input for the next one
37
- message_buf = inward.retained_duplicate
38
-
39
- # signal that whole message was read by making input buffer seem like it was fully read/consumed
40
- inward.reader_index(inward.readable_bytes)
41
-
42
- # pass the full message to the next handler in the pipeline
43
- out.add(message_buf)
44
- @read_message_boundary = false
45
- end
46
- end
47
- end
48
- end
49
- end
50
- end
51
- end