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,34 +0,0 @@
|
|
|
1
|
-
module Neo4j::Driver
|
|
2
|
-
module Internal
|
|
3
|
-
module Handlers
|
|
4
|
-
class InitResponseHandler
|
|
5
|
-
include Spi::ResponseHandler
|
|
6
|
-
|
|
7
|
-
def initialize(connection_initialized_promise)
|
|
8
|
-
@connection_initialized_promise = connection_initialized_promise
|
|
9
|
-
@channel = connection_initialized_promise
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
def on_success(_metadata)
|
|
13
|
-
begin
|
|
14
|
-
server_version = Util::MetadataExtractor.extract_neo4j_server_version(metadata)
|
|
15
|
-
Async::Connection::ChannelAttributes.set_server_version(@channel, server_version)
|
|
16
|
-
|
|
17
|
-
@connection_initialized_promise.set_success
|
|
18
|
-
rescue StandardError => error
|
|
19
|
-
@connection_initialized_promise.set_failure(error)
|
|
20
|
-
raise error
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
def on_failure(error)
|
|
25
|
-
@channel.close.add_listener(-> (_future) { @connection_initialized_promise.set_failure(error) })
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def on_record(fields)
|
|
29
|
-
raise java.lang.UnsupportedOperationException
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
end
|
|
@@ -1,199 +0,0 @@
|
|
|
1
|
-
module Neo4j::Driver
|
|
2
|
-
module Internal
|
|
3
|
-
module Handlers
|
|
4
|
-
# This is the Pull All response handler that handles pull all messages in Bolt v3 and previous protocol versions.
|
|
5
|
-
class LegacyPullAllResponseHandler
|
|
6
|
-
include Spi::ResponseHandler
|
|
7
|
-
RECORD_BUFFER_LOW_WATERMARK = ENV['record_buffer_low_watermark']&.to_i || 300
|
|
8
|
-
RECORD_BUFFER_HIGH_WATERMARK = ENV['record_buffer_high_watermark']&.to_i || 1000
|
|
9
|
-
|
|
10
|
-
def initialize(query, run_response_handler, connection, metadata_extractor, completion_listener)
|
|
11
|
-
@query = Internal::Validator.require_non_nil!(query)
|
|
12
|
-
@run_response_handler = Internal::Validator.require_non_nil!(run_response_handler)
|
|
13
|
-
@metadata_extractor = Internal::Validator.require_non_nil!(metadata_extractor)
|
|
14
|
-
@connection = Internal::Validator.require_non_nil!(connection)
|
|
15
|
-
@completion_listener = Internal::Validator.require_non_nil!(completion_listener)
|
|
16
|
-
@records = ::Async::Queue.new
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def can_manage_auto_read?
|
|
20
|
-
true
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def on_success(metadata)
|
|
24
|
-
@finished = true
|
|
25
|
-
@summary = extract_result_summary(metadata)
|
|
26
|
-
|
|
27
|
-
@completion_listener.after_success(metadata)
|
|
28
|
-
|
|
29
|
-
complete_record_future(nil)
|
|
30
|
-
complete_failure_future(nil)
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def on_failure(error)
|
|
34
|
-
@finished = true
|
|
35
|
-
@summary = extract_result_summary({})
|
|
36
|
-
|
|
37
|
-
@completion_listener.after_failure(error)
|
|
38
|
-
|
|
39
|
-
failed_record_future = fail_record_future(error)
|
|
40
|
-
|
|
41
|
-
if failed_record_future
|
|
42
|
-
# error propagated through the record future
|
|
43
|
-
complete_failure_future(nil)
|
|
44
|
-
else
|
|
45
|
-
completed_failure_future = complete_failure_future(error)
|
|
46
|
-
|
|
47
|
-
# error has not been propagated to the user, remember it
|
|
48
|
-
@failure = error unless completed_failure_future
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
def on_record(fields)
|
|
53
|
-
if @ignore_records
|
|
54
|
-
complete_record_future(nil)
|
|
55
|
-
else
|
|
56
|
-
record = InternalRecord.new(@run_response_handler.query_keys, fields)
|
|
57
|
-
enqueue_record(record)
|
|
58
|
-
complete_record_future(record)
|
|
59
|
-
end
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
def disable_auto_read_management
|
|
63
|
-
@auto_read_management_enabled = false
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
def peek_async
|
|
67
|
-
while @records.empty? && !(@ignore_records || @finished)
|
|
68
|
-
@records.wait
|
|
69
|
-
end
|
|
70
|
-
@records.items.first&.then(&Util::ResultHolder.method(:successful)) or
|
|
71
|
-
@failure ? Util::ResultHolder.failed(extract_failure) : Util::ResultHolder.successful(nil)
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
def next_async
|
|
75
|
-
peek_async.then { |record| dequeue_record if record }
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
def consume_async
|
|
79
|
-
@ignore_records = true
|
|
80
|
-
@records.items.clear
|
|
81
|
-
pull_all_failure_async.result!&.then(&Util::ResultHolder.method(:failed)) or
|
|
82
|
-
Util::ResultHolder.successful(@summary)
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
def list_async(&block)
|
|
86
|
-
pull_all_failure_async.then do |error|
|
|
87
|
-
raise error if error
|
|
88
|
-
unless @finished
|
|
89
|
-
raise Exceptions::IllegalStateException, "Can't get records as list because SUCCESS or FAILURE did not arrive"
|
|
90
|
-
end
|
|
91
|
-
@records.items.map(&block)
|
|
92
|
-
ensure
|
|
93
|
-
@records.items.clear
|
|
94
|
-
end
|
|
95
|
-
end
|
|
96
|
-
|
|
97
|
-
def pre_populate_records
|
|
98
|
-
@connection.write_and_flush(Messaging::Request::PullAllMessage::PULL_ALL, self)
|
|
99
|
-
end
|
|
100
|
-
|
|
101
|
-
def pull_all_failure_async
|
|
102
|
-
if @failure
|
|
103
|
-
Util::ResultHolder.successful(extract_failure)
|
|
104
|
-
elsif @finished
|
|
105
|
-
Util::ResultHolder.successful
|
|
106
|
-
else
|
|
107
|
-
(@failed_future ||= Util::ResultHolder.new).tap do |_|
|
|
108
|
-
# neither SUCCESS nor FAILURE message has arrived, register future to be notified when it arrives
|
|
109
|
-
# future will be completed with null on SUCCESS and completed with Throwable on FAILURE
|
|
110
|
-
# enable auto-read, otherwise we might not read SUCCESS/FAILURE if records are not consumed
|
|
111
|
-
enable_auto_read
|
|
112
|
-
end
|
|
113
|
-
end
|
|
114
|
-
end
|
|
115
|
-
|
|
116
|
-
private
|
|
117
|
-
|
|
118
|
-
def enqueue_record(record)
|
|
119
|
-
@records << record
|
|
120
|
-
|
|
121
|
-
should_buffer_all_records = !@failure_future.nil?
|
|
122
|
-
|
|
123
|
-
# when failure is requested we have to buffer all remaining records and then return the error
|
|
124
|
-
# do not disable auto-read in this case, otherwise records will not be consumed and trailing
|
|
125
|
-
# SUCCESS or FAILURE message will not arrive as well, so callers will get stuck waiting for the error
|
|
126
|
-
if !should_buffer_all_records && @records.size > RECORD_BUFFER_HIGH_WATERMARK
|
|
127
|
-
# more than high watermark records are already queued, tell connection to stop auto-reading from network
|
|
128
|
-
# this is needed to deal with slow consumers, we do not want to buffer all records in memory if they are
|
|
129
|
-
# fetched from network faster than consumed
|
|
130
|
-
disable_auto_read
|
|
131
|
-
end
|
|
132
|
-
end
|
|
133
|
-
|
|
134
|
-
def dequeue_record
|
|
135
|
-
record = @records.dequeue
|
|
136
|
-
|
|
137
|
-
if @records.size < RECORD_BUFFER_LOW_WATERMARK
|
|
138
|
-
# less than low watermark records are now available in the buffer, tell connection to pre-fetch more
|
|
139
|
-
# and populate queue with new records from network
|
|
140
|
-
enable_auto_read
|
|
141
|
-
end
|
|
142
|
-
|
|
143
|
-
record
|
|
144
|
-
end
|
|
145
|
-
|
|
146
|
-
def records_as_list(map_function)
|
|
147
|
-
unless @finished
|
|
148
|
-
raise Exceptions::IllegalStateException, "Can't get records as list because SUCCESS or FAILURE did not arrive"
|
|
149
|
-
end
|
|
150
|
-
|
|
151
|
-
result = []
|
|
152
|
-
|
|
153
|
-
@records.each do |record|
|
|
154
|
-
result << map_function.apply(record)
|
|
155
|
-
end
|
|
156
|
-
|
|
157
|
-
@records.items.clear
|
|
158
|
-
result
|
|
159
|
-
end
|
|
160
|
-
|
|
161
|
-
def extract_failure
|
|
162
|
-
@failure or raise Exceptions::IllegalStateException, "Can't extract failure because it does not exist"
|
|
163
|
-
ensure
|
|
164
|
-
@failure = nil # propagate failure only once
|
|
165
|
-
end
|
|
166
|
-
|
|
167
|
-
def complete_record_future(record)
|
|
168
|
-
@record_future&.succeed(record)
|
|
169
|
-
@record_future = nil
|
|
170
|
-
end
|
|
171
|
-
|
|
172
|
-
def fail_record_future(error)
|
|
173
|
-
@record_future&.fail(error)
|
|
174
|
-
ensure
|
|
175
|
-
@record_future = nil
|
|
176
|
-
end
|
|
177
|
-
|
|
178
|
-
def complete_failure_future(error)
|
|
179
|
-
@failure_future&.fail(error)
|
|
180
|
-
ensure
|
|
181
|
-
@failure_future = nil
|
|
182
|
-
end
|
|
183
|
-
|
|
184
|
-
def extract_result_summary(metadata)
|
|
185
|
-
result_available_after = @run_response_handler.result_available_after
|
|
186
|
-
@metadata_extractor.extract_summary(@query, @connection, result_available_after, metadata)
|
|
187
|
-
end
|
|
188
|
-
|
|
189
|
-
def enable_auto_read
|
|
190
|
-
@connection.enable_auto_read if @auto_read_management_enabled
|
|
191
|
-
end
|
|
192
|
-
|
|
193
|
-
def disable_auto_read
|
|
194
|
-
@connection.disable_auto_read if @auto_read_management_enabled
|
|
195
|
-
end
|
|
196
|
-
end
|
|
197
|
-
end
|
|
198
|
-
end
|
|
199
|
-
end
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
module Neo4j::Driver
|
|
2
|
-
module Internal
|
|
3
|
-
module Handlers
|
|
4
|
-
class NoOpResponseHandler
|
|
5
|
-
include Spi::ResponseHandler
|
|
6
|
-
INSTANCE = new
|
|
7
|
-
|
|
8
|
-
def on_success(metadata) end
|
|
9
|
-
|
|
10
|
-
def on_failure(error) end
|
|
11
|
-
|
|
12
|
-
def on_record(fields) end
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
end
|
|
16
|
-
end
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
module Neo4j::Driver
|
|
2
|
-
module Internal
|
|
3
|
-
module Handlers
|
|
4
|
-
class PingResponseHandler
|
|
5
|
-
include Spi::ResponseHandler
|
|
6
|
-
|
|
7
|
-
def initialize(result, channel, logger)
|
|
8
|
-
@result = result
|
|
9
|
-
@channel = channel
|
|
10
|
-
@log = logger
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
def on_success(_metadata)
|
|
14
|
-
@log.debug("Channel #{@channel} pinged successfully")
|
|
15
|
-
@result.set_success(true)
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def on_failure(error)
|
|
19
|
-
@log.debug("Channel #{@channel} failed ping #{error}")
|
|
20
|
-
@result.set_success(false)
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def on_record(fields)
|
|
24
|
-
raise java.lang.UnsupportedOperationException
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
module Neo4j::Driver
|
|
2
|
-
module Internal
|
|
3
|
-
module Handlers
|
|
4
|
-
class PullHandlers
|
|
5
|
-
include Spi::ResponseHandler
|
|
6
|
-
|
|
7
|
-
class << self
|
|
8
|
-
def new_bolt_v3_pull_all_handler(query, run_handler, connection, bookmark_holder, tx)
|
|
9
|
-
completion_listener = create_pull_response_completion_listener(connection, bookmark_holder, tx)
|
|
10
|
-
LegacyPullAllResponseHandler.new(query, run_handler, connection, Messaging::V3::BoltProtocolV3::METADATA_EXTRACTOR, completion_listener)
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
def new_bolt_v4_auto_pull_handler(query, run_handler, connection, bookmark_holder, tx, fetch_size)
|
|
14
|
-
completion_listener = create_pull_response_completion_listener(connection, bookmark_holder, tx)
|
|
15
|
-
Pulln::AutoPullResponseHandler.new(query, run_handler, connection, Messaging::V3::BoltProtocolV3::METADATA_EXTRACTOR, completion_listener, fetch_size)
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def new_bolt_v4_basic_pull_handler(query, run_handler, connection, bookmark_holder, tx)
|
|
19
|
-
completion_listener = create_pull_response_completion_listener(connection, bookmark_holder, tx)
|
|
20
|
-
Pulln::BasicPullResponseHandler.new(query, run_handler, connection, Messaging::V3::BoltProtocolV3::METADATA_EXTRACTOR, completion_listener)
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
private
|
|
24
|
-
|
|
25
|
-
def create_pull_response_completion_listener(connection, bookmark_holder, tx)
|
|
26
|
-
tx.nil? ? SessionPullResponseCompletionListener.new(connection, bookmark_holder) : TransactionPullResponseCompletionListener.new(tx)
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
end
|
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
module Neo4j::Driver
|
|
2
|
-
module Internal
|
|
3
|
-
module Handlers
|
|
4
|
-
module Pulln
|
|
5
|
-
class AutoPullResponseHandler < BasicPullResponseHandler
|
|
6
|
-
delegate :signal, to: :@records
|
|
7
|
-
LONG_MAX_VALUE = 2 ** 63 - 1
|
|
8
|
-
|
|
9
|
-
def initialize(query, run_response_handler, connection, metadata_extractor, completion_listener, fetch_size)
|
|
10
|
-
super(query, run_response_handler, connection, metadata_extractor, completion_listener)
|
|
11
|
-
@fetch_size = fetch_size
|
|
12
|
-
|
|
13
|
-
# For pull everything ensure conditions for disabling auto pull are never met
|
|
14
|
-
if fetch_size == FetchSizeUtil::UNLIMITED_FETCH_SIZE
|
|
15
|
-
@high_record_watermark = LONG_MAX_VALUE
|
|
16
|
-
@low_record_watermark = LONG_MAX_VALUE
|
|
17
|
-
else
|
|
18
|
-
@high_record_watermark = fetch_size * 0.7
|
|
19
|
-
@low_record_watermark = fetch_size * 0.3
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
@records = ::Async::Queue.new
|
|
23
|
-
@auto_pull_enabled = true
|
|
24
|
-
|
|
25
|
-
install_record_and_summary_consumers
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
private def install_record_and_summary_consumers
|
|
29
|
-
install_record_consumer do |record, error|
|
|
30
|
-
if record
|
|
31
|
-
enqueue_record(record)
|
|
32
|
-
complete_record_future(record)
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
# if !error.nil? Handled by summary.error already
|
|
36
|
-
if record.nil? && error.nil?
|
|
37
|
-
# complete
|
|
38
|
-
complete_record_future(nil)
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
install_summary_consumer do |summary, error|
|
|
43
|
-
handle_failure(error) if error
|
|
44
|
-
|
|
45
|
-
if summary
|
|
46
|
-
@summary = summary
|
|
47
|
-
complete_summary_future(summary)
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
if error.nil? && summary.nil? # has_more
|
|
51
|
-
request(@fetch_size) if @auto_pull_enabled
|
|
52
|
-
end
|
|
53
|
-
end
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
private def handle_failure(error)
|
|
57
|
-
# error has not been propagated to the user, remember it
|
|
58
|
-
unless fail_record_future(error) || fail_summary_future(error)
|
|
59
|
-
@failure = error
|
|
60
|
-
end
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
def peek_async
|
|
64
|
-
while @records.empty? && !done?
|
|
65
|
-
@records.wait
|
|
66
|
-
end
|
|
67
|
-
@records.items.first&.then(&Util::ResultHolder.method(:successful)) or
|
|
68
|
-
completed_with_value_if_no_failure(nil)
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
def next_async
|
|
72
|
-
peek_async.then { |record| dequeue_record if record }
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
def consume_async
|
|
76
|
-
@records.items.clear
|
|
77
|
-
cancel unless done?
|
|
78
|
-
completed_with_value_if_no_failure(@summary)
|
|
79
|
-
end
|
|
80
|
-
|
|
81
|
-
def list_async(&block)
|
|
82
|
-
pull_all_async.then do
|
|
83
|
-
unless done?
|
|
84
|
-
raise Exceptions::IllegalStateException, "Can't get records as list because SUCCESS or FAILURE did not arrive"
|
|
85
|
-
end
|
|
86
|
-
@records.items.map(&block)
|
|
87
|
-
ensure
|
|
88
|
-
@records.items.clear
|
|
89
|
-
end
|
|
90
|
-
end
|
|
91
|
-
|
|
92
|
-
def pull_all_failure_async
|
|
93
|
-
pull_all_async.chain { |_, error| error }
|
|
94
|
-
end
|
|
95
|
-
|
|
96
|
-
def pre_populate_records
|
|
97
|
-
request(@fetch_size)
|
|
98
|
-
end
|
|
99
|
-
|
|
100
|
-
private
|
|
101
|
-
|
|
102
|
-
def pull_all_async
|
|
103
|
-
return completed_with_value_if_no_failure(@summary) if done?
|
|
104
|
-
(@summary_future ||= Util::ResultHolder.new).tap do |_|
|
|
105
|
-
request(FetchSizeUtil::UNLIMITED_FETCH_SIZE)
|
|
106
|
-
end
|
|
107
|
-
end
|
|
108
|
-
|
|
109
|
-
def enqueue_record(record)
|
|
110
|
-
@records << record
|
|
111
|
-
|
|
112
|
-
# too many records in the queue, pause auto request gathering
|
|
113
|
-
@auto_pull_enabled = false if @records.size > @high_record_watermark
|
|
114
|
-
end
|
|
115
|
-
|
|
116
|
-
def dequeue_record
|
|
117
|
-
record = @records.dequeue
|
|
118
|
-
|
|
119
|
-
if @records.size <= @low_record_watermark
|
|
120
|
-
# if not in streaming state we need to restart streaming
|
|
121
|
-
request(@fetch_size) if state != State::STREAMING_STATE
|
|
122
|
-
|
|
123
|
-
@auto_pull_enabled = true
|
|
124
|
-
end
|
|
125
|
-
|
|
126
|
-
record
|
|
127
|
-
end
|
|
128
|
-
|
|
129
|
-
def extract_failure
|
|
130
|
-
@failure or raise Exceptions::IllegalStateException, "Can't extract failure because it does not exist"
|
|
131
|
-
ensure
|
|
132
|
-
@failure = nil # propagate failure only once
|
|
133
|
-
end
|
|
134
|
-
|
|
135
|
-
def complete_record_future(record)
|
|
136
|
-
@record_future&.succeed(record)
|
|
137
|
-
@record_future = nil
|
|
138
|
-
end
|
|
139
|
-
|
|
140
|
-
def complete_summary_future(summary)
|
|
141
|
-
@summary_future&.succeed(summary)
|
|
142
|
-
@summary_future = nil
|
|
143
|
-
end
|
|
144
|
-
|
|
145
|
-
def fail_record_future(error)
|
|
146
|
-
@record_future&.fail(error)
|
|
147
|
-
ensure
|
|
148
|
-
@record_future = nil
|
|
149
|
-
end
|
|
150
|
-
|
|
151
|
-
def fail_summary_future(error)
|
|
152
|
-
@summary_future&.fail(error)
|
|
153
|
-
ensure
|
|
154
|
-
@summary_future = nil
|
|
155
|
-
end
|
|
156
|
-
|
|
157
|
-
def completed_with_value_if_no_failure(value)
|
|
158
|
-
if @failure
|
|
159
|
-
Util::ResultHolder.failed(extract_failure)
|
|
160
|
-
else
|
|
161
|
-
Util::ResultHolder.successful(value)
|
|
162
|
-
end
|
|
163
|
-
end
|
|
164
|
-
end
|
|
165
|
-
end
|
|
166
|
-
end
|
|
167
|
-
end
|
|
168
|
-
end
|