synapse-core 0.2.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. data/lib/synapse.rb +3 -0
  2. data/lib/synapse/command/simple_command_bus.rb +2 -2
  3. data/lib/synapse/common/concurrency/identifier_lock.rb +71 -0
  4. data/lib/synapse/common/concurrency/public_lock.rb +96 -0
  5. data/lib/synapse/event_bus/simple_event_bus.rb +1 -1
  6. data/lib/synapse/event_bus/wiring.rb +0 -4
  7. data/lib/synapse/event_sourcing/member.rb +0 -4
  8. data/lib/synapse/event_sourcing/snapshot/count_trigger.rb +2 -2
  9. data/lib/synapse/event_store.rb +1 -9
  10. data/lib/synapse/partitioning.rb +0 -2
  11. data/lib/synapse/process_manager.rb +12 -0
  12. data/lib/synapse/process_manager/lock_manager.rb +22 -0
  13. data/lib/synapse/process_manager/pessimistic_lock_manager.rb +23 -0
  14. data/lib/synapse/process_manager/process.rb +2 -0
  15. data/lib/synapse/process_manager/process_factory.rb +52 -0
  16. data/lib/synapse/process_manager/process_manager.rb +170 -0
  17. data/lib/synapse/process_manager/process_repository.rb +53 -0
  18. data/lib/synapse/process_manager/repository/in_memory.rb +63 -0
  19. data/lib/synapse/process_manager/resource_injector.rb +12 -0
  20. data/lib/synapse/process_manager/simple_process_manager.rb +48 -0
  21. data/lib/synapse/process_manager/wiring/process.rb +27 -0
  22. data/lib/synapse/process_manager/wiring/process_manager.rb +72 -0
  23. data/lib/synapse/repository.rb +1 -0
  24. data/lib/synapse/repository/locking.rb +1 -1
  25. data/lib/synapse/repository/optimistic_lock_manager.rb +128 -0
  26. data/lib/synapse/repository/pessimistic_lock_manager.rb +4 -37
  27. data/lib/synapse/serialization.rb +1 -1
  28. data/lib/synapse/serialization/{converter/factory.rb → converter_factory.rb} +0 -0
  29. data/lib/synapse/serialization/serializer.rb +5 -3
  30. data/lib/synapse/uow/listener_collection.rb +59 -1
  31. data/lib/synapse/version.rb +1 -1
  32. data/lib/synapse/wiring/message_wiring.rb +7 -3
  33. data/lib/synapse/wiring/wire.rb +7 -2
  34. data/test/common/concurrency/identifier_lock_test.rb +36 -0
  35. data/test/common/concurrency/public_lock_test.rb +83 -0
  36. data/test/partitioning/packing/json_test.rb +2 -1
  37. data/test/process_manager/in_memory_test.rb +57 -0
  38. data/test/process_manager/process_factory_test.rb +31 -0
  39. data/test/process_manager/simple_process_manager_test.rb +130 -0
  40. data/test/process_manager/wiring/fixtures.rb +42 -0
  41. data/test/process_manager/wiring/process_manager_test.rb +73 -0
  42. data/test/process_manager/wiring/process_test.rb +35 -0
  43. data/test/repository/optimistic_test.rb +41 -0
  44. data/test/repository/pessimistic_test.rb +20 -0
  45. data/test/serialization/converter/chain_test.rb +31 -0
  46. data/test/serialization/lazy_object_test.rb +1 -1
  47. data/test/serialization/message/serialization_aware_message_test.rb +4 -2
  48. data/test/serialization/message/serialized_message_builder_test.rb +1 -1
  49. data/test/serialization/message/serialized_message_test.rb +3 -2
  50. data/test/serialization/serializer/marshal_test.rb +1 -1
  51. data/test/serialization/serializer/oj_test.rb +1 -1
  52. data/test/serialization/serializer/ox_test.rb +1 -1
  53. data/test/serialization/serializer_test.rb +1 -1
  54. data/test/test_ext.rb +5 -2
  55. data/test/wiring/wire_registry_test.rb +10 -10
  56. data/test/wiring/wire_test.rb +5 -5
  57. metadata +29 -16
  58. data/lib/synapse/event_store/mongo.rb +0 -8
  59. data/lib/synapse/event_store/mongo/cursor_event_stream.rb +0 -63
  60. data/lib/synapse/event_store/mongo/event_store.rb +0 -86
  61. data/lib/synapse/event_store/mongo/per_commit_strategy.rb +0 -253
  62. data/lib/synapse/event_store/mongo/per_event_strategy.rb +0 -143
  63. data/lib/synapse/event_store/mongo/storage_strategy.rb +0 -113
  64. data/lib/synapse/event_store/mongo/template.rb +0 -73
  65. data/lib/synapse/partitioning/amqp.rb +0 -3
  66. data/lib/synapse/partitioning/amqp/amqp_queue_reader.rb +0 -50
  67. data/lib/synapse/partitioning/amqp/amqp_queue_writer.rb +0 -31
  68. data/lib/synapse/partitioning/amqp/key_resolver.rb +0 -26
  69. data/lib/synapse/serialization/converter/bson.rb +0 -28
