neo4j-ruby-driver 6.0.3.alpha.0 → 6.2.1.beta.2

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 (348) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +113 -411
  3. data/{ruby → lib}/neo4j/driver/access_mode.rb +2 -1
  4. data/lib/neo4j/driver/auth_token_managers.rb +31 -0
  5. data/lib/neo4j/driver/auth_tokens.rb +41 -0
  6. data/lib/neo4j/driver/auto_commit_retries_mode.rb +18 -0
  7. data/lib/neo4j/driver/bolt/bolt_version.rb +67 -0
  8. data/lib/neo4j/driver/bolt/connection.rb +1091 -0
  9. data/lib/neo4j/driver/bolt/handshake.rb +236 -0
  10. data/lib/neo4j/driver/bolt/message/failure.rb +139 -0
  11. data/lib/neo4j/driver/bolt/message/ignored.rb +27 -0
  12. data/lib/neo4j/driver/bolt/message/record.rb +30 -0
  13. data/lib/neo4j/driver/bolt/message/success.rb +34 -0
  14. data/lib/neo4j/driver/bolt/message.rb +112 -0
  15. data/lib/neo4j/driver/bolt/pool.rb +255 -0
  16. data/lib/neo4j/driver/bolt/protocol/base.rb +146 -0
  17. data/lib/neo4j/driver/bolt/protocol/v3.rb +43 -0
  18. data/lib/neo4j/driver/bolt/protocol/v4.rb +24 -0
  19. data/lib/neo4j/driver/bolt/protocol/v43.rb +28 -0
  20. data/lib/neo4j/driver/bolt/protocol/v44.rb +23 -0
  21. data/lib/neo4j/driver/bolt/protocol/v5.rb +27 -0
  22. data/lib/neo4j/driver/bolt/protocol/v51.rb +24 -0
  23. data/lib/neo4j/driver/bolt/protocol/v52.rb +28 -0
  24. data/lib/neo4j/driver/bolt/protocol/v53.rb +27 -0
  25. data/lib/neo4j/driver/bolt/protocol/v54.rb +14 -0
  26. data/lib/neo4j/driver/bolt/protocol/v55.rb +17 -0
  27. data/lib/neo4j/driver/bolt/protocol/v56.rb +14 -0
  28. data/lib/neo4j/driver/bolt/protocol/v57.rb +31 -0
  29. data/lib/neo4j/driver/bolt/protocol/v58.rb +15 -0
  30. data/lib/neo4j/driver/bolt/protocol/v6.rb +43 -0
  31. data/lib/neo4j/driver/bolt/protocol/v61.rb +21 -0
  32. data/lib/neo4j/driver/bolt/protocol_version_handler.rb +39 -0
  33. data/lib/neo4j/driver/bolt/record_buffer.rb +143 -0
  34. data/lib/neo4j/driver/bolt/stream_handler.rb +53 -0
  35. data/lib/neo4j/driver/bolt/tls_config.rb +129 -0
  36. data/lib/neo4j/driver/bolt/wire.rb +321 -0
  37. data/lib/neo4j/driver/bookmark.rb +15 -0
  38. data/lib/neo4j/driver/bookmark_managers.rb +39 -0
  39. data/lib/neo4j/driver/client_certificate.rb +19 -0
  40. data/lib/neo4j/driver/client_certificate_manager.rb +37 -0
  41. data/lib/neo4j/driver/client_certificate_managers.rb +15 -0
  42. data/lib/neo4j/driver/client_certificates.rb +14 -0
  43. data/lib/neo4j/driver/direct/connection_provider.rb +262 -0
  44. data/lib/neo4j/driver/driver.rb +268 -0
  45. data/lib/neo4j/driver/eager_result.rb +10 -0
  46. data/lib/neo4j/driver/exceptions/neo4j_exception.rb +16 -7
  47. data/lib/neo4j/driver/exceptions/no_such_record_exception.rb +1 -1
  48. data/lib/neo4j/driver/exceptions/protocol_exception.rb +0 -5
  49. data/lib/neo4j/driver/exceptions/security_retryable_exception.rb +14 -0
  50. data/lib/neo4j/driver/exceptions/transaction_terminated_exception.rb +13 -0
  51. data/lib/neo4j/driver/graph_database.rb +29 -0
  52. data/lib/neo4j/driver/internal/clock.rb +20 -0
  53. data/lib/neo4j/driver/internal/clock_adapter.rb +21 -0
  54. data/lib/neo4j/driver/internal/default_bookmark_manager.rb +54 -0
  55. data/lib/neo4j/driver/internal/deprecator.rb +9 -5
  56. data/lib/neo4j/driver/internal/driver_factory.rb +128 -0
  57. data/lib/neo4j/driver/internal/duration_normalizer.rb +14 -39
  58. data/lib/neo4j/driver/internal/extras.rb +23 -0
  59. data/lib/neo4j/driver/internal/home_db_cache.rb +57 -0
  60. data/lib/neo4j/driver/internal/internal_auth_token_manager.rb +37 -0
  61. data/lib/neo4j/driver/internal/metrics.rb +31 -0
  62. data/lib/neo4j/driver/internal/security/static_auth_token_manager.rb +25 -0
  63. data/lib/neo4j/driver/internal/validator.rb +16 -2
  64. data/lib/neo4j/driver/net.rb +29 -0
  65. data/lib/neo4j/driver/packstream/markers.rb +49 -0
  66. data/lib/neo4j/driver/packstream/packer.rb +335 -0
  67. data/lib/neo4j/driver/packstream/structure.rb +27 -0
  68. data/lib/neo4j/driver/packstream/unpacker.rb +170 -0
  69. data/lib/neo4j/driver/record.rb +43 -0
  70. data/lib/neo4j/driver/result.rb +282 -0
  71. data/lib/neo4j/driver/routing/load_balancer.rb +706 -0
  72. data/lib/neo4j/driver/routing/routed_connection.rb +132 -0
  73. data/lib/neo4j/driver/routing/routing_table.rb +127 -0
  74. data/lib/neo4j/driver/routing/server_address.rb +25 -0
  75. data/lib/neo4j/driver/routing_control.rb +13 -0
  76. data/lib/neo4j/driver/session.rb +577 -0
  77. data/lib/neo4j/driver/summary/database_info.rb +25 -0
  78. data/lib/neo4j/driver/summary/gql_notification.rb +38 -0
  79. data/lib/neo4j/driver/summary/gql_status_object.rb +35 -0
  80. data/lib/neo4j/driver/summary/notification.rb +46 -0
  81. data/lib/neo4j/driver/summary/plan.rb +23 -0
  82. data/lib/neo4j/driver/summary/profile.rb +28 -0
  83. data/lib/neo4j/driver/summary/query.rb +19 -0
  84. data/lib/neo4j/driver/summary/query_type.rb +5 -1
  85. data/lib/neo4j/driver/summary/result_summary.rb +215 -0
  86. data/lib/neo4j/driver/summary/server_info.rb +33 -0
  87. data/lib/neo4j/driver/summary/summary_counters.rb +72 -0
  88. data/lib/neo4j/driver/transaction.rb +344 -0
  89. data/lib/neo4j/driver/types/duration.rb +76 -0
  90. data/lib/neo4j/driver/types/entity.rb +40 -0
  91. data/lib/neo4j/driver/types/local_date_time.rb +77 -8
  92. data/lib/neo4j/driver/types/local_time.rb +50 -7
  93. data/lib/neo4j/driver/types/node.rb +18 -0
  94. data/lib/neo4j/driver/types/offset_time.rb +78 -7
  95. data/lib/neo4j/driver/types/path.rb +68 -0
  96. data/lib/neo4j/driver/types/point.rb +38 -18
  97. data/lib/neo4j/driver/types/relationship.rb +32 -0
  98. data/lib/neo4j/driver/types/temporal_value.rb +44 -0
  99. data/lib/neo4j/driver/types/unbound_relationship.rb +24 -0
  100. data/lib/neo4j/driver/types/unresolvable_zoned_date_time.rb +38 -0
  101. data/lib/neo4j/driver/types/unsupported_type.rb +25 -0
  102. data/lib/neo4j/driver/types/uuid.rb +29 -0
  103. data/{ruby → lib}/neo4j/driver/version.rb +1 -1
  104. data/lib/neo4j/driver.rb +15 -0
  105. data/lib/neo4j-ruby-driver_loader.rb +34 -20
  106. metadata +115 -441
  107. data/lib/neo4j/driver/internal/bolt_server_address.rb +0 -97
  108. data/lib/neo4j/driver/synchronizable.rb +0 -23
  109. data/lib/neo4j/driver/types/time.rb +0 -45
  110. data/ruby/neo4j/driver/auth_tokens.rb +0 -34
  111. data/ruby/neo4j/driver/bookmark.rb +0 -21
  112. data/ruby/neo4j/driver/config.rb +0 -89
  113. data/ruby/neo4j/driver/graph_database.rb +0 -78
  114. data/ruby/neo4j/driver/internal/async/connection/bolt_protocol_util.rb +0 -51
  115. data/ruby/neo4j/driver/internal/async/connection/bootstrap_factory.rb +0 -22
  116. data/ruby/neo4j/driver/internal/async/connection/channel_attributes.rb +0 -31
  117. data/ruby/neo4j/driver/internal/async/connection/channel_connected_listener.rb +0 -32
  118. data/ruby/neo4j/driver/internal/async/connection/channel_connector_impl.rb +0 -83
  119. data/ruby/neo4j/driver/internal/async/connection/channel_pipeline_builder_impl.rb +0 -22
  120. data/ruby/neo4j/driver/internal/async/connection/direct_connection.rb +0 -30
  121. data/ruby/neo4j/driver/internal/async/connection/event_loop_group_factory.rb +0 -83
  122. data/ruby/neo4j/driver/internal/async/connection/handshake_completed_listener.rb +0 -27
  123. data/ruby/neo4j/driver/internal/async/connection/handshake_handler.rb +0 -113
  124. data/ruby/neo4j/driver/internal/async/connection/netty_channel_initializer.rb +0 -57
  125. data/ruby/neo4j/driver/internal/async/connection/netty_domain_name_resolver.rb +0 -26
  126. data/ruby/neo4j/driver/internal/async/connection/netty_domain_name_resolver_group.rb +0 -19
  127. data/ruby/neo4j/driver/internal/async/connection/routing_connection.rb +0 -36
  128. data/ruby/neo4j/driver/internal/async/connection/stream.rb +0 -12
  129. data/ruby/neo4j/driver/internal/async/connection/stream_reader.rb +0 -16
  130. data/ruby/neo4j/driver/internal/async/connection_context.rb +0 -10
  131. data/ruby/neo4j/driver/internal/async/immutable_connection_context.rb +0 -24
  132. data/ruby/neo4j/driver/internal/async/inbound/byte_buf_input.rb +0 -30
  133. data/ruby/neo4j/driver/internal/async/inbound/channel_error_handler.rb +0 -77
  134. data/ruby/neo4j/driver/internal/async/inbound/chunk_decoder.rb +0 -41
  135. data/ruby/neo4j/driver/internal/async/inbound/connect_timeout_handler.rb +0 -32
  136. data/ruby/neo4j/driver/internal/async/inbound/connection_read_timeout_handler.rb +0 -17
  137. data/ruby/neo4j/driver/internal/async/inbound/inbound_message_dispatcher.rb +0 -171
  138. data/ruby/neo4j/driver/internal/async/inbound/inbound_message_handler.rb +0 -42
  139. data/ruby/neo4j/driver/internal/async/inbound/message_decoder.rb +0 -51
  140. data/ruby/neo4j/driver/internal/async/internal_async_session.rb +0 -92
  141. data/ruby/neo4j/driver/internal/async/internal_async_transaction.rb +0 -13
  142. data/ruby/neo4j/driver/internal/async/leak_logging_network_session.rb +0 -34
  143. data/ruby/neo4j/driver/internal/async/network_connection.rb +0 -194
  144. data/ruby/neo4j/driver/internal/async/network_session.rb +0 -150
  145. data/ruby/neo4j/driver/internal/async/outbound/chunk_aware_byte_buf_output.rb +0 -110
  146. data/ruby/neo4j/driver/internal/async/outbound/outbound_message_handler.rb +0 -39
  147. data/ruby/neo4j/driver/internal/async/pool/channel.rb +0 -66
  148. data/ruby/neo4j/driver/internal/async/pool/channel_pool.rb +0 -31
  149. data/ruby/neo4j/driver/internal/async/pool/channel_tracker.rb +0 -135
  150. data/ruby/neo4j/driver/internal/async/pool/connection_pool_impl.rb +0 -156
  151. data/ruby/neo4j/driver/internal/async/pool/netty_channel_health_checker.rb +0 -87
  152. data/ruby/neo4j/driver/internal/async/pool/netty_channel_pool.rb +0 -52
  153. data/ruby/neo4j/driver/internal/async/pool/network_connection_factory.rb +0 -21
  154. data/ruby/neo4j/driver/internal/async/pool/pool_settings.rb +0 -34
  155. data/ruby/neo4j/driver/internal/async/pool/timed_stack.rb +0 -15
  156. data/ruby/neo4j/driver/internal/async/result_cursors_holder.rb +0 -17
  157. data/ruby/neo4j/driver/internal/async/unmanaged_transaction.rb +0 -212
  158. data/ruby/neo4j/driver/internal/bookmark_holder.rb +0 -9
  159. data/ruby/neo4j/driver/internal/cluster/cluster_composition.rb +0 -48
  160. data/ruby/neo4j/driver/internal/cluster/cluster_composition_lookup_result.rb +0 -14
  161. data/ruby/neo4j/driver/internal/cluster/cluster_routing_table.rb +0 -122
  162. data/ruby/neo4j/driver/internal/cluster/identity_resolver.rb +0 -10
  163. data/ruby/neo4j/driver/internal/cluster/loadbalancing/least_connected_load_balancing_strategy.rb +0 -68
  164. data/ruby/neo4j/driver/internal/cluster/loadbalancing/load_balancer.rb +0 -125
  165. data/ruby/neo4j/driver/internal/cluster/loadbalancing/round_robin_array_index.rb +0 -13
  166. data/ruby/neo4j/driver/internal/cluster/multi_databases_routing_procedure_runner.rb +0 -31
  167. data/ruby/neo4j/driver/internal/cluster/rediscovery_impl.rb +0 -147
  168. data/ruby/neo4j/driver/internal/cluster/route_message_routing_procedure_runner.rb +0 -43
  169. data/ruby/neo4j/driver/internal/cluster/routing_context.rb +0 -77
  170. data/ruby/neo4j/driver/internal/cluster/routing_procedure_cluster_composition_provider.rb +0 -60
  171. data/ruby/neo4j/driver/internal/cluster/routing_procedure_response.rb +0 -35
  172. data/ruby/neo4j/driver/internal/cluster/routing_settings.rb +0 -24
  173. data/ruby/neo4j/driver/internal/cluster/routing_table_handler_impl.rb +0 -95
  174. data/ruby/neo4j/driver/internal/cluster/routing_table_registry_impl.rb +0 -121
  175. data/ruby/neo4j/driver/internal/cluster/single_database_routing_procedure_runner.rb +0 -73
  176. data/ruby/neo4j/driver/internal/connection_settings.rb +0 -16
  177. data/ruby/neo4j/driver/internal/cursor/async_result_cursor_impl.rb +0 -55
  178. data/ruby/neo4j/driver/internal/cursor/async_result_cursor_only_factory.rb +0 -24
  179. data/ruby/neo4j/driver/internal/cursor/disposable_async_result_cursor.rb +0 -61
  180. data/ruby/neo4j/driver/internal/cursor/result_cursor_factory_impl.rb +0 -24
  181. data/ruby/neo4j/driver/internal/cursor/rx_result_cursor_impl.rb +0 -110
  182. data/ruby/neo4j/driver/internal/database_name_util.rb +0 -37
  183. data/ruby/neo4j/driver/internal/default_bookmark_holder.rb +0 -9
  184. data/ruby/neo4j/driver/internal/default_domain_name_resolver.rb +0 -11
  185. data/ruby/neo4j/driver/internal/direct_connection_provider.rb +0 -40
  186. data/ruby/neo4j/driver/internal/driver_factory.rb +0 -126
  187. data/ruby/neo4j/driver/internal/eager_result_value.rb +0 -5
  188. data/ruby/neo4j/driver/internal/handlers/begin_tx_response_handler.rb +0 -20
  189. data/ruby/neo4j/driver/internal/handlers/channel_releasing_reset_response_handler.rb +0 -30
  190. data/ruby/neo4j/driver/internal/handlers/commit_tx_response_handler.rb +0 -23
  191. data/ruby/neo4j/driver/internal/handlers/hello_response_handler.rb +0 -65
  192. data/ruby/neo4j/driver/internal/handlers/init_response_handler.rb +0 -34
  193. data/ruby/neo4j/driver/internal/handlers/legacy_pull_all_response_handler.rb +0 -199
  194. data/ruby/neo4j/driver/internal/handlers/no_op_response_handler.rb +0 -16
  195. data/ruby/neo4j/driver/internal/handlers/ping_response_handler.rb +0 -29
  196. data/ruby/neo4j/driver/internal/handlers/pull_handlers.rb +0 -32
  197. data/ruby/neo4j/driver/internal/handlers/pulln/auto_pull_response_handler.rb +0 -169
  198. data/ruby/neo4j/driver/internal/handlers/pulln/basic_pull_response_handler.rb +0 -298
  199. data/ruby/neo4j/driver/internal/handlers/pulln/fetch_size_util.rb +0 -20
  200. data/ruby/neo4j/driver/internal/handlers/reset_response_handler.rb +0 -34
  201. data/ruby/neo4j/driver/internal/handlers/rollback_tx_response_handler.rb +0 -25
  202. data/ruby/neo4j/driver/internal/handlers/route_message_response_handler.rb +0 -21
  203. data/ruby/neo4j/driver/internal/handlers/routing_response_handler.rb +0 -79
  204. data/ruby/neo4j/driver/internal/handlers/run_response_handler.rb +0 -38
  205. data/ruby/neo4j/driver/internal/handlers/session_pull_response_completion_listener.rb +0 -34
  206. data/ruby/neo4j/driver/internal/handlers/transaction_pull_response_completion_listener.rb +0 -20
  207. data/ruby/neo4j/driver/internal/impersonation_util.rb +0 -22
  208. data/ruby/neo4j/driver/internal/internal_bookmark.rb +0 -9
  209. data/ruby/neo4j/driver/internal/internal_database_name.rb +0 -9
  210. data/ruby/neo4j/driver/internal/internal_driver.rb +0 -83
  211. data/ruby/neo4j/driver/internal/internal_entity.rb +0 -21
  212. data/ruby/neo4j/driver/internal/internal_node.rb +0 -21
  213. data/ruby/neo4j/driver/internal/internal_pair.rb +0 -9
  214. data/ruby/neo4j/driver/internal/internal_path.rb +0 -35
  215. data/ruby/neo4j/driver/internal/internal_point2_d.rb +0 -9
  216. data/ruby/neo4j/driver/internal/internal_point3_d.rb +0 -6
  217. data/ruby/neo4j/driver/internal/internal_record.rb +0 -27
  218. data/ruby/neo4j/driver/internal/internal_relationship.rb +0 -27
  219. data/ruby/neo4j/driver/internal/internal_result.rb +0 -49
  220. data/ruby/neo4j/driver/internal/internal_session.rb +0 -91
  221. data/ruby/neo4j/driver/internal/internal_transaction.rb +0 -48
  222. data/ruby/neo4j/driver/internal/logging/channel_activity_logger.rb +0 -29
  223. data/ruby/neo4j/driver/internal/logging/channel_error_logger.rb +0 -17
  224. data/ruby/neo4j/driver/internal/logging/prefixed_logger.rb +0 -19
  225. data/ruby/neo4j/driver/internal/logging/reformatted_logger.rb +0 -17
  226. data/ruby/neo4j/driver/internal/messaging/abstract_message_writer.rb +0 -23
  227. data/ruby/neo4j/driver/internal/messaging/bolt_protocol.rb +0 -32
  228. data/ruby/neo4j/driver/internal/messaging/bolt_protocol_version.rb +0 -48
  229. data/ruby/neo4j/driver/internal/messaging/common/common_message_reader.rb +0 -51
  230. data/ruby/neo4j/driver/internal/messaging/common/common_value.rb +0 -33
  231. data/ruby/neo4j/driver/internal/messaging/common/common_value_packer.rb +0 -104
  232. data/ruby/neo4j/driver/internal/messaging/common/common_value_unpacker.rb +0 -256
  233. data/ruby/neo4j/driver/internal/messaging/encode/begin_message_encoder.rb +0 -15
  234. data/ruby/neo4j/driver/internal/messaging/encode/commit_message_encoder.rb +0 -14
  235. data/ruby/neo4j/driver/internal/messaging/encode/discard_all_message_encoder.rb +0 -14
  236. data/ruby/neo4j/driver/internal/messaging/encode/discard_message_encoder.rb +0 -15
  237. data/ruby/neo4j/driver/internal/messaging/encode/goodbye_message_encoder.rb +0 -14
  238. data/ruby/neo4j/driver/internal/messaging/encode/hello_message_encoder.rb +0 -15
  239. data/ruby/neo4j/driver/internal/messaging/encode/init_message_encoder.rb +0 -16
  240. data/ruby/neo4j/driver/internal/messaging/encode/logoff_message_encoder.rb +0 -14
  241. data/ruby/neo4j/driver/internal/messaging/encode/logon_message_encoder.rb +0 -15
  242. data/ruby/neo4j/driver/internal/messaging/encode/pull_all_message_encoder.rb +0 -14
  243. data/ruby/neo4j/driver/internal/messaging/encode/pull_message_encoder.rb +0 -15
  244. data/ruby/neo4j/driver/internal/messaging/encode/reset_message_encoder.rb +0 -14
  245. data/ruby/neo4j/driver/internal/messaging/encode/rollback_message_encoder.rb +0 -14
  246. data/ruby/neo4j/driver/internal/messaging/encode/route_message_encoder.rb +0 -24
  247. data/ruby/neo4j/driver/internal/messaging/encode/route_v44_message_encoder.rb +0 -22
  248. data/ruby/neo4j/driver/internal/messaging/encode/run_message_encoder.rb +0 -16
  249. data/ruby/neo4j/driver/internal/messaging/encode/run_with_metadata_message_encoder.rb +0 -17
  250. data/ruby/neo4j/driver/internal/messaging/request/abstract_streaming_message.rb +0 -25
  251. data/ruby/neo4j/driver/internal/messaging/request/begin_message.rb +0 -25
  252. data/ruby/neo4j/driver/internal/messaging/request/commit_message.rb +0 -20
  253. data/ruby/neo4j/driver/internal/messaging/request/discard_all_message.rb +0 -20
  254. data/ruby/neo4j/driver/internal/messaging/request/discard_message.rb +0 -23
  255. data/ruby/neo4j/driver/internal/messaging/request/goodbye_message.rb +0 -20
  256. data/ruby/neo4j/driver/internal/messaging/request/hello_message.rb +0 -30
  257. data/ruby/neo4j/driver/internal/messaging/request/init_message.rb +0 -19
  258. data/ruby/neo4j/driver/internal/messaging/request/logoff_message.rb +0 -13
  259. data/ruby/neo4j/driver/internal/messaging/request/logon_message.rb +0 -13
  260. data/ruby/neo4j/driver/internal/messaging/request/message_with_metadata.rb +0 -17
  261. data/ruby/neo4j/driver/internal/messaging/request/multi_database_util.rb +0 -26
  262. data/ruby/neo4j/driver/internal/messaging/request/pull_all_message.rb +0 -23
  263. data/ruby/neo4j/driver/internal/messaging/request/pull_message.rb +0 -22
  264. data/ruby/neo4j/driver/internal/messaging/request/reset_message.rb +0 -32
  265. data/ruby/neo4j/driver/internal/messaging/request/rollback_message.rb +0 -20
  266. data/ruby/neo4j/driver/internal/messaging/request/route_message.rb +0 -28
  267. data/ruby/neo4j/driver/internal/messaging/request/run_message.rb +0 -23
  268. data/ruby/neo4j/driver/internal/messaging/request/run_with_metadata_message.rb +0 -49
  269. data/ruby/neo4j/driver/internal/messaging/request/transaction_metadata_builder.rb +0 -24
  270. data/ruby/neo4j/driver/internal/messaging/response/failure_message.rb +0 -40
  271. data/ruby/neo4j/driver/internal/messaging/response/ignored_message.rb +0 -29
  272. data/ruby/neo4j/driver/internal/messaging/response/record_message.rb +0 -33
  273. data/ruby/neo4j/driver/internal/messaging/response/success_message.rb +0 -34
  274. data/ruby/neo4j/driver/internal/messaging/v3/bolt_protocol_v3.rb +0 -82
  275. data/ruby/neo4j/driver/internal/messaging/v3/message_format_v3.rb +0 -17
  276. data/ruby/neo4j/driver/internal/messaging/v3/message_writer_v3.rb +0 -27
  277. data/ruby/neo4j/driver/internal/messaging/v4/bolt_protocol_v4.rb +0 -29
  278. data/ruby/neo4j/driver/internal/messaging/v4/message_format_v4.rb +0 -13
  279. data/ruby/neo4j/driver/internal/messaging/v4/message_writer_v4.rb +0 -17
  280. data/ruby/neo4j/driver/internal/messaging/v41/bolt_protocol_v41.rb +0 -25
  281. data/ruby/neo4j/driver/internal/messaging/v42/bolt_protocol_v42.rb +0 -13
  282. data/ruby/neo4j/driver/internal/messaging/v43/bolt_protocol_v43.rb +0 -19
  283. data/ruby/neo4j/driver/internal/messaging/v43/message_format_v43.rb +0 -14
  284. data/ruby/neo4j/driver/internal/messaging/v43/message_writer_v43.rb +0 -20
  285. data/ruby/neo4j/driver/internal/messaging/v44/bolt_protocol_v44.rb +0 -17
  286. data/ruby/neo4j/driver/internal/messaging/v44/message_format_v44.rb +0 -14
  287. data/ruby/neo4j/driver/internal/messaging/v44/message_writer_v44.rb +0 -15
  288. data/ruby/neo4j/driver/internal/messaging/v5/bolt_protocol_v5.rb +0 -21
  289. data/ruby/neo4j/driver/internal/messaging/v5/message_format_v5.rb +0 -18
  290. data/ruby/neo4j/driver/internal/messaging/v5/value_unpacker_v5.rb +0 -17
  291. data/ruby/neo4j/driver/internal/messaging/v51/bolt_protocol_v51.rb +0 -40
  292. data/ruby/neo4j/driver/internal/messaging/v51/message_format_v51.rb +0 -14
  293. data/ruby/neo4j/driver/internal/messaging/v51/message_writer_v51.rb +0 -17
  294. data/ruby/neo4j/driver/internal/metrics/connection_pool_metrics_listener.rb +0 -34
  295. data/ruby/neo4j/driver/internal/metrics/internal_abstract_metrics.rb +0 -46
  296. data/ruby/neo4j/driver/internal/metrics/internal_connection_pool_metrics.rb +0 -105
  297. data/ruby/neo4j/driver/internal/metrics/internal_metrics.rb +0 -82
  298. data/ruby/neo4j/driver/internal/metrics/internal_metrics_provider.rb +0 -18
  299. data/ruby/neo4j/driver/internal/metrics/listener_event.rb +0 -17
  300. data/ruby/neo4j/driver/internal/metrics/metrics_provider.rb +0 -24
  301. data/ruby/neo4j/driver/internal/metrics/time_recorder_listener_event.rb +0 -15
  302. data/ruby/neo4j/driver/internal/packstream/byte_array_incompatible_packer.rb +0 -12
  303. data/ruby/neo4j/driver/internal/packstream/pack_input.rb +0 -47
  304. data/ruby/neo4j/driver/internal/packstream/pack_output.rb +0 -39
  305. data/ruby/neo4j/driver/internal/packstream/pack_stream.rb +0 -324
  306. data/ruby/neo4j/driver/internal/packstream/pack_type.rb +0 -17
  307. data/ruby/neo4j/driver/internal/read_only_bookmark_holder.rb +0 -13
  308. data/ruby/neo4j/driver/internal/resolved_bolt_server_address.rb +0 -35
  309. data/ruby/neo4j/driver/internal/retry/exponential_backoff_retry_logic.rb +0 -150
  310. data/ruby/neo4j/driver/internal/revocation_strategy.rb +0 -19
  311. data/ruby/neo4j/driver/internal/scheme.rb +0 -32
  312. data/ruby/neo4j/driver/internal/security/internal_auth_token.rb +0 -15
  313. data/ruby/neo4j/driver/internal/security/security_plan_impl.rb +0 -48
  314. data/ruby/neo4j/driver/internal/security_setting.rb +0 -66
  315. data/ruby/neo4j/driver/internal/session_factory_impl.rb +0 -32
  316. data/ruby/neo4j/driver/internal/spi/connection.rb +0 -19
  317. data/ruby/neo4j/driver/internal/spi/connection_pool.rb +0 -9
  318. data/ruby/neo4j/driver/internal/spi/response_handler.rb +0 -23
  319. data/ruby/neo4j/driver/internal/summary/internal_database_info.rb +0 -7
  320. data/ruby/neo4j/driver/internal/summary/internal_input_position.rb +0 -11
  321. data/ruby/neo4j/driver/internal/summary/internal_notification.rb +0 -16
  322. data/ruby/neo4j/driver/internal/summary/internal_plan.rb +0 -41
  323. data/ruby/neo4j/driver/internal/summary/internal_profiled_plan.rb +0 -32
  324. data/ruby/neo4j/driver/internal/summary/internal_result_summary.rb +0 -33
  325. data/ruby/neo4j/driver/internal/summary/internal_server_info.rb +0 -6
  326. data/ruby/neo4j/driver/internal/summary/internal_summary_counters.rb +0 -18
  327. data/ruby/neo4j/driver/internal/svm/netty_substitutions.rb +0 -196
  328. data/ruby/neo4j/driver/internal/svm/z_lib_substitutions.rb +0 -21
  329. data/ruby/neo4j/driver/internal/util/certificate_tool.rb +0 -65
  330. data/ruby/neo4j/driver/internal/util/clock.rb +0 -29
  331. data/ruby/neo4j/driver/internal/util/error_util.rb +0 -104
  332. data/ruby/neo4j/driver/internal/util/extract.rb +0 -123
  333. data/ruby/neo4j/driver/internal/util/format.rb +0 -39
  334. data/ruby/neo4j/driver/internal/util/futures.rb +0 -99
  335. data/ruby/neo4j/driver/internal/util/iterables.rb +0 -35
  336. data/ruby/neo4j/driver/internal/util/lock_util.rb +0 -23
  337. data/ruby/neo4j/driver/internal/util/metadata_extractor.rb +0 -101
  338. data/ruby/neo4j/driver/internal/util/mutex.rb +0 -9
  339. data/ruby/neo4j/driver/internal/util/preconditions.rb +0 -16
  340. data/ruby/neo4j/driver/internal/util/result_holder.rb +0 -72
  341. data/ruby/neo4j/driver/internal/util/server_version.rb +0 -60
  342. data/ruby/neo4j/driver/logging1.rb +0 -51
  343. data/ruby/neo4j/driver/net/server_address.rb +0 -9
  344. data/ruby/neo4j/driver/query.rb +0 -48
  345. data/ruby/neo4j/driver/records.rb +0 -13
  346. data/ruby/neo4j/driver/transaction_config.rb +0 -50
  347. data/ruby/neo4j/driver/values.rb +0 -26
  348. data/ruby/neo4j/driver.rb +0 -30
