neo4j-ruby-driver 4.4.6-java → 5.13.0.alpha.1-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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a69c65243723b5585d9f7941be6849ab0bbc9bb49801e3198f7e53b5091dce77
4
- data.tar.gz: 50e9aae968b14bccaba92ce2b3e76276b2766fd2f74ace4900e4b00310ab00f4
3
+ metadata.gz: dbf26d42944323e18fc28f944ff365d981755118e1d01f52345c72ebdcea5641
4
+ data.tar.gz: 708c207bbc0602450a4514876b910319652166946f657c5ae7ff7993d53056fa
5
5
  SHA512:
6
- metadata.gz: 949eeec7b5d6a9bf63d91bd547e4cba571da2cc718f9f120d9b1fb615726acff9493bb57311156b6ff318c9afe60d4f528d2cc8f54957b107752857eeee8ab20
7
- data.tar.gz: a52b092b3223fe7ab0e6ad776ab7802c6656c89d1b56f4463652f170325884332edc71032709e627a84d9bb03c882b230ac69f93eed456b1d690c13b9ca84850
6
+ metadata.gz: 934c8d730afe408fe9b840c5bfc6c00c09886b0742d055139ead934c6adf59142171a3cdfdf3cabbbeefe57608b5b1417523d7dfc9232164bb728cc8285ef253
7
+ data.tar.gz: 93117f5187a574967021949c3b3a4bf0b4dc48706fba5080d2cc8f2210e598778460b0d22e46046c06d677cda165fb3d620239b94bb4d20331d57030c8ea8b9c
@@ -13,7 +13,7 @@ module Neo4j
13
13
  end
14
14
 
15
15
  def apply_to(builder, **hash)
16
- hash.compact.reduce(builder) { |object, key_value| object.send(*config_method(*key_value)) }
16
+ hash.compact.reduce(builder) { |object, (key, value)| object.send(*config_method(key, value)) }
17
17
  end
18
18
 
19
19
  def config_method(key, value)
@@ -45,6 +45,8 @@ module Neo4j
45
45
  else
46
46
  "with_#{value}_revocation_checks"
47
47
  end
48
+ when 'notification_config'
49
+ value = notification_config(**value)
48
50
  else
49
51
  value = to_neo(value, skip_unknown: true)
50
52
  end
@@ -63,6 +65,18 @@ module Neo4j
63
65
  end
64
66
  apply_to(trust_strategy, **config)
65
67
  end
68
+
69
+ def notification_config(minimum_severity: nil, disabled_categories: nil)
70
+ org.neo4j.driver.internal.InternalNotificationConfig.new(
71
+ value_of(org.neo4j.driver.internal.InternalNotificationSeverity, minimum_severity),
72
+ disabled_categories
73
+ &.map { |value| value_of(org.neo4j.driver.internal.InternalNotificationCategory, value) }
74
+ &.then(&java.util.HashSet.method(:new)))
75
+ end
76
+
77
+ def value_of(klass, value)
78
+ klass.value_of(value&.to_s&.upcase).or_else(nil)
79
+ end
66
80
  end
67
81
  end
68
82
  end
@@ -19,6 +19,7 @@ module Neo4j
19
19
  java_import org.neo4j.driver.exceptions.TokenExpiredException
20
20
  java_import org.neo4j.driver.exceptions.TransactionNestingException
21
21
  java_import org.neo4j.driver.exceptions.TransientException
22
+ java_import org.neo4j.driver.exceptions.UnsupportedFeatureException
22
23
  java_import org.neo4j.driver.exceptions.UntrustedServerException
23
24
 
24
25
  def mapped_exception(exception)
@@ -48,6 +49,8 @@ module Neo4j
48
49
  Neo4j::Driver::Exceptions::SecurityException
49
50
  when TransactionNestingException
50
51
  Neo4j::Driver::Exceptions::TransactionNestingException
52
+ when UnsupportedFeatureException
53
+ Neo4j::Driver::Exceptions::UnsupportedFeatureException
51
54
  when ClientException
52
55
  Neo4j::Driver::Exceptions::ClientException
53
56
  when ConnectionReadTimeoutException
@@ -8,7 +8,7 @@ module Neo4j
8
8
  include ConfigConverter
9
9
  include ExceptionCheckable
10
10
 
11
- auto_closable :driver, :routing_driver
11
+ auto_closable :driver
12
12
 
