neo4j-ruby-driver 4.4.5-java → 5.13.0.alpha.2-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: fd7a4a327ee737e74f00b547eb497bd88e0059ec021f13251c33ab061f25a8cd
4
- data.tar.gz: 4e654f45c35269b3641ba3b58e053a1858f2753987365ce1beb2e0e26856a29c
3
+ metadata.gz: b6ac6b55a21c40d97c9e50ccc54b506f3f591d7d9201e48deea60f148ebe6c49
4
+ data.tar.gz: '05599de93940a5bf25a5fbca66f2c141dda3858752a4178dc018bb163adb9511'
5
5
  SHA512:
6
- metadata.gz: 86e2b688151f1014f1f0c17e8a8019bac5acc2143af95054b831ce35df6ee8789b3e4c857f302dc6fe9649d68e60e1d9620ff51524dd3df4ce61c7fad0eaa566
7
- data.tar.gz: 15ff012ccef907304311aa61a8a7828cd1e4be31b181102565cf66b442a20c2dded85c3ad89d79f1a3bcb15511f38327befabc4cfcb4719304f5fbf989375945
6
+ metadata.gz: f6924be75318a9d7cc41fbc0772f40a6b036e963a114c27cd28991518795092673351da074f8447b1a47b2abdc1b9b2f1d046224469e78b8db2061c282c15959
7
+ data.tar.gz: fa9b9bccded40cc136890ed3e1aecca7b2384690fe67c8f82ead69306a6e1a751663be7cefef44462a65062d27ff247e24e9d3ec03d69ee9d864e67f67e5eb9d
@@ -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
@@ -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.5'
5
+ VERSION = '5.13.0.alpha.2'
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.5
4
+ version: 5.13.0.alpha.2
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-10 00:00:00.000000000 Z
11
+ date: 2023-10-15 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,9 +63,23 @@ 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
+ - !ruby/object:Gem::Dependency
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - '='
73
+ - !ruby/object:Gem::Version
74
+ version: 5.1.0
75
+ name: psych
76
+ prerelease: false
77
+ type: :runtime
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '='
81
+ - !ruby/object:Gem::Version
82
+ version: 5.1.0
69
83
  - !ruby/object:Gem::Dependency
70
84
  requirement: !ruby/object:Gem::Requirement
71
85
  requirements:
@@ -234,8 +248,12 @@ files:
234
248
  - jruby/neo4j/driver/ext/internal/async/internal_async_session.rb
235
249
  - jruby/neo4j/driver/ext/internal/cluster/routing_table_registry_impl.rb
236
250
  - jruby/neo4j/driver/ext/internal/cursor/disposable_async_result_cursor.rb
251
+ - jruby/neo4j/driver/ext/internal/driver_factory.rb
237
252
  - jruby/neo4j/driver/ext/internal/internal_bookmark.rb
253
+ - jruby/neo4j/driver/ext/internal/internal_notification_common.rb
238
254
  - jruby/neo4j/driver/ext/internal/metrics/internal_connection_pool_metrics.rb
255
+ - jruby/neo4j/driver/ext/internal/summary/internal_notification.rb
256
+ - jruby/neo4j/driver/ext/internal/summary/internal_plan.rb
239
257
  - jruby/neo4j/driver/ext/internal/summary/internal_result_summary.rb
240
258
  - jruby/neo4j/driver/ext/internal_driver.rb
241
259
  - jruby/neo4j/driver/ext/internal_entity.rb
@@ -276,6 +294,7 @@ files:
276
294
  - lib/neo4j/driver/exceptions/token_expired_exception.rb
277
295
  - lib/neo4j/driver/exceptions/transaction_nesting_exception.rb
278
296
  - lib/neo4j/driver/exceptions/transient_exception.rb
297
+ - lib/neo4j/driver/exceptions/unsupported_feature_exception.rb
279
298
  - lib/neo4j/driver/exceptions/untrusted_server_exception.rb
280
299
  - lib/neo4j/driver/exceptions/value/lossy_coercion.rb
281
300
  - lib/neo4j/driver/exceptions/value/not_multi_valued.rb
@@ -312,12 +331,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
312
331
  version: '2.6'
313
332
  required_rubygems_version: !ruby/object:Gem::Requirement
314
333
  requirements:
315
- - - ">="
334
+ - - ">"
316
335
  - !ruby/object:Gem::Version
317
- version: '0'
336
+ version: 1.3.1
318
337
  requirements:
319
- - jar org.neo4j.driver, neo4j-java-driver, 4.4.11
320
- rubygems_version: 3.3.25
338
+ - jar org.neo4j.driver, neo4j-java-driver-all, 5.13.0
339
+ rubygems_version: 3.3.26
321
340
  signing_key:
322
341
  specification_version: 4
323
342
  summary: ''