- [Integration Tests] Fix controller manager restart - some controllers are fixed to the test connection after functional tests
- Usage examples
- Key pattern support for a controller routing (ex. on Message, :action, routing_key: 'my.key.*')
- Tochtli::BaseController#rabbit_connection delegation
- Tochtli::BaseController callbacks: (before|after)_(setup|start|stop|restart) with
hooks
gem - Tochtli::BaseController#restart supports multiple queues
- Tochtli::Message#routing_key as a block
- Default Tochtli.logger logs on STDERR with WARN level
- Tochtli.cache is not obligatory
- Get rid of Tochtli::Test cases - replace with concerns (ex. include Tochtli::Test::Client not inherit from)
- Remove ActiveSupport dependencies (use Facets if Rails not loaded)
- Replace ActiveSupport::Cache with MiniCache and fix validation tests
- Use RabbitConnection#on_return method with all exchanges
- YARD introduced
- Tochtli::SimpleValidation for validation error messages
- RabbitClient#rabbit_config removed
- Removed RabbitClient#publish_and_wait (use SyncMessageHandler
- Fix #2: Client error on dropped message
- No more automatic routing. All routes have to be defined in the controller. (got rid of the MessageMap)
- Message attributes rewritten with Virtus.
- Message#bind_topic renamed to route_to
- BaseController#subscribe renamed to bind
- BaseClient#instance (singleton support) removed
- Tochtli::Test::IntegrationHelpers module with methods extracted from Tochtli::Test::Integration
- setup and teardown -> before_setup and after_teardown (no need for def setup; super; ... in tests)
- Process each message in a separate controller instance (
BaseController::Dispatcher
introduced) - Use separate channels and work pools per controller
- ControllerManager#start selectively starts controllers
- BaseController#start accepts queue name. Multiple queues are supported per single controller.
queue
&queue_exists?
methods for TestRabbitConnection- Single reply queue per rabbit connection
- configuration_store removed from
RabbitClient
(should be used separately) RabbitConnection.logger
default set toTochtli.logger
- ActiveRecordConnectionCleaner - a middleware for active connection cleanup
- Tochtli.application with middlewares introduced
- Network failure recovery rewritten (using automatic bunny recovery with additional reply queue binding recovery)
- Bunny logger redirected to RabbitConnection logger with level dependent on Tochtli.debug_bunny (by default WARN)
RabbitConnection
logger setup with configuration
RabbitConnection
connection cache.RabbitConnection.open(configuration_name)
as a standard connection access method.
- BaseController callbacks around :start and :setup
- Public BaseController#setup method (for manual routing control in tests)
- Tochtli::BaseClient tests, expect_published helper method
- Tochtli::Message required_attributes and optional_attributes declarations
- Tochtli::ServiceCache caches the store object with method: Tochtli::ServiceCache.store
- Tochtli::BaseClient singleton methods accept any number of arguments (passed to constructor)
- Get rid of ClientProxy. Error handling unified in BaseClient.
- Default logger for BaseClient (Tochtli.logger)
- Tochtli::Message validation callbacks
- Tochtli::Message#ignore_excess_attributes for open messages
- assert_published accepts block and yields message
- Tochtli::BaseClient introduced (with MessageHandler and SyncMessageHandler)
- Protect RabbitConnection from crash when Rails.root is not set
- Test fix: timeout raised
- Rails 4.2 compatibility fix
- Switched to minitest
- Blocking client proxy should not block on immediate reply (refs #13829)
- Remove Rails dependencies
- Update corrupted gemspec
- Move add_engine_migrations method to hoe-puzzleflow
- User always PuzzleFlow gem server
- User always PuzzleFlow gem server
- rakefile cleaning
- hoe introduced with git and geminabox integration
- do not show ruby warnings (reset RUBY_FLAGS)
- hoe-puzzleflow used to unify hoe spec with other PuzzleFlow gems
- Birthday!