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,74 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- class InternalDriver
4
- extend AutoClosable
5
- extend Synchronizable
6
- attr_reader :session_factory, :metrics_provider
7
- # delegate :verify_connectivity, to: :session_factory
8
- delegate :metrics, :metrics_enabled?, to: :metrics_provider
9
- auto_closable :session
10
- sync :close, :supports_multi_db?, :verify_connectivity, :session
11
-
12
- def initialize(security_plan, session_factory, metrics_provider, logger)
13
- @closed = Concurrent::AtomicBoolean.new(false)
14
- @security_plan = security_plan
15
- @session_factory = session_factory
16
- @metrics_provider = metrics_provider
17
- @log = logger
18
- end
19
-
20
- def session(**session_config)
21
- InternalSession.new(new_session(**session_config))
22
- end
23
-
24
- def async_session(**session_config)
25
- InternalAsyncSession.new(new_session(**session_config))
26
- end
27
-
28
- def encrypted?
29
- assert_open!
30
- @security_plan.requires_encryption?
31
- end
32
-
33
- def close
34
- close_async
35
- end
36
-
37
- def close_async
38
- return nil unless @closed.make_true
39
- @log.info { "Closing driver instance #{object_id}" }
40
- session_factory.close
41
- end
42
-
43
- def verify_connectivity_async
44
- session_factory.verify_connectivity
45
- end
46
-
47
- def supports_multi_db?
48
- supports_multi_db_async?
49
- end
50
-
51
- def supports_multi_db_async?
52
- session_factory.supports_multi_db?
53
- end
54
-
55
- def verify_connectivity
56
- verify_connectivity_async
57
- end
58
-
59
- def new_session(**config)
60
- assert_open!
61
- session_factory.new_instance(**config.compact)
62
- ensure
63
- # session does not immediately acquire connection, it is fine to just throw
64
- assert_open!
65
- end
66
-
67
- private
68
-
69
- def assert_open!
70
- raise Exceptions::IllegalStateException, 'This driver instance has already been closed' if @closed.true?
71
- end
72
- end
73
- end
74
- end
@@ -1,21 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- class InternalEntity
4
- attr_reader :id, :element_id, :properties
5
- delegate :hash, to: :id
6
- delegate :[], :size, :key?, :keys, :values, :to_h, to: :properties
7
-
8
- def initialize(id, element_id, **properties)
9
- @id = id
10
- @element_id = element_id || id.to_s
11
- @properties = properties
12
- end
13
-
14
- def ==(other)
15
- equal?(other) || self.class == other.class && id == other.id
16
- end
17
-
18
- alias eql? ==
19
- end
20
- end
21
- end
@@ -1,21 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- # {@link Node} implementation that directly contains labels and properties.
4
- class InternalNode < InternalEntity
5
- attr_reader :labels
6
-
7
- def initialize(id, element_id, *labels, **properties)
8
- super(id, element_id, **properties)
9
- @labels = labels
10
- end
11
-
12
- def label?(label)
13
- labels.include?(label)
14
- end
15
-
16
- def to_s
17
- "node<#{id}>"
18
- end
19
- end
20
- end
21
- end
@@ -1,9 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- class InternalPair < Struct.new(:key, :value)
4
- def self.of(key, value)
5
- new(key, value)
6
- end
7
- end
8
- end
9
- end
@@ -1,35 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- class InternalPath < Array
4
- attr_reader :nodes, :relationships
5
-
6
- class Segment < Struct.new(:start_node, :relationship, :end_node)
7
- def to_s
8
- sprintf(relationship.start_node_id == start_node.id ? '(%s)-[%s:%s]->(%s)' : '(%s)<-[%s:%s]-(%s)',
9
- start_node.id, relationship.id, relationship.type, end_node.id)
10
- end
11
- end
12
-
13
- delegate :length, to: :relationships
14
- delegate :include?, to: :entities
15
-
16
- def initialize(nodes, relationships)
17
- super()
18
- @nodes = nodes
19
- @relationships = relationships
20
- end
21
-
22
- def to_s
23
- 'path' + super
24
- end
25
-
26
- def start_node
27
- @nodes.first
28
- end
29
-
30
- def end_node
31
- @nodes.last
32
- end
33
- end
34
- end
35
- end
@@ -1,9 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- class InternalPoint2D < Struct.new(:srid, :x, :y)
4
- def z
5
- Float::NAN
6
- end
7
- end
8
- end
9
- end
@@ -1,6 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- class InternalPoint3D < Struct.new(:srid, :x, :y, :z)
4
- end
5
- end
6
- end
@@ -1,27 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Neo4j
4
- module Driver
5
- module Internal
6
- class InternalRecord
7
- attr_reader :keys, :values
8
- delegate :first, :size,to: :values
9
- delegate :key?, to: :keys
10
-
11
- def initialize(keys, values)
12
- @keys = keys
13
- @values = values
14
- end
15
-
16
- def [](key)
17
- field_index = key.is_a?(Integer) ? key : @keys.index(key.to_sym)
18
- @values[field_index] if field_index
19
- end
20
-
21
- def to_h
22
- keys.zip(values).to_h
23
- end
24
- end
25
- end
26
- end
27
- end
@@ -1,27 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Neo4j::Driver
4
- module Internal
5
- class InternalRelationship < InternalEntity
6
- attr_accessor :start_node_id, :end_node_id, :start_node_element_id, :end_node_element_id
7
- attr_reader :type
8
-
9
- def initialize(id, element_id, start_node_id, start_node_element_id, end_node_id, end_node_element_id, type, **properties)
10
- super(id, element_id, **properties)
11
- set_start_and_end_node_ids(start_node_id, start_node_element_id, end_node_id, end_node_element_id)
12
- @type = type.to_sym
13
- end
14
-
15
- def set_start_and_end_node_ids(start_node_id, start_node_element_id, end_node_id, end_node_element_id)
16
- @start_node_id = start_node_id
17
- @start_node_element_id = start_node_element_id || start_node_id.to_s
18
- @end_node_id = end_node_id
19
- @end_node_element_id = end_node_element_id || end_node_id.to_s
20
- end
21
-
22
- def to_s
23
- "relationship<#{id}>"
24
- end
25
- end
26
- end
27
- end
@@ -1,49 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- class InternalResult
4
- extend Synchronizable
5
- include Enumerable
6
- sync :keys, :has_next?, :next, :single, :peek, :consume
7
- delegate :keys, to: :@cursor
8
-
9
- def initialize(connection, cursor)
10
- @connection = connection
11
- @cursor = cursor
12
- end
13
-
14
- def has_next?
15
- @cursor.peek_async.result!
16
- end
17
-
18
- def next
19
- @cursor.next_async.result! || raise(Exceptions::NoSuchRecordException.no_more)
20
- end
21
-
22
- def single
23
- @cursor.single_async.result!
24
- end
25
-
26
- def peek
27
- @cursor.peek_async.result! or raise Exceptions::NoSuchRecordException.no_peek_past
28
- end
29
-
30
- def each
31
- yield self.next while has_next?
32
- end
33
-
34
- def consume
35
- @cursor.consume_async.result!
36
- end
37
-
38
- def remove
39
- raise ClientException, 'Removing records from a result is not supported.'
40
- end
41
-
42
- private
43
-
44
- def terminate_connection_on_thread_interrupt
45
- @connection.terminate_and_release('Thread interrupted while waiting for result to arrive')
46
- end
47
- end
48
- end
49
- end
@@ -1,81 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- class InternalSession
4
- extend AutoClosable
5
- extend Synchronizable
6
- # include Ext::RunOverride
7
- delegate :open?, :last_bookmark, to: :@session
8
- auto_closable :begin_transaction
9
- sync :close, :begin_transaction, :run, :transaction
10
-
11
- def initialize(session)
12
- @session = session
13
- end
14
-
15
- def run(query, parameters = {}, config = {})
16
- parameters ||= {}
17
- Validator.require_hash_parameters!(parameters)
18
- cursor = @session.run_async(Query.new(query, **parameters), **TransactionConfig.new(**config.compact)) do
19
- terminate_connection_on_thread_interrupt('Thread interrupted while running query in session')
20
- end.result!
21
-
22
- # query executed, it is safe to obtain a connection in a blocking way
23
- connection = @session.connection_async
24
- InternalResult.new(connection, cursor)
25
- end
26
-
27
- def close
28
- @session.close_async do
29
- terminate_connection_on_thread_interrupt("Thread interrupted while closing the session")
30
- end
31
- end
32
-
33
- def begin_transaction(**config)
34
- tx = @session.begin_transaction_async(**config) do
35
- terminate_connection_on_thread_interrupt("Thread interrupted while starting a transaction")
36
- end
37
- InternalTransaction.new(tx)
38
- end
39
-
40
- def read_transaction(**config, &block)
41
- transaction(AccessMode::READ, **config, &block)
42
- end
43
-
44
- def write_transaction(**config, &block)
45
- transaction(AccessMode::WRITE, **config, &block)
46
- end
47
-
48
- private
49
-
50
- def transaction(mode, **config)
51
- # use different code path compared to async so that work is executed in the caller thread
52
- # caller thread will also be the one who sleeps between retries;
53
- # it is unsafe to execute retries in the event loop threads because this can cause a deadlock
54
- # event loop thread will bock and wait for itself to read some data
55
- @session.retry_logic.retry do
56
- tx = private_begin_transaction(mode, **config)
57
- result = yield tx
58
- tx.commit if tx.open? # if a user has not explicitly committed or rolled back the transaction
59
- result
60
- ensure
61
- tx&.close
62
- end
63
- end
64
-
65
- def private_begin_transaction(mode, **config)
66
- tx = @session.begin_transaction_async(mode, **config) do
67
- terminate_connection_on_thread_interrupt("Thread interrupted while starting a transaction")
68
- end
69
- InternalTransaction.new(tx)
70
- end
71
-
72
- def terminate_connection_on_thread_interrupt(reason)
73
- connection = @session.connection_async
74
- rescue
75
- nil # ignore errors because handing interruptions is best effort
76
- ensure
77
- connection&.terminate_and_release(reason)
78
- end
79
- end
80
- end
81
- end
@@ -1,48 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- class InternalTransaction
4
- extend Synchronizable
5
- sync :commit, :rollback, :close, :run
6
- delegate :open?, to: :@tx
7
-
8
- def initialize(tx)
9
- @tx = tx
10
- end
11
-
12
- def commit
13
- @tx.commit_async.result!
14
- # org.neo4j.driver.internal.util.Futures.blockingGet(@tx.commit_async) do
15
- # terminate_connection_on_thread_interrupt('Thread interrupted while committing the transaction')
16
- # end
17
- end
18
-
19
- def rollback
20
- @tx.rollback_async.result!
21
- # org.neo4j.driver.internal.util.Futures.blockingGet(@tx.rollback_async) do
22
- # terminate_connection_on_thread_interrupt('Thread interrupted while rolling back the transaction')
23
- # end
24
- end
25
-
26
- def close
27
- @tx.close_async.result!
28
- # org.neo4j.driver.internal.util.Futures.blockingGet(@tx.close_async) do
29
- # terminate_connection_on_thread_interrupt('Thread interrupted while closing the transaction')
30
- # end
31
- end
32
-
33
- def run(query, **parameters)
34
- cursor = @tx.run_async(Query.new(query, **parameters)).result!
35
- # cursor = org.neo4j.driver.internal.util.Futures.blockingGet(@tx.run_async(to_statement(query, parameters))) do
36
- # terminate_connection_on_thread_interrupt('Thread interrupted while running query in transaction')
37
- # end
38
- InternalResult.new(@tx.connection, cursor)
39
- end
40
-
41
- private
42
-
43
- def terminate_connection_on_thread_interrupt(reason)
44
- @tx.connection.terminate_and_release(reason)
45
- end
46
- end
47
- end
48
- end
@@ -1,29 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- module Logging
4
- class ChannelActivityLogger < ReformattedLogger
5
- def initialize(channel, logger, owner)
6
- super(logger)
7
- @channel = channel
8
- @local_channel_id = channel&.object_id&.to_s
9
- @owner = owner
10
- end
11
-
12
- private
13
-
14
- def format_message(severity, datetime, progname, msg)
15
- super(severity, datetime, @owner || progname,
16
- @channel && "[0x#{@local_channel_id}] [#{server_address}] [#{db_connection_id}] #{msg}" || msg)
17
- end
18
-
19
- def db_connection_id
20
- @db_connection_id ||= Async::Connection::ChannelAttributes.connection_id(@channel)
21
- end
22
-
23
- def server_address
24
- @server_address ||= Async::Connection::ChannelAttributes.server_address(@channel)&.to_s
25
- end
26
- end
27
- end
28
- end
29
- end
@@ -1,17 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- module Logging
4
- class ChannelErrorLogger < ChannelActivityLogger
5
- DEBUG_MESSAGE_FORMAT = "%s (%s)"
6
-
7
- def initialize(channel, logger)
8
- super(channel, logger, self.class)
9
- end
10
-
11
- def debug(message, error)
12
- super(DEBUG_MESSAGE_FORMAT % [message, error.class])
13
- end
14
- end
15
- end
16
- end
17
- end
@@ -1,19 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- module Logging
4
- class PrefixedLogger < ReformattedLogger
5
- def initialize(message_prefix = nil, delegate)
6
- super(delegate)
7
- @message_prefix = message_prefix
8
- end
9
-
10
- private
11
-
12
- def format_message(severity, datetime, progname, msg)
13
- return super unless @message_prefix
14
- super(severity, datetime, progname, "#{@message_prefix} #{msg}")
15
- end
16
- end
17
- end
18
- end
19
- end
@@ -1,17 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- module Logging
4
- class ReformattedLogger
5
- delegate_missing_to :@delegate
6
-
7
- def initialize(delegate)
8
- @delegate = Validator.require_non_nil!(delegate)
9
- end
10
-
11
- def trace(*arg)
12
- debug(*arg)
13
- end
14
- end
15
- end
16
- end
17
- end
@@ -1,23 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- module Messaging
4
- class AbstractMessageWriter
5
- def initialize(packer)
6
- @packer = Internal::Validator.require_non_nil!(packer)
7
- @encoders_by_message_signature = Internal::Validator.require_non_nil!(build_encoders).transform_values(&:new)
8
- end
9
-
10
- def write(msg)
11
- signature = msg.class::SIGNATURE
12
- encoder = @encoders_by_message_signature[signature]
13
-
14
- if encoder.nil?
15
- raise IOError, "No encoder found for message #{msg} with signature #{signature}"
16
- end
17
-
18
- encoder.encode(msg, @packer)
19
- end
20
- end
21
- end
22
- end
23
- end
@@ -1,32 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- module Messaging
4
- module BoltProtocol
5
- def self.for_channel(channel)
6
- for_version(channel.attributes[:protocol_version])
7
- end
8
-
9
- def self.for_version(version)
10
- case version
11
- when V3::BoltProtocolV3::VERSION
12
- V3::BoltProtocolV3::INSTANCE
13
- when V4::BoltProtocolV4::VERSION
14
- V4::BoltProtocolV4::INSTANCE
15
- when V41::BoltProtocolV41::VERSION
16
- V41::BoltProtocolV41::INSTANCE
17
- when V42::BoltProtocolV42::VERSION
18
- V42::BoltProtocolV42::INSTANCE
19
- when V43::BoltProtocolV43::VERSION
20
- V43::BoltProtocolV43::INSTANCE
21
- when V44::BoltProtocolV44::VERSION
22
- V44::BoltProtocolV44::INSTANCE
23
- when V5::BoltProtocolV5::VERSION
24
- V5::BoltProtocolV5::INSTANCE
25
- else
26
- raise Exceptions::ClientException, "Unknown protocol version: #{version}"
27
- end
28
- end
29
- end
30
- end
31
- end
32
- end
@@ -1,48 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- module Messaging
4
- class BoltProtocolVersion < Struct.new(:major_version, :minor_version)
5
- include Comparable
6
-
7
- def self.from_raw_bytes(raw_version)
8
- major = raw_version & 0x000000FF
9
- minor = (raw_version >> 8) & 0x000000FF
10
- new(major, minor)
11
- end
12
-
13
- def to_int
14
- shifted_minor = minor_version << 8
15
- shifted_minor | major_version
16
- end
17
-
18
- def to_int_range(min_version)
19
- if major_version != min_version.major_version
20
- raise ArgumentError, 'Versions should be from the same major version'
21
- elsif minor_version < min_version.minor_version
22
- raise ArgumentError, 'Max version should be newer than min version'
23
- end
24
-
25
- range = minor_version - min_version.minor_version
26
- shifted_range = range << 16
27
- shifted_range | to_int
28
- end
29
-
30
- # @return the version in format X.Y where X is the major version and Y is the minor version
31
- def to_s
32
- values.join('.')
33
- end
34
-
35
- def <=>(other)
36
- result = major_version <=> other.major_version
37
- result == 0 ? minor_version <=> other.minor_version : result
38
- end
39
-
40
- def self.http?(protocol_version)
41
- # server would respond with `HTTP..` We read 4 bytes to figure out the version. The first two are not used
42
- # and therefore parse the `P` (80) for major and `T` (84) for minor.
43
- protocol_version.major_version == 80 && protocol_version.minor_version == 84
44
- end
45
- end
46
- end
47
- end
48
- end
@@ -1,51 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- module Messaging
4
- module Common
5
- class CommonMessageReader
6
- def initialize(input)
7
- @unpacker = input
8
- end
9
-
10
- def read(handler)
11
- @unpacker.unpack_struct_header
12
- type = @unpacker.unpack_struct_signature
13
-
14
- case type
15
- when Response::SuccessMessage::SIGNATURE
16
- unpack_success_message(handler)
17
- when Response::FailureMessage::SIGNATURE
18
- unpack_failure_message(handler)
19
- when Response::IgnoredMessage::SIGNATURE
20
- unpack_ignored_message(handler)
21
- when Response::RecordMessage::SIGNATURE
22
- unpack_record_message(handler)
23
- else
24
- raise IOError, "Unknown message type: #{type}"
25
- end
26
- end
27
-
28
- private
29
-
30
- def unpack_success_message(output)
31
- map = @unpacker.unpack
32
- output.handle_success_message(map)
33
- end
34
-
35
- def unpack_failure_message(output)
36
- output.handle_failure_message(**@unpacker.unpack)
37
- end
38
-
39
- def unpack_ignored_message(output)
40
- output.handle_ignored_message
41
- end
42
-
43
- def unpack_record_message(output)
44
- fields = @unpacker.unpack
45
- output.handle_record_message(fields)
46
- end
47
- end
48
- end
49
- end
50
- end
51
- end