@@ -0,0 +1,42 @@
1
+ require 'test_helper'
2
+
3
+ module Synapse
4
+ module ProcessManager
5
+
6
+ class OrderEvent
7
+ attr_accessor :order_id
8
+ def initialize(order_id)
9
+ @order_id = order_id
10
+ end
11
+ end
12
+
13
+ class OrderCreated < OrderEvent; end
14
+ class OrderForceCreated < OrderEvent; end
15
+ class OrderUpdated < OrderEvent; end
16
+ class OrderCanceled < OrderEvent; end
17
+ class OrderDerped; end
18
+
19
+ class OrderProcess < WiringProcess
20
+ attr_reader :handled
21
+
22
+ wire OrderCreated, correlate: :order_id, start: true do
23
+ @handled = (@handled or 0).next
24
+ end
25
+
26
+ wire OrderForceCreated, correlate: :order_id, start: true, force_new: true do
27
+ @handled = (@handled or 0).next
28
+ end
29
+
30
+ wire OrderUpdated, correlate: :order_id do
31
+ @handled = (@handled or 0).next
32
+ end
33
+
34
+ wire OrderCanceled, correlate: :order_id, finish: true do
35
+ @handled = (@handled or 0).next
36
+ end
37
+
38
+ wire OrderDerped, correlate: :derpy_key do; end
39
+ end
40
+
41
+ end
42
+ end
@@ -0,0 +1,73 @@
1
+ require 'test_helper'
2
+ require 'process_manager/wiring/fixtures'
3
+
4
+ module Synapse
5
+ module ProcessManager
6
+
7
+ class WiringProcessManagerTest < Test::Unit::TestCase
8
+ def setup
9
+ @repository = InMemoryProcessRepository.new
10
+ @factory = GenericProcessFactory.new
11
+ @lock_manager = LockManager.new
12
+
13
+ @manager = WiringProcessManager.new @repository, @factory, @lock_manager, OrderProcess
14
+ end
15
+
16
+ def test_support
17
+ assert_raise ArgumentError do
18
+ WiringProcessManager.new @repository, @factory, @lock_manager, Process
19
+ end
20
+ end
21
+
22
+ def test_correlation
23
+ event = create_event OrderCreated.new 123
24
+ @manager.notify event
25
+
26
+ correlation = Correlation.new :order_id, 123
27
+
28
+ processes = @repository.find OrderProcess, correlation
29
+ assert_equal 1, processes.count
30
+ end
31
+
32
+ def test_creation_policy
33
+ event = create_event OrderCreated.new 123
34
+
35
+ @manager.notify event
36
+ @manager.notify event
37
+
38
+ assert_equal 1, @repository.count
39
+
40
+ event = create_event OrderForceCreated.new 123
41
+
42
+ @manager.notify event
43
+ @manager.notify event
44
+
45
+ assert_equal 3, @repository.count
46
+
47
+ event = create_event OrderUpdated.new 123
48
+
49
+ @manager.notify event
50
+ @manager.notify event
51
+
52
+ assert_equal 3, @repository.count
53
+ end
54
+
55
+ def test_correlation_fails
56
+ event = create_event OrderDerped.new
57
+
58
+ assert_raise RuntimeError do
59
+ @manager.notify event
60
+ end
61
+ end
62
+
63
+ private
64
+
65
+ def create_event(payload)
66
+ Domain::EventMessage.build do |builder|
67
+ builder.payload = payload
68
+ end
69
+ end
70
+ end
71
+
72
+ end
73
+ end
@@ -0,0 +1,35 @@
1
+ require 'test_helper'
2
+ require 'process_manager/wiring/fixtures'
3
+
4
+ module Synapse
5
+ module ProcessManager
6
+
7
+ class WiringProcessTest < Test::Unit::TestCase
8
+ def setup
9
+ @process = OrderProcess.new
10
+ end
11
+
12
+ def test_handle
13
+ event = Domain::EventMessage.build do |builder|
14
+ builder.payload = OrderCreated.new 123
15
+ end
16
+
17
+ @process.handle event
18
+
19
+ assert_equal 1, @process.handled
20
+ end
21
+
22
+ def test_handle_finish
23
+ event = Domain::EventMessage.build do |builder|
24
+ builder.payload = OrderCanceled.new 123
25
+ end
26
+
27
+ @process.handle event
28
+
29
+ assert_equal 1, @process.handled
30
+ refute @process.active?
31
+ end
32
+ end
33
+
34
+ end
35
+ end
@@ -0,0 +1,41 @@
1
+ require 'test_helper'
2
+ require 'domain/fixtures'
3
+
4
+ module Synapse
5
+ module Repository
6
+ class OptimisticLockManagerTest < Test::Unit::TestCase
7
+ def test_fails_on_concurrent_modification
8
+ manager = OptimisticLockManager.new
9
+
10
+ id = SecureRandom.uuid
11
+
12
+ aggregate1 = Domain::Person.new id, 'Calculon'
13
+ aggregate2 = Domain::Person.new id, 'Calculon'
14
+
15
+ manager.obtain_lock aggregate1.id
16
+ manager.obtain_lock aggregate2.id
17
+
18
+
19
+ aggregate1.change_name 'Bender'
20
+ aggregate2.change_name 'Amy'
21
+
22
+ assert manager.validate_lock aggregate1
23
+ refute manager.validate_lock aggregate2
24
+ end
25
+
26
+ def test_lock_cleanup
27
+ manager = OptimisticLockManager.new
28
+
29
+ id = SecureRandom.uuid
30
+
31
+ manager.obtain_lock id
32
+ manager.obtain_lock id
33
+ manager.release_lock id
34
+ manager.release_lock id
35
+
36
+ aggregates = manager.instance_variable_get :@aggregates
37
+ refute aggregates.has_key? id
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,20 @@
1
+ require 'test_helper'
2
+ require 'domain/fixtures'
3
+
4
+ module Synapse
5
+ module Repository
6
+ class PessimisticLockManagerTest < Test::Unit::TestCase
7
+ def test_lifecycle
8
+ @manager = PessimisticLockManager.new
9
+
10
+ aggregate = Domain::Person.new SecureRandom.uuid, 'Bender'
11
+
12
+ refute @manager.validate_lock aggregate
13
+
14
+ @manager.obtain_lock aggregate.id
15
+ assert @manager.validate_lock aggregate
16
+ @manager.release_lock aggregate.id
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,31 @@
1
+ require 'test_helper'
2
+
3
+ module Synapse
4
+ module Serialization
5
+
6
+ class ConverterChainTest < Test::Unit::TestCase
7
+ def test_convert
8
+ converters = Array.new
9
+ converters << ObjectToJsonConverter.new << JsonToObjectConverter.new
10
+
11
+ chain = ConverterChain.new converters
12
+
13
+ assert_equal Object, chain.source_type
14
+ assert_equal Object, chain.target_type
15
+
16
+ content = { 'foo' => 'bar' }
17
+
18
+ type = SerializedType.new 'TestType', 1
19
+ object = SerializedObject.new content, content.class, type
20
+
21
+ converted = chain.convert object
22
+ converted_content = chain.convert_content content
23
+
24
+ assert_equal content, converted.content
25
+ assert_equal content, converted_content
26
+ assert_equal type, converted.type
27
+ end
28
+ end
29
+
30
+ end
31
+ end
@@ -5,7 +5,7 @@ module Synapse
5
5
  module Serialization
