lib/neo4j/session_manager.rb in neo4j-9.3.0 vs lib/neo4j/session_manager.rb in neo4j-9.4.0
- old
+ new
@@ -1,24 +1,27 @@
require 'active_support/core_ext/hash'
require 'active_support/ordered_options'
-require 'neo4j/core/cypher_session/adaptors/http'
-require 'neo4j/core/cypher_session/adaptors/bolt'
-require 'neo4j/core/cypher_session/adaptors/embedded'
module Neo4j
class SessionManager
class << self
def open_neo4j_session(type, url_or_path, wait_for_connection = false, options = {})
enable_unlimited_strength_crypto! if java_platform? && session_type_is_embedded?(type)
adaptor = wait_for_value(wait_for_connection, Neo4j::Core::CypherSession::ConnectionFailedError) do
- cypher_session_adaptor(type, url_or_path, options.merge(wrap_level: :proc))
+ verbose_query_logs = Neo4j::Config.fetch(:verbose_query_logs, false)
+ cypher_session_adaptor(type, url_or_path, options.merge(wrap_level: :proc,
+ verbose_query_logs: verbose_query_logs))
end
Neo4j::Core::CypherSession.new(adaptor)
end
+ def adaptor_class(type, options)
+ options[:adaptor_class] || adaptor_class_by_type(type.to_sym)
+ end
+
protected
def session_type_is_embedded?(session_type)
[:embedded_db, :embedded].include?(session_type)
end
@@ -29,24 +32,12 @@
restricted_field = security_class.get_declared_field('isRestricted')
restricted_field.accessible = true
restricted_field.set nil, false
end
- # TODO: Deprecate embedded_db and http in favor of embedded and http
- #
def cypher_session_adaptor(type, path_or_url, options = {})
- case type.to_sym
- when :embedded_db, :embedded
- Neo4j::Core::CypherSession::Adaptors::Embedded.new(path_or_url, options)
- when :http
- Neo4j::Core::CypherSession::Adaptors::HTTP.new(path_or_url, options)
- when :bolt
- Neo4j::Core::CypherSession::Adaptors::Bolt.new(path_or_url, options)
- else
- extra = ' (`server_db` has been replaced by `http` or `bolt`)'
- fail ArgumentError, "Invalid session type: #{type.inspect}#{extra if type.to_sym == :server_db}"
- end
+ adaptor_class(type, options).new(path_or_url, options)
end
def java_platform?
RUBY_PLATFORM =~ /java/
end
@@ -65,9 +56,29 @@
# putc '.'
sleep(1)
end
end
+ end
+ end
+
+ private
+
+ def adaptor_class_by_type(type)
+ ActiveSupport::Deprecation.warn('`embedded_db` session type is deprecated, please use `embedded`') if type == :embedded_db
+ case type
+ when :embedded_db, :embedded
+ require 'neo4j/core/cypher_session/adaptors/embedded'
+ Neo4j::Core::CypherSession::Adaptors::Embedded
+ when :http
+ require 'neo4j/core/cypher_session/adaptors/http'
+ Neo4j::Core::CypherSession::Adaptors::HTTP
+ when :bolt
+ require 'neo4j/core/cypher_session/adaptors/bolt'
+ Neo4j::Core::CypherSession::Adaptors::Bolt
+ else
+ extra = ' (`server_db` has been replaced by `http` or `bolt`)'
+ fail ArgumentError, "Invalid session type: #{type.inspect} (expected one of [:http, :bolt, :embedded])#{extra if type == :server_db}"
end
end
end
end
end