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,298 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- module Handlers
4
- module Pulln
5
- class BasicPullResponseHandler
6
- include Spi::ResponseHandler
7
- attr :state
8
-
9
- def initialize(query, run_response_handler, connection, metadata_extractor, completion_listener)
10
- super()
11
- @query = Validator.require_non_nil!(query)
12
- @run_response_handler = Validator.require_non_nil!(run_response_handler)
13
- @metadata_extractor = Validator.require_non_nil!(metadata_extractor)
14
- @connection = Validator.require_non_nil!(connection)
15
- @completion_listener = Validator.require_non_nil!(completion_listener)
16
- @state = State::READY_STATE
17
- @to_request = 0
18
- end
19
-
20
- def state=(state)
21
- @state = state
22
- signal
23
- end
24
-
25
- def on_success(metadata)
26
- assert_record_and_summary_consumer_installed
27
- @state.on_success(self, metadata)
28
- end
29
-
30
- def on_failure(error)
31
- assert_record_and_summary_consumer_installed
32
- @state.on_failure(self, error)
33
- end
34
-
35
- def on_record(fields)
36
- assert_record_and_summary_consumer_installed
37
- @state.on_record(self, fields)
38
- end
39
-
40
- def request(size)
41
- assert_record_and_summary_consumer_installed
42
- @state.request(self, size)
43
- end
44
-
45
- def cancel
46
- assert_record_and_summary_consumer_installed
47
- @state.cancel(self)
48
- end
49
-
50
- def complete_with_failure(error)
51
- @completion_listener.after_failure(error)
52
- complete(extract_result_summary, error)
53
- end
54
-
55
- def complete_with_success(metadata)
56
- @completion_listener.after_success(metadata)
57
- summary, exception =
58
- begin
59
- [extract_result_summary(**metadata), nil]
60
- rescue Exceptions::Neo4jException => e
61
- [extract_result_summary, e]
62
- end
63
- complete(summary, exception)
64
- end
65
-
66
- def success_has_more
67
- if @to_request > 0 || @to_request == FetchSizeUtil::UNLIMITED_FETCH_SIZE
68
- request(@to_request)
69
- @to_request = 0
70
- end
71
-
72
- # summary consumer use (null, null) to identify done handling of success with has_more
73
- @summary_consumer.call(nil, nil)
74
- end
75
-
76
- def handle_record(fields)
77
- record = InternalRecord.new(@run_response_handler.query_keys, fields)
78
- @record_consumer.call(record, nil)
79
- end
80
-
81
- def write_pull(n)
82
- @connection.write_and_flush(Messaging::Request::PullMessage.new(n, @run_response_handler.query_id), self)
83
- end
84
-
85
- def discard_all
86
- @connection.write_and_flush(Messaging::Request::DiscardMessage.new_discard_all_message(@run_response_handler.query_id), self)
87
- end
88
-
89
- def install_summary_consumer(&summary_consumer)
90
- raise Exceptions::IllegalStateException, 'Summary consumer already installed.' if @summary_consumer
91
-
92
- @summary_consumer = summary_consumer
93
- end
94
-
95
- def install_record_consumer(&record_consumer)
96
- raise Exceptions::IllegalStateException, 'Record consumer already installed.' if @record_consumer
97
-
98
- @record_consumer = record_consumer
99
- end
100
-
101
- def done?
102
- @state == State::SUCCEEDED_STATE || @state == State::FAILURE_STATE
103
- end
104
-
105
- private def extract_result_summary(**metadata)
106
- result_available_after = @run_response_handler.result_available_after
107
- @metadata_extractor.extract_summary(@query, @connection, result_available_after, metadata)
108
- end
109
-
110
- private def add_to_request(to_add)
111
- return if @to_request == FetchSizeUtil::UNLIMITED_FETCH_SIZE
112
-
113
- # pull all
114
- return @to_request = FetchSizeUtil::UNLIMITED_FETCH_SIZE if to_add == FetchSizeUtil::UNLIMITED_FETCH_SIZE
115
-
116
- if to_add <= 0
117
- raise ArgumentError, "Cannot request record amount that is less than or equal to 0. Request amount: #{to_add}"
118
- end
119
-
120
- @to_request += to_add
121
-
122
- # to_add is already at least 1, we hit buffer overflow
123
- @to_request = [@to_request, LONG_MAX_VALUE].min
124
- end
125
-
126
- private def assert_record_and_summary_consumer_installed
127
- # no need to check if we've finished.
128
- return if done?
129
-
130
- if @record_consumer.nil? || @summary_consumer.nil?
131
- raise Exceptions::IllegalStateException, "Access record stream without record consumer and/or summary consumer. Record consumer=#{@record_consumer}, Summary consumer=#{@summary_consumer}"
132
- end
133
- end
134
-
135
- private def complete(summary, error)
136
- # we first inform the summary consumer to ensure when streaming finished, summary is definitely available.
137
- @summary_consumer.call(summary, error)
138
- # record consumer use (nil, nil) to identify the end of record stream
139
- @record_consumer.call(nil, error)
140
- dispose
141
- end
142
-
143
- private def dispose
144
- # release the reference to the consumers who hold the reference to subscribers which shall be released when subscription is completed.
145
- @record_consumer = nil
146
- @summary_consumer = nil
147
- end
148
-
149
- module State
150
- class Ready
151
- def on_success(context, metadata)
152
- context.state = SUCCEEDED_STATE
153
- context.complete_with_success(metadata)
154
- end
155
-
156
- def on_failure(context, error)
157
- context.state = FAILURE_STATE
158
- context.complete_with_failure(error)
159
- end
160
-
161
- def on_record(context, _fields)
162
- context.state = READY_STATE
163
- end
164
-
165
- def request(context, n)
166
- context.state = STREAMING_STATE
167
- context.write_pull(n)
168
- end
169
-
170
- def cancel(context)
171
- context.state = CANCELLED_STATE
172
- context.discard_all
173
- end
174
- end
175
-
176
- READY_STATE = Ready.new
177
-
178
- class Streaming
179
- def on_success(context, metadata)
180
- if metadata[:has_more]
181
- context.state = READY_STATE
182
- context.success_has_more
183
- else
184
- context.state = SUCCEEDED_STATE
185
- context.complete_with_success(metadata)
186
- end
187
- end
188
-
189
- def on_failure(context, error)
190
- context.state = FAILURE_STATE
191
- context.complete_with_failure(error)
192
- end
193
-
194
- def on_record(context, fields)
195
- context.state = STREAMING_STATE
196
- context.handle_record(fields)
197
- end
198
-
199
- def request(context, n)
200
- context.state = STREAMING_STATE
201
- context.add_to_request(n)
202
- end
203
-
204
- def cancel(context)
205
- context.state = CANCELLED_STATE
206
- end
207
- end
208
-
209
- STREAMING_STATE = Streaming.new
210
-
211
- class Cancelled
212
- def on_success(context, metadata)
213
- if metadata[:has_more]
214
- context.state = CANCELLED_STATE
215
- context.discard_all
216
- else
217
- context.state = SUCCEEDED_STATE
218
- context.complete_with_success(metadata)
219
- end
220
- end
221
-
222
- def on_failure(context, error)
223
- context.state = FAILURE_STATE
224
- context.complete_with_failure(error)
225
- end
226
-
227
- def on_record(context, _fields)
228
- context.state = CANCELLED_STATE
229
- end
230
-
231
- def request(context, _n)
232
- context.state = CANCELLED_STATE
233
- end
234
-
235
- def cancel(context)
236
- context.state = CANCELLED_STATE
237
- end
238
- end
239
-
240
- CANCELLED_STATE = Cancelled.new
241
-
242
- class Succeeded
243
- def on_success(context, metadata)
244
- context.state = SUCCEEDED_STATE
245
- context.complete_with_success(metadata)
246
- end
247
-
248
- def on_failure(context, error)
249
- context.state = FAILURE_STATE
250
- context.complete_with_failure(error)
251
- end
252
-
253
- def on_record(context, _fields)
254
- context.state = SUCCEEDED_STATE
255
- end
256
-
257
- def request(context, _n)
258
- context.state = SUCCEEDED_STATE
259
- end
260
-
261
- def cancel(context)
262
- context.state = SUCCEEDED_STATE
263
- end
264
- end
265
-
266
- SUCCEEDED_STATE = Succeeded.new
267
-
268
- class Failed
269
- def on_success(context, metadata)
270
- context.state = SUCCEEDED_STATE
271
- context.complete_with_success(metadata)
272
- end
273
-
274
- def on_failure(context, error)
275
- context.state = FAILURE_STATE
276
- context.complete_with_failure(error)
277
- end
278
-
279
- def on_record(context, _fields)
280
- context.state = FAILURE_STATE
281
- end
282
-
283
- def request(context, _n)
284
- context.state = FAILURE_STATE
285
- end
286
-
287
- def cancel(context)
288
- context.state = FAILURE_STATE
289
- end
290
- end
291
-
292
- FAILURE_STATE = Failed.new
293
- end
294
- end
295
- end
296
- end
297
- end
298
- end
@@ -1,20 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- module Handlers
4
- module Pulln
5
- class FetchSizeUtil
6
- UNLIMITED_FETCH_SIZE = -1
7
- DEFAULT_FETCH_SIZE = 1000
8
-
9
- def self.assert_valid_fetch_size(size)
10
- if size <= 0 && size != UNLIMITED_FETCH_SIZE
11
- raise ArgumentError, "The record fetch size may not be 0 or negative. Illegal record fetch size: #{size}."
12
- end
13
-
14
- size
15
- end
16
- end
17
- end
18
- end
19
- end
20
- end
@@ -1,34 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- module Handlers
4
- class ResetResponseHandler
5
- include Spi::ResponseHandler
6
-
7
- def initialize(message_dispatcher, completion_future = nil)
8
- @message_dispatcher = message_dispatcher
9
- @completion_future = completion_future
10
- end
11
-
12
- def on_success(_metadata = {})
13
- reset_completed(true)
14
- end
15
-
16
- def on_failure(_error)
17
- reset_completed(false)
18
- end
19
-
20
- def on_record(_fields)
21
- raise java.lang.UnsupportedOperationException
22
- end
23
-
24
- private def reset_completed(_success)
25
- @message_dispatcher.clear_current_error
26
-
27
- unless @completion_future.nil?
28
- @completion_future.complete(nil)
29
- end
30
- end
31
- end
32
- end
33
- end
34
- end
@@ -1,25 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- module Handlers
4
- class RollbackTxResponseHandler
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
13
- end
14
-
15
- def on_failure(error)
16
- @result_holder.fail(error)
17
- end
18
-
19
- def on_record(fields)
20
- raise "Transaction rollback is not expected to receive records: #{fields}"
21
- end
22
- end
23
- end
24
- end
25
- end
@@ -1,21 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- module Handlers
4
- class RouteMessageResponseHandler < Struct.new(:completion_listener)
5
- include Spi::ResponseHandler
6
-
7
- def on_success(metadata)
8
- completion_listener.routing_table = metadata[:rt]
9
- end
10
-
11
- def on_failure(error)
12
- raise error
13
- end
14
-
15
- def on_record(fields)
16
- raise "Route is not expected to receive records: #{fields}"
17
- end
18
- end
19
- end
20
- end
21
- end
@@ -1,70 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- module Handlers
4
- class RoutingResponseHandler
5
- include Spi::ResponseHandler
6
- delegate :on_success, :on_record, :can_manage_auto_read, :disable_auto_read_management, to: :@delegate
7
-
8
- def initialize(delegate, address, access_mode, error_handler)
9
- @delegate = delegate
10
- @address = address
11
- @access_mode = access_mode
12
- @error_handler = error_handler
13
- end
14
-
15
- def on_failure(error)
16
- new_error = handled_error(error)
17
- @delegate.on_failure(new_error)
18
- end
19
-
20
- private
21
-
22
- def handled_error(received_error)
23
- # TODO: probably not necessary with concurrent-ruby as it might not wrap exceptions like java
24
- error = Futures.completion_exception_cause(received_error)
25
-
26
- case error
27
- when Exceptions::ServiceUnavailableException
28
- handled_service_unavailable_exception(error)
29
- when Exceptions::ClientException
30
- handled_client_exception(error)
31
- when Exceptions::TransientException
32
- handled_transient_exception(error)
33
- else
34
- error
35
- end
36
- end
37
-
38
- def handled_service_unavailable_exception(e)
39
- @error_handler.on_connection_failure(@address)
40
- Exceptions::SessionExpiredException("Server at #{@address} is no longer available", e)
41
- end
42
-
43
- def handled_transient_exception(e)
44
- e.code == "Neo.TransientError.General.DatabaseUnavailable" ? error_handler.on_connection_failure(@address) : e
45
- end
46
-
47
- def handled_client_exception(e)
48
- return e unless failure_to_write?(e)
49
-
50
- # The server is unaware of the session mode, so we have to implement this logic in the driver.
51
- # In the future, we might be able to move this logic to the server.
52
- case @access_mode
53
- when AccessMode::READ
54
- Exceptions::ClientException.new('Write queries cannot be performed in READ access mode.')
55
- when AccessMode::WRITE
56
- @error_handler.on_write_failure(@address)
57
- Exceptions::SessionExpiredException.new('Server at %s no longer accepts writes' % @address)
58
- else
59
- raise ArgumentError, @accessMode + ' not supported.'
60
- end
61
- end
62
-
63
- def failure_to_write?(e)
64
- %w[Neo.ClientError.Cluster.NotALeader
65
- Neo.ClientError.General.ForbiddenOnReadOnlyDatabase].include?(e.code)
66
- end
67
- end
68
- end
69
- end
70
- end
@@ -1,38 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- module Handlers
4
- class RunResponseHandler
5
- include Spi::ResponseHandler
6
- attr :query_keys, :result_available_after, :query_id, :error
7
-
8
- def initialize(metadata_extractor, connection, tx)
9
- @query_keys = []
10
- @metadata_extractor = metadata_extractor
11
- @connection = connection
12
- @tx = tx
13
- end
14
-
15
- def on_success(metadata)
16
- @query_keys = @metadata_extractor.extract_query_keys(metadata)
17
- @result_available_after = @metadata_extractor.extract_result_available_after(metadata)
18
- @query_id = @metadata_extractor.extract_query_id(metadata)
19
- end
20
-
21
- def on_failure(error)
22
- if @tx
23
- @tx.mark_terminated(error)
24
- elsif error.is_a?(Exceptions::AuthorizationExpiredException)
25
- connection.terminate_and_release(Exceptions::AuthorizationExpiredException::DESCRIPTION)
26
- elsif error.is_a?(Exceptions::ConnectionReadTimeoutException)
27
- connection.terminate_and_release(error.message)
28
- end
29
- @error = error
30
- end
31
-
32
- def on_record(_fields)
33
- raise 'unsupported operation'
34
- end
35
- end
36
- end
37
- end
38
- end
@@ -1,34 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- module Handlers
4
- class SessionPullResponseCompletionListener
5
- def initialize(connection, bookmark_holder)
6
- @connection = connection
7
- @bookmark_holder = bookmark_holder
8
- end
9
-
10
- def after_success(metadata)
11
- release_connection
12
- @bookmark_holder.bookmark = Util::MetadataExtractor.extract_bookmarks(metadata)
13
- end
14
-
15
- def after_failure(error)
16
- case error
17
- when Exceptions::AuthorizationExpiredException
18
- @connection.terminate_and_release(Exceptions::AuthorizationExpiredException::DESCRIPTION)
19
- when Exceptions::ConnectionReadTimeoutException
20
- @connection.terminate_and_release(error.message)
21
- else
22
- release_connection
23
- end
24
- end
25
-
26
- private
27
-
28
- def release_connection
29
- @connection.release
30
- end
31
- end
32
- end
33
- end
34
- end
@@ -1,20 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- module Handlers
4
- class TransactionPullResponseCompletionListener
5
- def initialize(tx)
6
- @tx = Validator.require_non_nil!(tx)
7
- end
8
-
9
- def after_success(_metadata) end
10
-
11
- def after_failure(error)
12
- # always mark transaction as terminated because every error is "acknowledged" with a RESET message
13
- # so database forgets about the transaction after the first error
14
- # such transaction should not attempt to commit and can be considered as rolled back
15
- @tx.mark_terminated(error)
16
- end
17
- end
18
- end
19
- end
20
- end
@@ -1,22 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- class ImpersonationUtil
4
- IMPERSONATION_UNSUPPORTED_ERROR_MESSAGE = 'Detected connection that does not support impersonation, please make sure to have all servers running 4.4 version or above and communicating over Bolt version 4.4 or above when using impersonation feature'
5
-
6
- def self.ensure_impersonation_support(connection, impersonated_user)
7
- if !impersonated_user.nil? && !supports_impersonation?(connection)
8
- raise Neo4j::Driver::Exceptions::ClientException, IMPERSONATION_UNSUPPORTED_ERROR_MESSAGE
9
- end
10
-
11
- connection
12
- end
13
-
14
- private
15
-
16
- def self.supports_impersonation?(connection)
17
- connection.server_version >= Util::ServerVersion::V4_4_0 &&
18
- connection.protocol.version >= Messaging::V44::BoltProtocolV44::VERSION
19
- end
20
- end
21
- end
22
- end
@@ -1,36 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- class InternalBookmark
4
- include Bookmark
5
- attr :values
6
- delegate :hash, :empty?, to: :values
7
-
8
- private def initialize(*values)
9
- @values = values.to_set
10
- end
11
- EMPTY = new.freeze
12
-
13
- def ==(other)
14
- equal?(other) || self.class == other.class && values == other.values
15
- end
16
-
17
- alias eql? ==
18
-
19
- def to_s
20
- "Bookmark{values=#{values}}"
21
- end
22
-
23
- class << self
24
- def empty
25
- EMPTY
26
- end
27
-
28
- def from(*bookmarks)
29
- new(*bookmarks.reduce(Set.new) { |set, bookmark| set + bookmark.values })
30
- end
31
-
32
- alias parse new
33
- end
34
- end
35
- end
36
- end
@@ -1,9 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- class InternalDatabaseName < Struct.new(:database_name, :description)
4
- def initialize(database_name: nil, description: database_name)
5
- super(database_name, description)
6
- end
7
- end
8
- end
9
- end