6
6
  class LazyObjectTest < Test::Unit::TestCase
7
7
  def test_deserialize_once
8
- serializer = MarshalSerializer.new
8
+ serializer = MarshalSerializer.new ConverterFactory.new
9
9
  event = TestEvent.new 'a', 'b'
10
10
 
11
11
  serialized = serializer.serialize event, String
@@ -32,8 +32,10 @@ module Synapse
32
32
 
33
33
  aware = SerializationAwareDomainEventMessage.new message
34
34
 
35
- serializer_a = MarshalSerializer.new
36
- serializer_b = MarshalSerializer.new
35
+ converter_factory = ConverterFactory.new
36
+
37
+ serializer_a = MarshalSerializer.new converter_factory
38
+ serializer_b = MarshalSerializer.new converter_factory
37
39
 
38
40
  [:serialize_metadata, :serialize_payload].each do |method|
39
41
  serialized_a = aware.send method, serializer_a, String
@@ -7,7 +7,7 @@ module Synapse
7
7
  def test_from_data
8
8
  builder = SerializedDomainEventMessageBuilder.new
9
9
 
10
- serializer = MarshalSerializer.new
10
+ serializer = MarshalSerializer.new ConverterFactory.new
11
11
 
12
12
  data = StubSerializedDomainEventData.new