13
13
  def driver(uri, auth_token = Neo4j::Driver::AuthTokens.none, **config)
14
14
  check do
@@ -17,10 +17,14 @@ module Neo4j
17
17
  end
18
18
  end
19
19
 
20
- def routing_driver(routing_uris, auth_token, **config)
20
+ def internal_driver(uri, auth_token = Neo4j::Driver::AuthTokens.none, **config, &domain_name_resolver)
21
21
  check do
22
- super(routing_uris.map { |uri| java.net.URI.create(uri.to_s) }, auth_token,
23
- to_java_config(Neo4j::Driver::Config, **config))
22
+ java_uri = java.net.URI.create(uri.to_s)
23
+ java_config = to_java_config(Neo4j::Driver::Config, **config)
24
+ Internal::DriverFactory
25
+ .new(&domain_name_resolver)
26
+ .new_instance(java_uri, org.neo4j.driver.internal.security.StaticAuthTokenManager.new(auth_token),
27
+ java_config)
24
28
  end
25
29
  end
26
30
  end
@@ -0,0 +1,24 @@
1
+ module Neo4j
2
+ module Driver
3
+ module Ext
4
+ module Internal
5
+ class DriverFactory < org.neo4j.driver.internal.DriverFactory
6
+ def initialize(&domain_name_resolver)
7
+ super()
8
+ @domain_name_resolver = ->(name) do
9
+ domain_name_resolver.call(name).map do |addr|
10
+ java.net.InetAddress.get_by_name(addr)
11
+ rescue java.net.UnknownHostException => e
12
+ raise java.lang.RuntimeException.new(e)
13
+ end
14
+ end
15
+ end
16
+
17
+ def getDomainNameResolver
18
+ @domain_name_resolver
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,13 @@
1
+ module Neo4j
2
+ module Driver
3
+ module Ext
4
+ module Internal
5
+ module InternalNotificationCommon
6
+ def type
7
+ super.to_s
8
+ end
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,27 @@
1
+ module Neo4j
2
+ module Driver
3
+ module Ext
4
+ module Internal
5
+ module Summary
6
+ module InternalNotification
7
+ def severity_level
8
+ super.or_else(nil)
9
+ end
10
+
11
+ def raw_severity_level
12
+ super.or_else(nil)
13
+ end
14
+
15
+ def raw_category
16
+ super.or_else(nil)
17
+ end
18
+
19
+ def category
20
+ super.or_else(nil)
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Neo4j
4
+ module Driver
5
+ module Ext
6
+ module Internal
7
+ module Summary
8
+ module InternalPlan
9
+ def args
10
+ arguments&.to_h&.transform_values(&:as_ruby_object)
11
+ end
12
+
13
+ def identifiers
14
+ super.to_a
15
+ end
16
+
17
+ # this part should probably be included in testkit-backend
18
+ def to_h
19
+ {operator_type:, args:, identifiers:, children: children&.map(&:to_h)}
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -9,7 +9,9 @@ module Neo4j
9
9
  java_import org.neo4j.driver.summary.QueryType
10
10
 
11
11
  %i[result_available_after result_consumed_after].each do |method|
12
- define_method(method) { super(Java::JavaUtilConcurrent::TimeUnit::MILLISECONDS) }
12
+ define_method(method) do
13
+ super(Java::JavaUtilConcurrent::TimeUnit::MILLISECONDS).then { |val| val unless val == -1 }
14
+ end
13
15
  end
14
16
 
15
17
  def query_type
@@ -28,6 +28,14 @@ module Neo4j
28
28
  def verify_connectivity
29
29
  check { super }
30
30
  end
31
+
32
+ def verify_authentication(auth_token)
33
+ check { super }
34
+ end
35
+
36
+ def supports_session_auth?
37
+ check { supports_session_auth }
38
+ end
31
39
  end
32
40
  end
33
41
  end
@@ -17,6 +17,10 @@ module Neo4j
17
17
  def each(&block)
18
18
  check { stream.for_each(&block) }
19
19
  end
20
+
21
+ def to_a
22
+ check { list.to_a }
23
+ end
20
24
  end
21
25
  end
22
26
  end
@@ -16,7 +16,7 @@ module Neo4j
16
16
  date = as_local_date
17
17
  Date.new(date.year, date.month_value, date.day_of_month)
