avromatic 0.17.1 → 0.18.0.rc0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/README.md +1 -1
- data/avromatic.gemspec +1 -1
- data/lib/avromatic/model/message_decoder.rb +2 -2
- data/lib/avromatic/rspec.rb +2 -2
- data/lib/avromatic/schema_registry_patch.rb +2 -2
- data/lib/avromatic/test/fake_confluent_schema_registry_server.rb +24 -0
- data/lib/avromatic/test/fake_schema_registry_server.rb +4 -22
- data/lib/avromatic/version.rb +1 -1
- data/lib/avromatic.rb +2 -2
- metadata +7 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 87f9dfc66765f2cd2bc52b7391214bbbe4d988fb
|
4
|
+
data.tar.gz: 69c50be9646eb962b03e47173dc6ac982d4f13cf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7cc691fbf191c7b416f6921b3c1f71e2803a773c8c92c4b54f07602557511bd98ff18de01fdcb60bc3c9a2e0b3739ae69de13d164a20a9f2d97d8b5360cb693b
|
7
|
+
data.tar.gz: f05dc0e9eada3a419eb6e836bec0ea77d9c65bc0896699fd664c92cf44b95fe76471d045a62fb2d0afc809d7728d64e6c9d3a2d247266cb83deb277c7383c1a4
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
# avromatic changelog
|
2
2
|
|
3
|
+
## v0.18.0
|
4
|
+
- Compatibility with `avro_turf` v0.8.0. `avromatic/test/fake_schema_registry_server`
|
5
|
+
is now deprecated in favor of `avromatic/test/fake_confluent_schema_registry_server`.
|
6
|
+
|
3
7
|
## v0.17.1
|
4
8
|
- Correctly namespace Avro errors raised by `Avromatic::IO::DatumReader`.
|
5
9
|
|
data/README.md
CHANGED
@@ -60,7 +60,7 @@ The configuration options below are required when using a schema registry
|
|
60
60
|
(see [Confluent Schema Registry](http://docs.confluent.io/2.0.1/schema-registry/docs/intro.html))
|
61
61
|
and the [Messaging API](#messaging-api).
|
62
62
|
|
63
|
-
* **schema_registry**: An `AvroTurf::
|
63
|
+
* **schema_registry**: An `AvroTurf::ConfluentSchemaRegistry` object used to store Avro schemas
|
64
64
|
so that they can be referenced by id. Either `schema_registry` or
|
65
65
|
`registry_url` must be configured.
|
66
66
|
* **registry_url**: URL for the schema registry. Either `schema_registry` or
|
data/avromatic.gemspec
CHANGED
@@ -23,7 +23,7 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.add_runtime_dependency 'virtus'
|
24
24
|
spec.add_runtime_dependency 'activesupport'
|
25
25
|
spec.add_runtime_dependency 'activemodel'
|
26
|
-
spec.add_runtime_dependency 'avro_turf', '>= 0.
|
26
|
+
spec.add_runtime_dependency 'avro_turf', '>= 0.8.0'
|
27
27
|
|
28
28
|
spec.add_development_dependency 'bundler', '~> 1.11'
|
29
29
|
spec.add_development_dependency 'rake', '~> 10.0'
|
@@ -35,7 +35,7 @@ module Avromatic
|
|
35
35
|
delegate :model_key, to: :class
|
36
36
|
|
37
37
|
# @param *models [generated models] Models to register for decoding.
|
38
|
-
# @param schema_registry [
|
38
|
+
# @param schema_registry [AvroTurf::ConfluentSchemaRegistry] Optional schema
|
39
39
|
# registry client.
|
40
40
|
# @param registry_url [String] Optional URL for schema registry server.
|
41
41
|
def initialize(*models, schema_registry: nil, registry_url: nil)
|
@@ -43,7 +43,7 @@ module Avromatic
|
|
43
43
|
@schema_names_by_id = {}
|
44
44
|
@schema_registry = schema_registry ||
|
45
45
|
Avromatic.schema_registry ||
|
46
|
-
(registry_url && AvroTurf::
|
46
|
+
(registry_url && AvroTurf::ConfluentSchemaRegistry.new(registry_url, logger: Avromatic.logger)) ||
|
47
47
|
Avromatic.build_schema_registry
|
48
48
|
end
|
49
49
|
|
data/lib/avromatic/rspec.rb
CHANGED
@@ -3,7 +3,7 @@ require 'avromatic/test/fake_schema_registry_server'
|
|
3
3
|
|
4
4
|
RSpec.configure do |config|
|
5
5
|
config.before(:each) do
|
6
|
-
WebMock.stub_request(:any, /^#{Avromatic.registry_url}/).to_rack(
|
7
|
-
|
6
|
+
WebMock.stub_request(:any, /^#{Avromatic.registry_url}/).to_rack(FakeConfluentSchemaRegistryServer)
|
7
|
+
FakeConfluentSchemaRegistryServer.clear
|
8
8
|
end
|
9
9
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
require 'avro_turf'
|
2
|
-
require 'avro_turf/
|
2
|
+
require 'avro_turf/confluent_schema_registry'
|
3
3
|
|
4
4
|
module Avromatic
|
5
5
|
module CacheableSchemaRegistration
|
@@ -32,4 +32,4 @@ module Avromatic
|
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
35
|
-
AvroTurf::
|
35
|
+
AvroTurf::ConfluentSchemaRegistry.prepend(Avromatic::CacheableSchemaRegistration)
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'avro_turf/test/fake_confluent_schema_registry_server'
|
2
|
+
|
3
|
+
# Add support for endpoint to lookup subject schema id by fingerprint.
|
4
|
+
FakeConfluentSchemaRegistryServer.class_eval do
|
5
|
+
SCHEMA_NOT_FOUND = FakeConfluentSchemaRegistryServer::SCHEMA_NOT_FOUND
|
6
|
+
SCHEMAS = FakeConfluentSchemaRegistryServer::SCHEMAS
|
7
|
+
SUBJECTS = FakeConfluentSchemaRegistryServer::SUBJECTS
|
8
|
+
|
9
|
+
get '/subjects/:subject/fingerprints/:fingerprint' do
|
10
|
+
subject = params[:subject]
|
11
|
+
halt(404, SCHEMA_NOT_FOUND) unless SUBJECTS.key?(subject)
|
12
|
+
|
13
|
+
fingerprint = params[:fingerprint]
|
14
|
+
fingerprint = fingerprint.to_i.to_s(16) if /^\d+$/ =~ fingerprint
|
15
|
+
|
16
|
+
schema_id = SCHEMAS.find_index do |schema|
|
17
|
+
Avro::Schema.parse(schema).sha256_fingerprint.to_s(16) == fingerprint
|
18
|
+
end
|
19
|
+
|
20
|
+
halt(404, SCHEMA_NOT_FOUND) unless schema_id && SUBJECTS[subject].include?(schema_id)
|
21
|
+
|
22
|
+
{ id: schema_id }.to_json
|
23
|
+
end
|
24
|
+
end
|
@@ -1,24 +1,6 @@
|
|
1
|
+
require 'avromatic/test/fake_confluent_schema_registry_server'
|
1
2
|
require 'avro_turf/test/fake_schema_registry_server'
|
2
3
|
|
3
|
-
#
|
4
|
-
|
5
|
-
|
6
|
-
SCHEMAS = FakeSchemaRegistryServer::SCHEMAS
|
7
|
-
SUBJECTS = FakeSchemaRegistryServer::SUBJECTS
|
8
|
-
|
9
|
-
get '/subjects/:subject/fingerprints/:fingerprint' do
|
10
|
-
subject = params[:subject]
|
11
|
-
halt(404, SCHEMA_NOT_FOUND) unless SUBJECTS.key?(subject)
|
12
|
-
|
13
|
-
fingerprint = params[:fingerprint]
|
14
|
-
fingerprint = fingerprint.to_i.to_s(16) if /^\d+$/ =~ fingerprint
|
15
|
-
|
16
|
-
schema_id = SCHEMAS.find_index do |schema|
|
17
|
-
Avro::Schema.parse(schema).sha256_fingerprint.to_s(16) == fingerprint
|
18
|
-
end
|
19
|
-
|
20
|
-
halt(404, SCHEMA_NOT_FOUND) unless schema_id && SUBJECTS[subject].include?(schema_id)
|
21
|
-
|
22
|
-
{ id: schema_id }.to_json
|
23
|
-
end
|
24
|
-
end
|
4
|
+
# This file is for back compatibility. The class has been renamed
|
5
|
+
# FakeConfluentSchemaRegistryServer, but avro_turf defines an alias for the
|
6
|
+
# old name, so we alias the require for now.
|
data/lib/avromatic/version.rb
CHANGED
data/lib/avromatic.rb
CHANGED
@@ -27,8 +27,8 @@ module Avromatic
|
|
27
27
|
|
28
28
|
def self.build_schema_registry
|
29
29
|
raise 'Avromatic must be configured with a registry_url' unless registry_url
|
30
|
-
AvroTurf::
|
31
|
-
AvroTurf::
|
30
|
+
AvroTurf::CachedConfluentSchemaRegistry.new(
|
31
|
+
AvroTurf::ConfluentSchemaRegistry.new(registry_url, logger: logger)
|
32
32
|
)
|
33
33
|
end
|
34
34
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: avromatic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.18.0.rc0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Salsify Engineering
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-03-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: avro
|
@@ -72,14 +72,14 @@ dependencies:
|
|
72
72
|
requirements:
|
73
73
|
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 0.
|
75
|
+
version: 0.8.0
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 0.
|
82
|
+
version: 0.8.0
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: bundler
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -273,6 +273,7 @@ files:
|
|
273
273
|
- lib/avromatic/railtie.rb
|
274
274
|
- lib/avromatic/rspec.rb
|
275
275
|
- lib/avromatic/schema_registry_patch.rb
|
276
|
+
- lib/avromatic/test/fake_confluent_schema_registry_server.rb
|
276
277
|
- lib/avromatic/test/fake_schema_registry_server.rb
|
277
278
|
- lib/avromatic/version.rb
|
278
279
|
- log/.gitkeep
|
@@ -291,9 +292,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
291
292
|
version: '0'
|
292
293
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
293
294
|
requirements:
|
294
|
-
- - "
|
295
|
+
- - ">"
|
295
296
|
- !ruby/object:Gem::Version
|
296
|
-
version:
|
297
|
+
version: 1.3.1
|
297
298
|
requirements: []
|
298
299
|
rubyforge_project:
|
299
300
|
rubygems_version: 2.6.10
|