13
13
  data.id = 0
@@ -23,8 +23,9 @@ module Synapse
23
23
 
24
24
  class SerializedDomainEventMessageTest < Test::Unit::TestCase
25
25
  def setup
26
- @serializer_a = MarshalSerializer.new
27
- @serializer_b = MarshalSerializer.new
26
+ converter_factory = ConverterFactory.new
27
+ @serializer_a = MarshalSerializer.new converter_factory
28
+ @serializer_b = MarshalSerializer.new converter_factory
28
29
  end
29
30
 
30
31
  def test_serialization
@@ -7,7 +7,7 @@ module Synapse
7
7
  class MarshalSerializerTest < Test::Unit::TestCase
8
8
 
9
9
  def test_serialize_deserialize
10
- serializer = MarshalSerializer.new
10
+ serializer = MarshalSerializer.new ConverterFactory.new
11
11
  event = TestEvent.new 'derp', 'herp'
12
12
 
13
13
  serialized_obj = serializer.serialize event, String
@@ -10,7 +10,7 @@ module Synapse
10
10
  end
11
11
 
12
12
  def test_serialize_deserialize
13
- serializer = OjSerializer.new
13
+ serializer = OjSerializer.new ConverterFactory.new
14
14
  event = TestEvent.new 'derp', 'herp'
15
15
 
16
16
  serialized_obj = serializer.serialize event, String
@@ -8,7 +8,7 @@ module Synapse
8
8
  def setup
9
9
  skip 'Ox not supported on JRuby' if defined? JRUBY_VERSION
10
10
 
11
- @serializer = OxSerializer.new
11
+ @serializer = OxSerializer.new ConverterFactory.new
12
12
  end
13
13
 
14
14
  def test_serialize_and_deserialize
