neo4j-ruby-driver 4.4.4-java → 5.13.0.alpha.1-java

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d25c6f125661dfa91a2e3c098f77cc3915e059218404e472829e6bbe30eb6113
4
- data.tar.gz: 18a372d5f7015458ea87552d63017b2d8b7c343aba9f8ff6ab08c6f970e63422
3
+ metadata.gz: dbf26d42944323e18fc28f944ff365d981755118e1d01f52345c72ebdcea5641
4
+ data.tar.gz: 708c207bbc0602450a4514876b910319652166946f657c5ae7ff7993d53056fa
5
5
  SHA512:
6
- metadata.gz: c54da5e7237caabd5ded1fd3ea90d72e289de683285b372f29f565b959bc5be8c433c3784fc21015e9eab65950aba87a94ea631c9bdbfbae87df481210401cea
7
- data.tar.gz: 58a072b28ab11eda0be3d97a8fdfea22da983f70c7af13e67cf397846c43faa981716a8f0c60f5cb3aa35d7526fc763fe2a290e14d1380060d28ec259bef3676
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
@@ -13,7 +13,7 @@ module Neo4j
13
13
  def run_async(statement, parameters = {}, config = {})
14
14
  to_future(
15
15
  java_method(:runAsync, [org.neo4j.driver.Query, org.neo4j.driver.TransactionConfig])
16
- .call(to_statement(statement, parameters), to_java_config(Neo4j::Driver::TransactionConfig, config)))
16
+ .call(to_statement(statement, parameters), to_java_config(Neo4j::Driver::TransactionConfig, **config)))
17
17
  end
18
18
  end
19
19
  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
@@ -13,12 +13,12 @@ module Neo4j
13
13
 
14
14
  def session(**session_config)
15
15
  java_method(:session, [org.neo4j.driver.SessionConfig])
16
- .call(to_java_config(Neo4j::Driver::SessionConfig, session_config))
16
+ .call(to_java_config(Neo4j::Driver::SessionConfig, **session_config))
17
17
  end
18
18
 
19
19
  def async_session(**session_config)
20
20
  java_method(:asyncSession, [org.neo4j.driver.SessionConfig])
21
- .call(to_java_config(Neo4j::Driver::SessionConfig, session_config))
21
+ .call(to_java_config(Neo4j::Driver::SessionConfig, **session_config))
22
22
  end
23
23
 
24
24
  def close_async
@@ -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
@@ -17,7 +17,7 @@ module Neo4j
17
17
  %i[read write].each do |prefix|
18
18
  define_method("#{prefix}_transaction") do |**config, &block|
19
19
  check do
20
- super(->(tx) { Struct::Wrapper.new(reverse_check { block.call(tx) }) }, to_java_config(Neo4j::Driver::TransactionConfig, config)).object
20
+ super(->(tx) { Struct::Wrapper.new(reverse_check { block.call(tx) }) }, to_java_config(Neo4j::Driver::TransactionConfig, **config)).object
21
21
  end
22
22
  end
23
23
  end
@@ -27,12 +27,12 @@ module Neo4j
27
27
  def run(statement, parameters = {}, config = {})
28
28
  check do
29
29
  java_method(:run, [org.neo4j.driver.Query, org.neo4j.driver.TransactionConfig])
30
- .call(to_statement(statement, parameters), to_java_config(Neo4j::Driver::TransactionConfig, config))
30
+ .call(to_statement(statement, parameters), to_java_config(Neo4j::Driver::TransactionConfig, **config))
31
31
  end
32
32
  end
33
33
 
34
34
  def begin_transaction(**config)
35
- check { super(to_java_config(Neo4j::Driver::TransactionConfig, config)) }
35
+ check { super(to_java_config(Neo4j::Driver::TransactionConfig, **config)) }
36
36
  end
37
37
  end
38
38
  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.4'
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)
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.4
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-02-06 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: '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: '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
@@ -72,7 +72,7 @@ dependencies:
72
72
  - - ">="
73
73
  - !ruby/object:Gem::Version
74
74
  version: '0'
75
- name: async
75
+ name: ffaker
76
76
  prerelease: false
77
77
  type: :development
78
78
  version_requirements: !ruby/object:Gem::Requirement
@@ -86,7 +86,7 @@ dependencies:
86
86
  - - ">="
87
87
  - !ruby/object:Gem::Version
88
88
  version: '0'
89
- name: ffaker
89
+ name: hoe
90
90
  prerelease: false
91
91
  type: :development
92
92
  version_requirements: !ruby/object:Gem::Requirement
@@ -100,7 +100,7 @@ dependencies:
100
100
  - - ">="
101
101
  - !ruby/object:Gem::Version
102
102
  version: '0'
103
- name: hoe
103
+ name: hoe-bundler
104
104
  prerelease: false
105
105
  type: :development
106
106
  version_requirements: !ruby/object:Gem::Requirement
@@ -114,7 +114,7 @@ dependencies:
114
114
  - - ">="
115
115
  - !ruby/object:Gem::Version
116
116
  version: '0'
117
- name: hoe-bundler
117
+ name: hoe-gemspec
118
118
  prerelease: false
119
119
  type: :development
120
120
  version_requirements: !ruby/object:Gem::Requirement
@@ -128,7 +128,7 @@ dependencies:
128
128
  - - ">="
129
129
  - !ruby/object:Gem::Version
130
130
  version: '0'
131
- name: hoe-gemspec
131
+ name: rake
132
132
  prerelease: false
133
133
  type: :development
134
134
  version_requirements: !ruby/object:Gem::Requirement
@@ -142,7 +142,7 @@ dependencies:
142
142
  - - ">="
143
143
  - !ruby/object:Gem::Version
144
144
  version: '0'
145
- name: rake
145
+ name: rspec-its
146
146
  prerelease: false
147
147
  type: :development
148
148
  version_requirements: !ruby/object:Gem::Requirement
@@ -156,7 +156,7 @@ dependencies:
156
156
  - - ">="
157
157
  - !ruby/object:Gem::Version
158
158
  version: '0'
159
- name: rspec-its
159
+ name: rspec-mocks
160
160
  prerelease: false
161
161
  type: :development
162
162
  version_requirements: !ruby/object:Gem::Requirement
@@ -167,17 +167,17 @@ dependencies:
167
167
  - !ruby/object:Gem::Dependency
168
168
  requirement: !ruby/object:Gem::Requirement
169
169
  requirements:
170
- - - ">="
170
+ - - "<"
171
171
  - !ruby/object:Gem::Version
172
- version: '0'
173
- name: rspec-mocks
172
+ version: '2'
173
+ name: async
174
174
  prerelease: false
175
175
  type: :development
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
- - - ">="
178
+ - - "<"
179
179
  - !ruby/object:Gem::Version
180
- version: '0'
180
+ version: '2'
181
181
  - !ruby/object:Gem::Dependency
182
182
  requirement: !ruby/object:Gem::Requirement
183
183
  requirements:
@@ -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,12 +317,12 @@ 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.11
320
- rubygems_version: 3.2.33
324
+ - jar org.neo4j.driver, neo4j-java-driver-all, 5.13.0
325
+ rubygems_version: 3.3.26
321
326
  signing_key:
322
327
  specification_version: 4
323
328
  summary: ''