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.
- checksums.yaml +4 -4
- data/README.md +440 -40
- data/jruby/neo4j/driver/ext/async_converter.rb +55 -0
- data/jruby/neo4j/driver/ext/auth_tokens.rb +20 -0
- data/jruby/neo4j/driver/ext/config_converter.rb +83 -0
- data/jruby/neo4j/driver/ext/exception_checkable.rb +34 -0
- data/jruby/neo4j/driver/ext/exception_mapper.rb +92 -0
- data/jruby/neo4j/driver/ext/graph_database.rb +33 -0
- data/jruby/neo4j/driver/ext/internal/abstract_query_runner.rb +18 -0
- data/jruby/neo4j/driver/ext/internal/async/internal_async_session.rb +23 -0
- data/jruby/neo4j/driver/ext/internal/cluster/routing_table_registry_impl.rb +15 -0
- data/jruby/neo4j/driver/ext/internal/cursor/disposable_async_result_cursor.rb +15 -0
- data/jruby/neo4j/driver/ext/internal/driver_factory.rb +24 -0
- data/jruby/neo4j/driver/ext/internal/eager_result_value.rb +17 -0
- data/jruby/neo4j/driver/ext/internal/metrics/internal_connection_pool_metrics.rb +17 -0
- data/jruby/neo4j/driver/ext/internal/summary/internal_notification.rb +27 -0
- data/jruby/neo4j/driver/ext/internal/summary/internal_plan.rb +26 -0
- data/jruby/neo4j/driver/ext/internal/summary/internal_result_summary.rb +34 -0
- data/jruby/neo4j/driver/ext/internal_driver.rb +52 -0
- data/jruby/neo4j/driver/ext/internal_entity.rb +21 -0
- data/jruby/neo4j/driver/ext/internal_keys.rb +15 -0
- data/jruby/neo4j/driver/ext/internal_node.rb +13 -0
- data/jruby/neo4j/driver/ext/internal_record.rb +29 -0
- data/jruby/neo4j/driver/ext/internal_relationship.rb +13 -0
- data/jruby/neo4j/driver/ext/internal_result.rb +27 -0
- data/jruby/neo4j/driver/ext/internal_session.rb +44 -0
- data/jruby/neo4j/driver/ext/internal_transaction.rb +19 -0
- data/jruby/neo4j/driver/ext/logger.rb +60 -0
- data/jruby/neo4j/driver/ext/map_converter.rb +14 -0
- data/jruby/neo4j/driver/ext/neo_converter.rb +59 -0
- data/jruby/neo4j/driver/ext/query.rb +13 -0
- data/jruby/neo4j/driver/ext/ruby_converter.rb +57 -0
- data/jruby/neo4j/driver/ext/run_override.rb +22 -0
- data/jruby/neo4j/driver/ext/start_end_naming.rb +17 -0
- data/{ruby → jruby}/neo4j/driver/version.rb +1 -1
- data/jruby/neo4j/driver.rb +62 -0
- data/lib/neo4j/driver/{auto_closable.rb → auto_closeable.rb} +6 -6
- data/lib/neo4j/driver/exceptions/neo4j_exception.rb +6 -6
- data/lib/neo4j/driver/internal/deprecator.rb +15 -0
- metadata +91 -277
- data/ruby/neo4j/driver/access_mode.rb +0 -10
- data/ruby/neo4j/driver/auth_tokens.rb +0 -34
- data/ruby/neo4j/driver/bookmark.rb +0 -21
- data/ruby/neo4j/driver/config.rb +0 -89
- data/ruby/neo4j/driver/graph_database.rb +0 -78
- data/ruby/neo4j/driver/internal/async/connection/bolt_protocol_util.rb +0 -51
- data/ruby/neo4j/driver/internal/async/connection/bootstrap_factory.rb +0 -22
- data/ruby/neo4j/driver/internal/async/connection/channel_attributes.rb +0 -31
- data/ruby/neo4j/driver/internal/async/connection/channel_connected_listener.rb +0 -32
- data/ruby/neo4j/driver/internal/async/connection/channel_connector_impl.rb +0 -83
- data/ruby/neo4j/driver/internal/async/connection/channel_pipeline_builder_impl.rb +0 -22
- data/ruby/neo4j/driver/internal/async/connection/direct_connection.rb +0 -30
- data/ruby/neo4j/driver/internal/async/connection/event_loop_group_factory.rb +0 -83
- data/ruby/neo4j/driver/internal/async/connection/handshake_completed_listener.rb +0 -27
- data/ruby/neo4j/driver/internal/async/connection/handshake_handler.rb +0 -113
- data/ruby/neo4j/driver/internal/async/connection/netty_channel_initializer.rb +0 -57
- data/ruby/neo4j/driver/internal/async/connection/netty_domain_name_resolver.rb +0 -26
- data/ruby/neo4j/driver/internal/async/connection/netty_domain_name_resolver_group.rb +0 -19
- data/ruby/neo4j/driver/internal/async/connection/routing_connection.rb +0 -36
- data/ruby/neo4j/driver/internal/async/connection/stream.rb +0 -12
- data/ruby/neo4j/driver/internal/async/connection/stream_reader.rb +0 -16
- data/ruby/neo4j/driver/internal/async/connection_context.rb +0 -10
- data/ruby/neo4j/driver/internal/async/immutable_connection_context.rb +0 -24
- data/ruby/neo4j/driver/internal/async/inbound/byte_buf_input.rb +0 -30
- data/ruby/neo4j/driver/internal/async/inbound/channel_error_handler.rb +0 -77
- data/ruby/neo4j/driver/internal/async/inbound/chunk_decoder.rb +0 -41
- data/ruby/neo4j/driver/internal/async/inbound/connect_timeout_handler.rb +0 -32
- data/ruby/neo4j/driver/internal/async/inbound/connection_read_timeout_handler.rb +0 -17
- data/ruby/neo4j/driver/internal/async/inbound/inbound_message_dispatcher.rb +0 -171
- data/ruby/neo4j/driver/internal/async/inbound/inbound_message_handler.rb +0 -42
- data/ruby/neo4j/driver/internal/async/inbound/message_decoder.rb +0 -51
- data/ruby/neo4j/driver/internal/async/internal_async_session.rb +0 -98
- data/ruby/neo4j/driver/internal/async/internal_async_transaction.rb +0 -13
- data/ruby/neo4j/driver/internal/async/leak_logging_network_session.rb +0 -34
- data/ruby/neo4j/driver/internal/async/network_connection.rb +0 -194
- data/ruby/neo4j/driver/internal/async/network_session.rb +0 -150
- data/ruby/neo4j/driver/internal/async/outbound/chunk_aware_byte_buf_output.rb +0 -110
- data/ruby/neo4j/driver/internal/async/outbound/outbound_message_handler.rb +0 -39
- data/ruby/neo4j/driver/internal/async/pool/channel.rb +0 -66
- data/ruby/neo4j/driver/internal/async/pool/channel_pool.rb +0 -31
- data/ruby/neo4j/driver/internal/async/pool/channel_tracker.rb +0 -135
- data/ruby/neo4j/driver/internal/async/pool/connection_pool_impl.rb +0 -156
- data/ruby/neo4j/driver/internal/async/pool/netty_channel_health_checker.rb +0 -87
- data/ruby/neo4j/driver/internal/async/pool/netty_channel_pool.rb +0 -52
- data/ruby/neo4j/driver/internal/async/pool/network_connection_factory.rb +0 -21
- data/ruby/neo4j/driver/internal/async/pool/pool_settings.rb +0 -34
- data/ruby/neo4j/driver/internal/async/pool/timed_stack.rb +0 -15
- data/ruby/neo4j/driver/internal/async/result_cursors_holder.rb +0 -17
- data/ruby/neo4j/driver/internal/async/unmanaged_transaction.rb +0 -212
- data/ruby/neo4j/driver/internal/bookmark_holder.rb +0 -9
- data/ruby/neo4j/driver/internal/cluster/cluster_composition.rb +0 -48
- data/ruby/neo4j/driver/internal/cluster/cluster_composition_lookup_result.rb +0 -14
- data/ruby/neo4j/driver/internal/cluster/cluster_routing_table.rb +0 -122
- data/ruby/neo4j/driver/internal/cluster/identity_resolver.rb +0 -10
- data/ruby/neo4j/driver/internal/cluster/loadbalancing/least_connected_load_balancing_strategy.rb +0 -68
- data/ruby/neo4j/driver/internal/cluster/loadbalancing/load_balancer.rb +0 -125
- data/ruby/neo4j/driver/internal/cluster/loadbalancing/round_robin_array_index.rb +0 -13
- data/ruby/neo4j/driver/internal/cluster/multi_databases_routing_procedure_runner.rb +0 -31
- data/ruby/neo4j/driver/internal/cluster/rediscovery_impl.rb +0 -147
- data/ruby/neo4j/driver/internal/cluster/route_message_routing_procedure_runner.rb +0 -43
- data/ruby/neo4j/driver/internal/cluster/routing_context.rb +0 -77
- data/ruby/neo4j/driver/internal/cluster/routing_procedure_cluster_composition_provider.rb +0 -60
- data/ruby/neo4j/driver/internal/cluster/routing_procedure_response.rb +0 -35
- data/ruby/neo4j/driver/internal/cluster/routing_settings.rb +0 -24
- data/ruby/neo4j/driver/internal/cluster/routing_table_handler_impl.rb +0 -95
- data/ruby/neo4j/driver/internal/cluster/routing_table_registry_impl.rb +0 -121
- data/ruby/neo4j/driver/internal/cluster/single_database_routing_procedure_runner.rb +0 -73
- data/ruby/neo4j/driver/internal/connection_settings.rb +0 -16
- data/ruby/neo4j/driver/internal/cursor/async_result_cursor_impl.rb +0 -55
- data/ruby/neo4j/driver/internal/cursor/async_result_cursor_only_factory.rb +0 -24
- data/ruby/neo4j/driver/internal/cursor/disposable_async_result_cursor.rb +0 -61
- data/ruby/neo4j/driver/internal/cursor/result_cursor_factory_impl.rb +0 -24
- data/ruby/neo4j/driver/internal/cursor/rx_result_cursor_impl.rb +0 -110
- data/ruby/neo4j/driver/internal/database_name_util.rb +0 -37
- data/ruby/neo4j/driver/internal/default_bookmark_holder.rb +0 -9
- data/ruby/neo4j/driver/internal/default_domain_name_resolver.rb +0 -11
- data/ruby/neo4j/driver/internal/direct_connection_provider.rb +0 -40
- data/ruby/neo4j/driver/internal/driver_factory.rb +0 -126
- data/ruby/neo4j/driver/internal/handlers/begin_tx_response_handler.rb +0 -20
- data/ruby/neo4j/driver/internal/handlers/channel_releasing_reset_response_handler.rb +0 -30
- data/ruby/neo4j/driver/internal/handlers/commit_tx_response_handler.rb +0 -25
- data/ruby/neo4j/driver/internal/handlers/hello_response_handler.rb +0 -65
- data/ruby/neo4j/driver/internal/handlers/init_response_handler.rb +0 -34
- data/ruby/neo4j/driver/internal/handlers/legacy_pull_all_response_handler.rb +0 -199
- data/ruby/neo4j/driver/internal/handlers/no_op_response_handler.rb +0 -16
- data/ruby/neo4j/driver/internal/handlers/ping_response_handler.rb +0 -29
- data/ruby/neo4j/driver/internal/handlers/pull_handlers.rb +0 -32
- data/ruby/neo4j/driver/internal/handlers/pulln/auto_pull_response_handler.rb +0 -168
- data/ruby/neo4j/driver/internal/handlers/pulln/basic_pull_response_handler.rb +0 -298
- data/ruby/neo4j/driver/internal/handlers/pulln/fetch_size_util.rb +0 -20
- data/ruby/neo4j/driver/internal/handlers/reset_response_handler.rb +0 -34
- data/ruby/neo4j/driver/internal/handlers/rollback_tx_response_handler.rb +0 -25
- data/ruby/neo4j/driver/internal/handlers/route_message_response_handler.rb +0 -21
- data/ruby/neo4j/driver/internal/handlers/routing_response_handler.rb +0 -70
- data/ruby/neo4j/driver/internal/handlers/run_response_handler.rb +0 -38
- data/ruby/neo4j/driver/internal/handlers/session_pull_response_completion_listener.rb +0 -34
- data/ruby/neo4j/driver/internal/handlers/transaction_pull_response_completion_listener.rb +0 -20
- data/ruby/neo4j/driver/internal/impersonation_util.rb +0 -22
- data/ruby/neo4j/driver/internal/internal_bookmark.rb +0 -36
- data/ruby/neo4j/driver/internal/internal_database_name.rb +0 -9
- data/ruby/neo4j/driver/internal/internal_driver.rb +0 -74
- data/ruby/neo4j/driver/internal/internal_entity.rb +0 -21
- data/ruby/neo4j/driver/internal/internal_node.rb +0 -21
- data/ruby/neo4j/driver/internal/internal_pair.rb +0 -9
- data/ruby/neo4j/driver/internal/internal_path.rb +0 -35
- data/ruby/neo4j/driver/internal/internal_point2_d.rb +0 -9
- data/ruby/neo4j/driver/internal/internal_point3_d.rb +0 -6
- data/ruby/neo4j/driver/internal/internal_record.rb +0 -27
- data/ruby/neo4j/driver/internal/internal_relationship.rb +0 -27
- data/ruby/neo4j/driver/internal/internal_result.rb +0 -49
- data/ruby/neo4j/driver/internal/internal_session.rb +0 -81
- data/ruby/neo4j/driver/internal/internal_transaction.rb +0 -48
- data/ruby/neo4j/driver/internal/logging/channel_activity_logger.rb +0 -29
- data/ruby/neo4j/driver/internal/logging/channel_error_logger.rb +0 -17
- data/ruby/neo4j/driver/internal/logging/prefixed_logger.rb +0 -19
- data/ruby/neo4j/driver/internal/logging/reformatted_logger.rb +0 -17
- data/ruby/neo4j/driver/internal/messaging/abstract_message_writer.rb +0 -23
- data/ruby/neo4j/driver/internal/messaging/bolt_protocol.rb +0 -32
- data/ruby/neo4j/driver/internal/messaging/bolt_protocol_version.rb +0 -48
- data/ruby/neo4j/driver/internal/messaging/common/common_message_reader.rb +0 -51
- data/ruby/neo4j/driver/internal/messaging/common/common_value.rb +0 -33
- data/ruby/neo4j/driver/internal/messaging/common/common_value_packer.rb +0 -104
- data/ruby/neo4j/driver/internal/messaging/common/common_value_unpacker.rb +0 -256
- data/ruby/neo4j/driver/internal/messaging/encode/begin_message_encoder.rb +0 -15
- data/ruby/neo4j/driver/internal/messaging/encode/commit_message_encoder.rb +0 -14
- data/ruby/neo4j/driver/internal/messaging/encode/discard_all_message_encoder.rb +0 -14
- data/ruby/neo4j/driver/internal/messaging/encode/discard_message_encoder.rb +0 -15
- data/ruby/neo4j/driver/internal/messaging/encode/goodbye_message_encoder.rb +0 -14
- data/ruby/neo4j/driver/internal/messaging/encode/hello_message_encoder.rb +0 -15
- data/ruby/neo4j/driver/internal/messaging/encode/init_message_encoder.rb +0 -16
- data/ruby/neo4j/driver/internal/messaging/encode/logoff_message_encoder.rb +0 -14
- data/ruby/neo4j/driver/internal/messaging/encode/logon_message_encoder.rb +0 -15
- data/ruby/neo4j/driver/internal/messaging/encode/pull_all_message_encoder.rb +0 -14
- data/ruby/neo4j/driver/internal/messaging/encode/pull_message_encoder.rb +0 -15
- data/ruby/neo4j/driver/internal/messaging/encode/reset_message_encoder.rb +0 -14
- data/ruby/neo4j/driver/internal/messaging/encode/rollback_message_encoder.rb +0 -14
- data/ruby/neo4j/driver/internal/messaging/encode/route_message_encoder.rb +0 -24
- data/ruby/neo4j/driver/internal/messaging/encode/route_v44_message_encoder.rb +0 -22
- data/ruby/neo4j/driver/internal/messaging/encode/run_message_encoder.rb +0 -16
- data/ruby/neo4j/driver/internal/messaging/encode/run_with_metadata_message_encoder.rb +0 -17
- data/ruby/neo4j/driver/internal/messaging/request/abstract_streaming_message.rb +0 -25
- data/ruby/neo4j/driver/internal/messaging/request/begin_message.rb +0 -25
- data/ruby/neo4j/driver/internal/messaging/request/commit_message.rb +0 -20
- data/ruby/neo4j/driver/internal/messaging/request/discard_all_message.rb +0 -20
- data/ruby/neo4j/driver/internal/messaging/request/discard_message.rb +0 -23
- data/ruby/neo4j/driver/internal/messaging/request/goodbye_message.rb +0 -20
- data/ruby/neo4j/driver/internal/messaging/request/hello_message.rb +0 -30
- data/ruby/neo4j/driver/internal/messaging/request/init_message.rb +0 -19
- data/ruby/neo4j/driver/internal/messaging/request/logoff_message.rb +0 -13
- data/ruby/neo4j/driver/internal/messaging/request/logon_message.rb +0 -13
- data/ruby/neo4j/driver/internal/messaging/request/message_with_metadata.rb +0 -17
- data/ruby/neo4j/driver/internal/messaging/request/multi_database_util.rb +0 -26
- data/ruby/neo4j/driver/internal/messaging/request/pull_all_message.rb +0 -23
- data/ruby/neo4j/driver/internal/messaging/request/pull_message.rb +0 -22
- data/ruby/neo4j/driver/internal/messaging/request/reset_message.rb +0 -32
- data/ruby/neo4j/driver/internal/messaging/request/rollback_message.rb +0 -20
- data/ruby/neo4j/driver/internal/messaging/request/route_message.rb +0 -28
- data/ruby/neo4j/driver/internal/messaging/request/run_message.rb +0 -23
- data/ruby/neo4j/driver/internal/messaging/request/run_with_metadata_message.rb +0 -49
- data/ruby/neo4j/driver/internal/messaging/request/transaction_metadata_builder.rb +0 -24
- data/ruby/neo4j/driver/internal/messaging/response/failure_message.rb +0 -40
- data/ruby/neo4j/driver/internal/messaging/response/ignored_message.rb +0 -29
- data/ruby/neo4j/driver/internal/messaging/response/record_message.rb +0 -33
- data/ruby/neo4j/driver/internal/messaging/response/success_message.rb +0 -34
- data/ruby/neo4j/driver/internal/messaging/v3/bolt_protocol_v3.rb +0 -82
- data/ruby/neo4j/driver/internal/messaging/v3/message_format_v3.rb +0 -17
- data/ruby/neo4j/driver/internal/messaging/v3/message_writer_v3.rb +0 -27
- data/ruby/neo4j/driver/internal/messaging/v4/bolt_protocol_v4.rb +0 -29
- data/ruby/neo4j/driver/internal/messaging/v4/message_format_v4.rb +0 -13
- data/ruby/neo4j/driver/internal/messaging/v4/message_writer_v4.rb +0 -17
- data/ruby/neo4j/driver/internal/messaging/v41/bolt_protocol_v41.rb +0 -25
- data/ruby/neo4j/driver/internal/messaging/v42/bolt_protocol_v42.rb +0 -13
- data/ruby/neo4j/driver/internal/messaging/v43/bolt_protocol_v43.rb +0 -19
- data/ruby/neo4j/driver/internal/messaging/v43/message_format_v43.rb +0 -14
- data/ruby/neo4j/driver/internal/messaging/v43/message_writer_v43.rb +0 -20
- data/ruby/neo4j/driver/internal/messaging/v44/bolt_protocol_v44.rb +0 -17
- data/ruby/neo4j/driver/internal/messaging/v44/message_format_v44.rb +0 -14
- data/ruby/neo4j/driver/internal/messaging/v44/message_writer_v44.rb +0 -15
- data/ruby/neo4j/driver/internal/messaging/v5/bolt_protocol_v5.rb +0 -21
- data/ruby/neo4j/driver/internal/messaging/v5/message_format_v5.rb +0 -18
- data/ruby/neo4j/driver/internal/messaging/v5/value_unpacker_v5.rb +0 -17
- data/ruby/neo4j/driver/internal/messaging/v51/bolt_protocol_v51.rb +0 -40
- data/ruby/neo4j/driver/internal/messaging/v51/message_format_v51.rb +0 -14
- data/ruby/neo4j/driver/internal/messaging/v51/message_writer_v51.rb +0 -17
- data/ruby/neo4j/driver/internal/metrics/connection_pool_metrics_listener.rb +0 -34
- data/ruby/neo4j/driver/internal/metrics/internal_abstract_metrics.rb +0 -46
- data/ruby/neo4j/driver/internal/metrics/internal_connection_pool_metrics.rb +0 -105
- data/ruby/neo4j/driver/internal/metrics/internal_metrics.rb +0 -82
- data/ruby/neo4j/driver/internal/metrics/internal_metrics_provider.rb +0 -18
- data/ruby/neo4j/driver/internal/metrics/listener_event.rb +0 -17
- data/ruby/neo4j/driver/internal/metrics/metrics_provider.rb +0 -24
- data/ruby/neo4j/driver/internal/metrics/time_recorder_listener_event.rb +0 -15
- data/ruby/neo4j/driver/internal/packstream/byte_array_incompatible_packer.rb +0 -12
- data/ruby/neo4j/driver/internal/packstream/pack_input.rb +0 -47
- data/ruby/neo4j/driver/internal/packstream/pack_output.rb +0 -39
- data/ruby/neo4j/driver/internal/packstream/pack_stream.rb +0 -326
- data/ruby/neo4j/driver/internal/packstream/pack_type.rb +0 -17
- data/ruby/neo4j/driver/internal/read_only_bookmark_holder.rb +0 -13
- data/ruby/neo4j/driver/internal/resolved_bolt_server_address.rb +0 -35
- data/ruby/neo4j/driver/internal/retry/exponential_backoff_retry_logic.rb +0 -151
- data/ruby/neo4j/driver/internal/revocation_strategy.rb +0 -19
- data/ruby/neo4j/driver/internal/scheme.rb +0 -32
- data/ruby/neo4j/driver/internal/security/internal_auth_token.rb +0 -15
- data/ruby/neo4j/driver/internal/security/security_plan_impl.rb +0 -48
- data/ruby/neo4j/driver/internal/security_setting.rb +0 -66
- data/ruby/neo4j/driver/internal/session_factory_impl.rb +0 -32
- data/ruby/neo4j/driver/internal/spi/connection.rb +0 -19
- data/ruby/neo4j/driver/internal/spi/connection_pool.rb +0 -9
- data/ruby/neo4j/driver/internal/spi/response_handler.rb +0 -23
- data/ruby/neo4j/driver/internal/summary/internal_database_info.rb +0 -7
- data/ruby/neo4j/driver/internal/summary/internal_input_position.rb +0 -11
- data/ruby/neo4j/driver/internal/summary/internal_notification.rb +0 -16
- data/ruby/neo4j/driver/internal/summary/internal_plan.rb +0 -41
- data/ruby/neo4j/driver/internal/summary/internal_profiled_plan.rb +0 -32
- data/ruby/neo4j/driver/internal/summary/internal_result_summary.rb +0 -33
- data/ruby/neo4j/driver/internal/summary/internal_server_info.rb +0 -6
- data/ruby/neo4j/driver/internal/summary/internal_summary_counters.rb +0 -18
- data/ruby/neo4j/driver/internal/svm/netty_substitutions.rb +0 -196
- data/ruby/neo4j/driver/internal/svm/z_lib_substitutions.rb +0 -21
- data/ruby/neo4j/driver/internal/util/certificate_tool.rb +0 -65
- data/ruby/neo4j/driver/internal/util/clock.rb +0 -29
- data/ruby/neo4j/driver/internal/util/error_util.rb +0 -104
- data/ruby/neo4j/driver/internal/util/extract.rb +0 -123
- data/ruby/neo4j/driver/internal/util/format.rb +0 -39
- data/ruby/neo4j/driver/internal/util/futures.rb +0 -99
- data/ruby/neo4j/driver/internal/util/iterables.rb +0 -35
- data/ruby/neo4j/driver/internal/util/lock_util.rb +0 -23
- data/ruby/neo4j/driver/internal/util/metadata_extractor.rb +0 -107
- data/ruby/neo4j/driver/internal/util/mutex.rb +0 -9
- data/ruby/neo4j/driver/internal/util/preconditions.rb +0 -16
- data/ruby/neo4j/driver/internal/util/result_holder.rb +0 -72
- data/ruby/neo4j/driver/internal/util/server_version.rb +0 -60
- data/ruby/neo4j/driver/logging1.rb +0 -51
- data/ruby/neo4j/driver/net/server_address.rb +0 -9
- data/ruby/neo4j/driver/query.rb +0 -48
- data/ruby/neo4j/driver/records.rb +0 -13
- data/ruby/neo4j/driver/transaction_config.rb +0 -50
- data/ruby/neo4j/driver/values.rb +0 -26
- 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,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,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
|