@@ -7,7 +7,7 @@ module Synapse
7
7
  def test_revision
8
8
  revision = '123'
9
9
 
10
- serializer = Serializer.new
10
+ serializer = Serializer.new ConverterFactory.new
11
11
  serializer.revision_resolver = FixedRevisionResolver.new revision
12
12
 
13
13
  type = serializer.type_for Object
data/test/test_ext.rb CHANGED
@@ -4,10 +4,13 @@ class Test::Unit::TestCase
4
4
  # @param [Integer] timeout In seconds
5
5
  # @param [Float] retry_interval In seconds
6
6
  # @return [undefined]
7
- def wait_until(timeout = 2, retry_interval = 0.1, &block)
7
+ def wait_until(timeout = 5, retry_interval = 0.01, &block)
8
8
  start = Time.now
9
9
  until !!block.call
10
- raise if (Time.now - start).to_i >= timeout
10
+ if (Time.now - start).to_i >= timeout
11
+ raise 'Operation timed out'
12
+ end
13
+
11
14
  sleep retry_interval
12
15
  end
13
16
  end
@@ -7,19 +7,19 @@ module Synapse
7
7
  def test_duplicates
8
8
  registry = WireRegistry.new false
9
9
 
10
- registry.register Wire.new Object, :test
11
- registry.register Wire.new Integer, :test
10
+ registry.register Wire.new Object, Hash.new, :test
11
+ registry.register Wire.new Integer, Hash.new, :test
12
12
 
13
13
  assert_raise DuplicateWireError do
14
- registry.register Wire.new Object, :test
14
+ registry.register Wire.new Object, Hash.new, :test
15
15
  end
16
16
  end
17
17
 
18
18
  def test_each_type
19
19
  registry = WireRegistry.new false
20
20
 
21
- registry.register Wire.new Integer, :test
22
- registry.register Wire.new Object, :test
21
+ registry.register Wire.new Integer, Hash.new, :test
22
+ registry.register Wire.new Object, Hash.new, :test
23
23
 
24
24
  types = Array.new
25
25
  registry.each_type do |type|
@@ -32,8 +32,8 @@ module Synapse
32
32
  def test_wire_for
33
33
  registry = WireRegistry.new false
34
34
 
35
- registry.register Wire.new Object, :test
36
- registry.register Wire.new Integer, :test
35
+ registry.register Wire.new Object, Hash.new, :test
36
+ registry.register Wire.new Integer, Hash.new, :test
37
37
 
38
38
  wire = registry.wire_for Integer
39
39
  assert_equal Integer, wire.type
@@ -45,9 +45,9 @@ module Synapse
45
45
  def test_wires_for
46
46
  registry = WireRegistry.new false
47
47
 
48
- registry.register Wire.new String, :test
49
- registry.register Wire.new Object, :test
50
- registry.register Wire.new Integer, :test
48
+ registry.register Wire.new String, Hash.new, :test
49
+ registry.register Wire.new Object, Hash.new, :test
50
+ registry.register Wire.new Integer, Hash.new, :test
51
51
 
52
52
  wires = registry.wires_for Integer
53
53
 
@@ -10,7 +10,7 @@ module Synapse
10
10
  target = Object.new
11
11
  mock(target).test(payload)
12
12
 
13
- wire = Wire.new TestEvent, :test
13
+ wire = Wire.new TestEvent, Hash.new, :test
14
14
  wire.invoke target, payload
15
15
  end
16
16
 
@@ -28,14 +28,14 @@ module Synapse
28
28
  raise 'Oh noes' unless @secret == 5
29
29
  end
30
30
 
31
- wire = Wire.new TestEvent, handler
31
+ wire = Wire.new TestEvent, Hash.new, handler
32
32
  wire.invoke target, payload
33
33
  end
34
34
 
35
35
  def test_comparison_and_equality