@@ -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.bookmarks = Array(Util::MetadataExtractor.extract_bookmark(metadata)).to_set
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,9 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- class InternalBookmark < String
4
- include Bookmark
5
-
6
- def to_s = "Bookmark{value=#{super}}"
7
- end
8
- end
9
- 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
@@ -1,83 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- class InternalDriver
4
- extend AutoCloseable
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_closeable :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 execute_query(query, auth_token = nil, config = {}, **parameters)
29
- # TODO: auth_token not implemented yet
30
- session(**config.slice(:bookmarks, :database, :impersonated_user, :default_access_mode, :fetch_size)) do |session|
31
- session.run(query, parameters, config.slice(:timeout, :metadata)).then do
32
- EagerResultValue.new(it.keys, it.to_a, it.consume)
33
- end
34
- end
35
- end
36
-
37
- def encrypted?
38
- assert_open!
39
- @security_plan.requires_encryption?
40
- end
41
-
42
- def close
43
- close_async
44
- end
45
-
46
- def close_async
47
- return nil unless @closed.make_true
48
- @log.info { "Closing driver instance #{object_id}" }
49
- session_factory.close
50
- end
51
-
52
- def verify_connectivity_async
53
- session_factory.verify_connectivity
54
- end
55
-
56
- def supports_multi_db?
57
- supports_multi_db_async?
58
- end
59
-
60
- def supports_multi_db_async?
61
- session_factory.supports_multi_db?
62
- end
63
-
64
- def verify_connectivity
65
- verify_connectivity_async
66
- end
67
-
68
- def new_session(**config)
69
- assert_open!
70
- session_factory.new_instance(**config.compact)
71
- ensure
72
- # session does not immediately acquire connection, it is fine to just throw
73
- assert_open!
74
- end
75
-
76
- private
77
-
78
- def assert_open!
79
- raise Exceptions::IllegalStateException, 'This driver instance has already been closed' if @closed.true?
80
- end
81
- end
82
- end
83
- 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,91 +0,0 @@
1
- module Neo4j::Driver
2
- module Internal
3
- class InternalSession
4
- extend AutoCloseable
5
- extend Synchronizable
6
- # include Ext::RunOverride
7
- delegate :open?, :last_bookmarks, to: :@session
8
- auto_closeable :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
- Deprecator.log_warning(:read_transaction, :execute_read, '6.0')
42
- transaction(AccessMode::READ, **config, &block)
43
- end
44
-
45
- def write_transaction(**config, &block)
46
- Deprecator.log_warning(:write_transaction, :execute_write, '6.0')
47
- transaction(AccessMode::WRITE, **config, &block)
48
- end
49
-
50
- def execute_read(**config, &block)
51
- transaction(AccessMode::READ, **config, &block)
52
- end
53
-
54
- def execute_write(**config, &block)
55
- transaction(AccessMode::WRITE, **config, &block)
56
- end
57
-
58
- private
59
-
60
- def transaction(mode, **config)
61
- # use different code path compared to async so that work is executed in the caller thread
62
- # caller thread will also be the one who sleeps between retries;
63
- # it is unsafe to execute retries in the event loop threads because this can cause a deadlock
64
- # event loop thread will bock and wait for itself to read some data
65
- @session.retry_logic.retry do
66
- tx = private_begin_transaction(mode, **config)
67
- result = yield tx
68
- tx.commit if tx.open? # if a user has not explicitly committed or rolled back the transaction
69
- result
70
- ensure
71
- tx&.close
72
- end
73
- end
74
-
75
- def private_begin_transaction(mode, **config)
76
- tx = @session.begin_transaction_async(mode, **config) do
77
- terminate_connection_on_thread_interrupt("Thread interrupted while starting a transaction")
78
- end
79
- InternalTransaction.new(tx)
80
- end
81
-
82
- def terminate_connection_on_thread_interrupt(reason)
83
- connection = @session.connection_async
84
- rescue
85
- nil # ignore errors because handing interruptions is best effort
86
- ensure
87
- connection&.terminate_and_release(reason)
88
- end
89
- end
90
- end
91
- 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