18
18
  when Java::OrgNeo4jDriverInternalTypes::TypeConstructor::DURATION
19
- ActiveSupport::Duration.parse(as_iso_duration.to_s)
19
+ Driver::Internal::DurationNormalizer.create(*%i[months days seconds nanoseconds].map(&as_object.method(:send)))
20
20
  when Java::OrgNeo4jDriverInternalTypes::TypeConstructor::POINT
21
21
  point = as_point
22
22
  Types::Point.new(srid: point.srid, x: point.x, y: point.y, z: nullable(point.z))
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Neo4j
4
4
  module Driver
5
- VERSION = '4.4.6'
5
+ VERSION = '5.13.0.alpha.1'
6
6
  end
7
7
  end
@@ -43,6 +43,8 @@ Java::OrgNeo4jDriverInternal::InternalBookmark.prepend Neo4j::Driver::Ext::Inter
43
43
  Java::OrgNeo4jDriverInternal::InternalDriver.prepend Neo4j::Driver::Ext::InternalDriver
44
44
  Java::OrgNeo4jDriverInternal::InternalEntity.include Neo4j::Driver::Ext::InternalEntity
45
45
  Java::OrgNeo4jDriverInternal::InternalNode.prepend Neo4j::Driver::Ext::InternalNode
46
+ Java::OrgNeo4jDriverInternal::InternalNotificationCategory.prepend Neo4j::Driver::Ext::Internal::InternalNotificationCommon
47
+ Java::OrgNeo4jDriverInternal::InternalNotificationSeverity.prepend Neo4j::Driver::Ext::Internal::InternalNotificationCommon
46
48
  Java::OrgNeo4jDriverInternal::InternalPath.include Neo4j::Driver::Ext::StartEndNaming
47
49
  Java::OrgNeo4jDriverInternal::InternalPath::SelfContainedSegment.include Neo4j::Driver::Ext::StartEndNaming
48
50
  Java::OrgNeo4jDriverInternal::InternalRecord.prepend Neo4j::Driver::Ext::InternalRecord
@@ -54,5 +56,7 @@ Java::OrgNeo4jDriverInternalAsync::InternalAsyncSession.prepend Neo4j::Driver::E
54
56
  Java::OrgNeo4jDriverInternalCluster::RoutingTableRegistryImpl.include Neo4j::Driver::Ext::Internal::Cluster::RoutingTableRegistryImpl
55
57
  Java::OrgNeo4jDriverInternalCursor::DisposableAsyncResultCursor.prepend Neo4j::Driver::Ext::Internal::Cursor::DisposableAsyncResultCursor
56
58
  Java::OrgNeo4jDriverInternalMetrics::InternalConnectionPoolMetrics.include Neo4j::Driver::Ext::Internal::Metrics::InternalConnectionPoolMetrics
59
+ Java::OrgNeo4jDriverInternalSummary::InternalNotification.prepend Neo4j::Driver::Ext::Internal::Summary::InternalNotification
60
+ Java::OrgNeo4jDriverInternalSummary::InternalPlan.prepend Neo4j::Driver::Ext::Internal::Summary::InternalPlan
57
61
  Java::OrgNeo4jDriverInternalSummary::InternalResultSummary.prepend Neo4j::Driver::Ext::Internal::Summary::InternalResultSummary
58
62
  Java::OrgNeo4jDriverInternalValue::ValueAdapter.include Neo4j::Driver::Ext::RubyConverter
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Neo4j
4
+ module Driver
5
+ module Exceptions
6
+ # A feature is not supported in a given setup.
7
+ class UnsupportedFeatureException < ClientException
8
+ end
9
+ end
10
+ end
11
+ end
@@ -21,6 +21,11 @@ module Neo4j
21
21
  duration&.in_milliseconds&.round
22
22
  end
23
23
 
24
+ def create(months, days, seconds, nanoseconds)
25
+ { months:, days:, seconds: seconds + (nanoseconds.zero? ? 0 : nanoseconds * BigDecimal('1e-9')) }
26
+ .sum { |key, value| ActiveSupport::Duration.send(key, value) }
27
+ end
28
+
24
29
  private
25
30
 
26
31
  def divmod(number, factor)
@@ -2,10 +2,7 @@
2
2
 
3
3
  require 'active_support/concern'
4
4
  require 'active_support/core_ext/hash/indifferent_access'