36
- wire_a = Wire.new TestEvent, :test
37
- wire_b = Wire.new TestEvent, :test
38
- wire_c = Wire.new TestSubEvent, :test
36
+ wire_a = Wire.new TestEvent, Hash.new, :test
37
+ wire_b = Wire.new TestEvent, Hash.new, :test
38
+ wire_c = Wire.new TestSubEvent, Hash.new, :test
39
39
 
40
40
  assert wire_a == wire_b
41
41
  assert wire_b == wire_a
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: synapse-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.4.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-05-10 00:00:00.000000000 Z
12
+ date: 2013-05-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -92,6 +92,7 @@ files:
92
92
  - lib/synapse/event_store.rb
93
93
  - lib/synapse/repository/lock_manager.rb
94
94
  - lib/synapse/repository/pessimistic_lock_manager.rb
95
+ - lib/synapse/repository/optimistic_lock_manager.rb
95
96
  - lib/synapse/repository/errors.rb
96
97
  - lib/synapse/repository/locking.rb
97
98
  - lib/synapse/repository/repository.rb
@@ -114,22 +115,25 @@ files:
114
115
  - lib/synapse/upcasting/context.rb
115
116
  - lib/synapse/version.rb
116
117
  - lib/synapse/process_manager.rb
118
+ - lib/synapse/process_manager/process_repository.rb
119
+ - lib/synapse/process_manager/lock_manager.rb
117
120
  - lib/synapse/process_manager/correlation_set.rb
121
+ - lib/synapse/process_manager/pessimistic_lock_manager.rb
118
122
  - lib/synapse/process_manager/correlation.rb
123
+ - lib/synapse/process_manager/repository/in_memory.rb
119
124
  - lib/synapse/process_manager/correlation_resolver.rb
125
+ - lib/synapse/process_manager/process_manager.rb
126
+ - lib/synapse/process_manager/process_factory.rb
127
+ - lib/synapse/process_manager/resource_injector.rb
128
+ - lib/synapse/process_manager/simple_process_manager.rb
129
+ - lib/synapse/process_manager/wiring/process_manager.rb
130
+ - lib/synapse/process_manager/wiring/process.rb
120
131
  - lib/synapse/process_manager/process.rb
121
132
  - lib/synapse/command.rb
122
133
  - lib/synapse/upcasting.rb
123
- - lib/synapse/event_store/mongo/cursor_event_stream.rb
124
- - lib/synapse/event_store/mongo/event_store.rb
125
- - lib/synapse/event_store/mongo/storage_strategy.rb
126
- - lib/synapse/event_store/mongo/template.rb
127
- - lib/synapse/event_store/mongo/per_commit_strategy.rb
128
- - lib/synapse/event_store/mongo/per_event_strategy.rb
129
134
  - lib/synapse/event_store/event_store.rb
130
135
  - lib/synapse/event_store/errors.rb
131
136
  - lib/synapse/event_store/in_memory.rb
132
- - lib/synapse/event_store/mongo.rb
133
137
  - lib/synapse/wiring.rb
134
138
  - lib/synapse/auditing/audit_logger.rb
135
139
  - lib/synapse/auditing/data_provider.rb
@@ -140,6 +144,8 @@ files:
140
144
  - lib/synapse/domain.rb
141
145
  - lib/synapse/common/identifier.rb
142
146
  - lib/synapse/common/duplication.rb
147
+ - lib/synapse/common/concurrency/public_lock.rb
148
+ - lib/synapse/common/concurrency/identifier_lock.rb
143
149
  - lib/synapse/common/message.rb
144
150
  - lib/synapse/common/errors.rb
145
151
  - lib/synapse/common/message_builder.rb
@@ -159,14 +165,10 @@ files:
159
165
  - lib/synapse/domain/message_builder.rb
160
166
  - lib/synapse/domain/aggregate_root.rb
161
167
  - lib/synapse/partitioning/memory_queue_writer.rb