5
- require 'active_support/core_ext/object/blank'
6
5
  require 'active_support/isolated_execution_state' if Gem::Requirement.create('>= 7').satisfied_by?(Gem.loaded_specs["activesupport"].version) # TODO: this should not be necessary https://github.com/rails/rails/issues/43851
7
- require 'active_support/deprecator' if Gem::Requirement.create('>= 7.1').satisfied_by?(Gem.loaded_specs["activesupport"].version)
8
- require 'active_support/deprecation'
9
6
  require 'active_support/core_ext/numeric/time'
10
7
  require 'active_support/duration'
11
8
  require 'active_support/time'
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: neo4j-ruby-driver
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.4.6
4
+ version: 5.13.0.alpha.1
5
5
  platform: java
6
6
  authors:
7
7
  - Heinrich Klobuczek
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-10-22 00:00:00.000000000 Z
11
+ date: 2023-10-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
15
15
  requirements:
16
- - - ">="
16
+ - - "<"
17
17
  - !ruby/object:Gem::Version
18
- version: 5.2.0
18
+ version: '7.1'
19
19
  name: activesupport
20
20
  prerelease: false
21
21
  type: :runtime
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "<"
25
25
  - !ruby/object:Gem::Version
26
- version: 5.2.0
26
+ version: '7.1'
27
27
  - !ruby/object:Gem::Dependency
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
@@ -55,7 +55,7 @@ dependencies:
55
55
  - !ruby/object:Gem::Dependency
56
56
  requirement: !ruby/object:Gem::Requirement
57
57
  requirements:
58
- - - '='
58
+ - - ">="
59
59
  - !ruby/object:Gem::Version
60
60
  version: 0.4.1
61
61
  name: jar-dependencies
@@ -63,7 +63,7 @@ dependencies:
63
63
  type: :runtime
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '='
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: 0.4.1
69
69
  - !ruby/object:Gem::Dependency
@@ -234,8 +234,12 @@ files:
234
234
  - jruby/neo4j/driver/ext/internal/async/internal_async_session.rb
235
235
  - jruby/neo4j/driver/ext/internal/cluster/routing_table_registry_impl.rb
236
236
  - jruby/neo4j/driver/ext/internal/cursor/disposable_async_result_cursor.rb
237
+ - jruby/neo4j/driver/ext/internal/driver_factory.rb
237
238
  - jruby/neo4j/driver/ext/internal/internal_bookmark.rb
239
+ - jruby/neo4j/driver/ext/internal/internal_notification_common.rb
238
240
  - jruby/neo4j/driver/ext/internal/metrics/internal_connection_pool_metrics.rb
241
+ - jruby/neo4j/driver/ext/internal/summary/internal_notification.rb
242
+ - jruby/neo4j/driver/ext/internal/summary/internal_plan.rb
239
243
  - jruby/neo4j/driver/ext/internal/summary/internal_result_summary.rb
240
244
  - jruby/neo4j/driver/ext/internal_driver.rb
241
245
  - jruby/neo4j/driver/ext/internal_entity.rb
@@ -276,6 +280,7 @@ files:
276
280
  - lib/neo4j/driver/exceptions/token_expired_exception.rb
277
281
  - lib/neo4j/driver/exceptions/transaction_nesting_exception.rb
278
282
  - lib/neo4j/driver/exceptions/transient_exception.rb
283
+ - lib/neo4j/driver/exceptions/unsupported_feature_exception.rb
279
284
  - lib/neo4j/driver/exceptions/untrusted_server_exception.rb
280
285
  - lib/neo4j/driver/exceptions/value/lossy_coercion.rb
281
286
  - lib/neo4j/driver/exceptions/value/not_multi_valued.rb
@@ -312,11 +317,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
312
317
  version: '2.6'
313
318
  required_rubygems_version: !ruby/object:Gem::Requirement
314
319
  requirements:
315
- - - ">="
320
+ - - ">"
316
321
  - !ruby/object:Gem::Version
317
- version: '0'
322
+ version: 1.3.1
318
323
  requirements:
319
- - jar org.neo4j.driver, neo4j-java-driver, 4.4.12
324
+ - jar org.neo4j.driver, neo4j-java-driver-all, 5.13.0
320
325
  rubygems_version: 3.3.26
321
326
  signing_key:
322
327
  specification_version: 4