162
- - lib/synapse/partitioning/amqp/amqp_queue_reader.rb
163
- - lib/synapse/partitioning/amqp/amqp_queue_writer.rb
164
- - lib/synapse/partitioning/amqp/key_resolver.rb
165
168
  - lib/synapse/partitioning/packing.rb
166
169
  - lib/synapse/partitioning/memory_queue_reader.rb
167
170
  - lib/synapse/partitioning/packing/json_unpacker.rb
168
171
  - lib/synapse/partitioning/packing/json_packer.rb
169
- - lib/synapse/partitioning/amqp.rb
170
172
  - lib/synapse/partitioning/queue_reader.rb
171
173
  - lib/synapse/partitioning/queue_writer.rb
172
174
  - lib/synapse/partitioning/message_receipt.rb
@@ -182,11 +184,10 @@ files:
182
184
  - lib/synapse/serialization/message/serializer.rb
183
185
  - lib/synapse/serialization/serialized_type.rb
184
186
  - lib/synapse/serialization/converter/ox.rb
185
- - lib/synapse/serialization/converter/bson.rb
186
187
  - lib/synapse/serialization/converter/chain.rb
187
- - lib/synapse/serialization/converter/factory.rb
188
188
  - lib/synapse/serialization/converter/json.rb
189
189
  - lib/synapse/serialization/converter/identity.rb
190
+ - lib/synapse/serialization/converter_factory.rb
190
191
  - lib/synapse/serialization/serializer/ox.rb
191
192
  - lib/synapse/serialization/serializer/oj.rb
192
193
  - lib/synapse/serialization/serializer/marshal.rb
@@ -210,6 +211,8 @@ files:
210
211
  - test/command/simple_command_bus_test.rb
211
212
  - test/command/serialization_test.rb
212
213
  - test/command/validation_test.rb
214
+ - test/repository/pessimistic_test.rb
215
+ - test/repository/optimistic_test.rb
213
216
  - test/repository/locking_test.rb
214
217
  - test/test_helper.rb
215
218
  - test/event_sourcing/storage_listener_test.rb
@@ -224,11 +227,19 @@ files:
224
227
  - test/upcasting/chain_test.rb
225
228
  - test/process_manager/process_test.rb
226
229
  - test/process_manager/correlation_set_test.rb
230
+ - test/process_manager/simple_process_manager_test.rb
227
231
  - test/process_manager/correlation_test.rb
232
+ - test/process_manager/process_factory_test.rb
233
+ - test/process_manager/wiring/process_test.rb
234
+ - test/process_manager/wiring/process_manager_test.rb
235
+ - test/process_manager/wiring/fixtures.rb
236
+ - test/process_manager/in_memory_test.rb
228
237
  - test/event_store/in_memory_test.rb
229
238
  - test/auditing/dispatch_interceptor_test.rb
230
239
  - test/auditing/data_provider_test.rb
231
240
  - test/auditing/unit_listener_test.rb
241
+ - test/common/concurrency/identifier_lock_test.rb
242
+ - test/common/concurrency/public_lock_test.rb
232
243
  - test/event_bus/wiring_test.rb
233
244
  - test/wiring/wire_registry_test.rb
234
245
  - test/wiring/wire_test.rb
@@ -247,6 +258,7 @@ files:
247
258
  - test/serialization/converter/ox_test.rb
248
259
  - test/serialization/converter/identity_test.rb
249
260
  - test/serialization/converter/json_test.rb
261
+ - test/serialization/converter/chain_test.rb
250
262
  - test/serialization/serializer_test.rb
251
263
  - test/serialization/lazy_object_test.rb
252
264
  - test/serialization/serializer/oj_test.rb
@@ -257,7 +269,8 @@ files:
257
269
  - test/serialization/fixtures.rb
258
270
  - test/serialization/serialized_type_test.rb
259
271
  homepage: https://github.com/iunruh/synapse
260
- licenses: []
272
+ licenses:
273
+ - Apache 2.0
261
274
  post_install_message:
262
275
  rdoc_options: []
263
276
  require_paths: