All notable changes to this project will be documented in this file, which follows the guidelines on Keep a CHANGELOG. This project adheres to Semantic Versioning.
- Update framework-api to 4.3.0
- Added get file-service datasource to TestJdbcDataSourceProvider
- SHUTTER command renamed to SUSPEND
- UNSHUTTER command renamed to UNSUSPEND
- JMX client is now called using the command name as a String rather than the SystemCommand itself.
- SystemCommands moved out to the projects that contain their CommandHandlers rather than centralised in framework.
- Update json-schema-catalog to 1.7.6
- New command ValidatePublishedEventsCommand that is for checking that all events fulfil their schemas
- Commands now fail with an UnrunnableSystemCommandException if the command is already in progress
- New SystemCommands EnablePublishingCommand and DisablePublishingCommand for enabling/disabling the publishing beans
- Updated utilities.version to 1.20.3
- Updated json schema catalog to 1.7.5
- Renamed SystemCommandFailedException to SystemCommandInvocationFailedException for better exception handling in the JMX client
- JMX bean can now be pinged to get command status:
- COMMAND_RECEIVED
- COMMAND_IN_PROGRESS
- COMMAND_COMPLETE
- COMMAND_FAILED
- Added commandId to all SystemEvents
- All Shuttering Executors now implement the ShutteringExecutor interface
- New table in the system database 'system_command_status'
- All commands now have state that can be queried by the JMX client
- MDC service component logging interceptor
- EventCatchupCommand and IndexerCatchupCommand now both have a common interface: CatchupCommand
- ShutterCommand and UnshutterCommand now both have a common interface: ApplicationShutteringCommand
- Storing of Commands whilst shuttered is now idempotent
- Do not shutter the JmsEnvelopeSender when called from the Command-Controller component
- Injectable debug logger that logs only if debug logging is set.
- All SystemCommandHandler methods now also take a mandatory commandId as a parameter
- SystemCommander JMX bean now returns a unique command id for each command that it runs
- Renamed ValidateCatchupCommand to VerifyCatchupCommand
- Added MBeanClientConnectionException to the JMX client classes to show that a connection error occurred
- New SystemCommands: AddTriggerCommand, RemoveTriggerCommand and ValidateCatchupCommand
- Updated framework-api to 4.1.0
- System commands now run using a ManagedExecutor rather than an asynchronous EJB
- SystemCommandStore moved to an interface implemented by DefaultSystemCommandStore. This is to allow stubbing in integration tests
- All JMX SystemCommands are now run asynchronously. i.e the call to the JMX bean will return immediately
- The JMX SystemCommandBean now only throws 2 Exceptions
- UnsupportedSystemCommandException. If the command is unrecognised by the context.
- SystemCommandFailedException. On any other failure. NB. this Exception also contains the stacktrace of the server side exception
- ordering to subscriptions descriptor yamls
- JdbcDataSourceProvider can now handle multiple DataSources
- JMX SystemCommands can now be disabled for a context
- JsonSchemaValidationMatcher now supports yaml/json/schema location
- Better error message if the name of the JMX bean is incorrect when called by the client
- New Utility test class for calling SystemCommands
- Name SystemCommand classes have consistent name. i.e. from ShutterSystemCommand to ShutterCommand
- The the context name in JmxParameters is now parsed so that everything after the first dash is excluded i.e. a war with name 'customer-service' would now become just 'customer'
- All server side Exceptions thrown by the JMX bean are now included in the api classes to fix ClassNotFoundExceptions in the JMX client
- ApplicationShutteredStateObserver so that state is not changed by observed events
- Shuttering state is now set directly rather than relying on Events as they may arrive out of order
- New call to get application state from JMX bean
- subscriptions_descriptor.yaml location pattern for jms_uri and rest_uri
- Fixed PING system command
- ShutteringRegistry is now correctly a singleton
- New jmx test-utils modulue with factory for running the jmx client classes in tests
- Update json-schema-catalog to 1.7.4
- Update utilities to 1.20.2
- Catchup and Rebuild fully implemented using JMX
- SystemCommand mechanism to allow us to call management commands on the framework via JMX
- New System Command to Shutter application
- New System Command to run Catchup
- New System Command to run Rebuild
- New System Command to run Indexes Catchup
- New System database
- New method to list all SystemCommands added to SystemCommander JmxBean
- Brought in jmx command client code from cake-shop
- JMX bean command handlers for system commands
- Observers for the shutter then catchup process
- JmsQueueBrowser service to return the size of a queue
- New jmx test-utils modulue with factory for running the jmx client classes in tests
- All commands received whilst the application is shuttered are stored in a new table 'shuttered_command_store' in the viewstore
- Stored commands are send to JMS once the application is un-shuttered
- Rename ComponentNameUtil to ComponentNameExtractor and moved to common
- Renamed JdbcRepositoryHelper to JdbcResultSetStreamer
- Extracted preparedStatementWrapperOf() in JdbcRepositoryHelper to a new class 'PreparedStatementWrapperFactory'
- Remove validation info logging
- Merged in Subscription domain, yaml parsing classes and builders from event-store
- JmsEnvelopeSenderProducer provides shuttering JmsEnvelopeSender by default to components, non component injection point will be provided with a non shuttering JmsEnvelopeSender
- Jmx client classes now use proper dependency injection
- The context name is now used in the registration name of the SystemCommander MBeans
- Moved InvalidHandlerMethodException to jmx-api to allow it to be caught in the command line jmx client
- Shuttering of a context is idempotent
- Extracted SystemCommands into their own module jmx-api
- rest_uri in event-sources.yaml is now optional to support JMS only sources
- If authentication fails when connecting to JMX then a specific exception 'JmxAuthenticationException' is thrown
- Update common-bom to 2.4.0
- Update framework-api 4.0.0
- Update utilities to 1.20.1
- Update json-schema-catalog to 1.7.4
- Update json-pojo-generator to 1.7.2
- Update file-service to 1.17.11
- Update test-utils to 1.24.2
- Update json-transformer to 1.0.7
- Removed all deprecated classes and methods
- Remove test-utils-wildfly module
- Event subscription now depends on utilities for YAML parser
- Add pojo implementation for Sender, Requester to DispatcherDelegate class
- Updated HandlerMethodMatcher class to support pojo envelope
- Updated to common-bom to 1.29.0
- Updated to test-utils to 1.22.0
- Updated to utilities to 1.16.4
- Updated to json-schema-catalog to 1.4.5
- Updated to framework-api 3.2.0
- wildfly-vfs module - VfsResolverStrategy class
- FileSystemUrlResolverStrategy interface
- Updated to test-utils to 1.19.1
- Updated to utilities to 1.16.2
- Updated to framework-api 3.1.0
- Implementation of Metadata interface adding eventNumber and previousEventNumber
- JsonValueEnvelopeMatcher for matching Envelope types
- Removed ReflectionUtils: use ReflectionUtil in test-utils instead
- setInt method to PreparedStatementWrapper
- Update framework-api to 3.0.1
- Set high priority to the EnveloperTestProvider
- Update test-utils to 1.18.1
- Update utilities to 1.16.1
- Update json-schema-catalog to 1.4.2
- Update framework-api to 3.0.0
- Fix base pom dependencies
- Update framework-api to version 3.0.0
- Aggregate to its own repository: https://github.com/CJSCommonPlatform/framework-domain
- Event Store to its own repository: https://github.com/CJSCommonPlatform/event-store
- Generators to their own repository: https://github.com/CJSCommonPlatform/framework-generators
- Cake Shop example app to its own repository: https://github.com/CJSCommonPlatform/cake-shop
- AbstractJdbcRepositoryIT from test utils, deprecated in previous version
- Moved CDI producers to Utilities
- Message adapter generator to use SubscriptionManager instead of the interceptor chain
- Travis setup now creates a postgres database as part of the build
- Moved EventBuffer into DefaultSubscriptionManager
- Moved persistence-test-utils to event-store
- Updated to use latest raml generator plugin
- Updated utilities version to 1.15.1
- Updated test-utils version to 1.17.2
- Updated file.service version to 1.16.4
- Updated json-schema-catalog version to 1.4.1
- Updated common-bom version to 1.26.0 for Jackson version 2.8.11
- Updated maven framework parent pom version to 1.12.2
- Updated raml maven plugin version to 1.6.2
- Updated generator maven plugin version to 2.5.0
- Reduce the logging level for not using schema catalog
- Moved Integration tests in Event Buffer to use the new postgress database rather then H2 in memory database
- Integration Tests now use a running local instance of Postgres, rather than using an in memory database
- Updated common-bom version to 1.27.0 to fix apache tika security issues
- Update JdbcEventRepository to return all active stream ids
- Schema catalog generation plugin to example service
- SchemaCatalogResolver to JsonSchemaLoader for resolving file base schemas with the schema catalog
- test-utils-enveloper-provider module
- EnveloperTestProvider that is used for testing usage of the Enveloper
- Flag to disable running of Integration Tests as part of the build
- Ability to return an Accepted code and payload from a post to a Command API component
- Upgraded generator maven plugin to version 2.6.0
- Upgraded json schema catalog to version 1.3.2
- Ability to return an Accepted code and payload from an post to a Command API component
- Remove logging to keep within Travis 4MB log limit
- Add SchemaCatalogResolver to JsonSchemaLoader for resolving file base schemas with the schema catalog
- Updated framework-api version to 2.1.2 to fix apache tika security issues
- Added a page size when reading stream of events
- Updated framework-api to 2.1.1
- Updated common-bom version to 1.27.0 to fix apache tika security issues
- Fix incorrect insertion of stream status table containing one record for unknown and correct source
- Update of stream status table now handles a source column of 'unknown'
- Update JdbcEventRepository to return all active stream ids
- Event Buffer stream status version update issue
- Schema Validation Exception not caught error
- Upgrade parent pom to fix upgrade of Jackson 2.8.11
- Reduce the logging level for not using schema catalog
- Upgrade Jackson to 2.8.11 to fix Jackson security issues
- Makes TestDataSourceFactory lock rows in the same way as postgresql
- Makes TestDataSourceFactory more extensible through overloaded createDataSource methods
- Tests for test-utils-pseristence were not in correct maven file structure so unused
- Minor fixes to test-utils-pseristence tests where components have changed
- Caches mapping between media types and action names for the schema catalog are now lazy loaded
- StreamId now persisted by enveloper for metadata
- Schema catalog generation plugin to example service
- Randomise JMS and HTTP ports for integration tests
- Move LoggerUtils to utilities as part of rest-adapter dependency update
- Remove dependencies on core in messaging-adapter-core and partly in rest-adapter-core
- Move DefaultJsonValidationLoggerHelper to core
- Use JsonSchemaValidatonException instead of org.everit.json.schema.ValidationException
- SPI for InterceptorContext.interceptorContextWithInput()
- Reinstate TestEventRepository test utility.
- JsonEnvelope and Metadata builder service provider
- Introduced event_stream table to the event-store, with accompanying repository and services
- Event-Store Restful API, including paginated feeds
- POJO support to HandlerMethods
- Event-Store operations for cloning, clearing and marking streams as inactive
- Add schema catalog generation and validation
- Switched to use Apache commons-lang3 library instead of commons-lang
- Update dependencies for OWASP fixes
- Upgraded example application to deploy as a Single war
- Updated example application schemas to avoid conflicts when deployed as a single war
- Convenience methods to JsonEnvelope for providing JsonEnvelopes and JsonObjectMetadataBuilders
- MetadataBuilderFactory in test-utils-core which contains convenience methods for creating JsonObjectMetadataBuilders in tests
- InterceptorChainEntryProvider to be used instead of InterceptorChainProvider
- Moved framework-api into a new repository
- Moved metrics into a new repository
- Component modules and Interceptor chain providers
- Unused dependencies, such as hamcrest-date
- Backwards compatible issue with JsonSchemaValidator
- Now using maven-framework-parent-pom 1.10.1
- Now generating mapping file for action name to media type, used when validating requests
- Catalog generation for all json schema files. Add an id into a json schema to use.
- Upgrade File Service to 1.14.0
- Upgrade Utilities to 1.11.0
- Upgrade Test Utils to 1.15.0
- The issue, where there are no schema validations of command handler due to single war class loading EventFilter of Event Listener for handlers which then skips validation due to no match on the names with events.
- Removed duplicated test utilities from test-utils module
- Use test-utils project version of test utilities
- Use latest release versions of dependencies to fix OWASP vulnerabilities
##Changed Replaced the JsonObjectObfuscator with the version from utilities that is based on javax.json
- Deprecate DefaultJsonEnvelope, JsonObjectBuilderWrapper and JsonObjectMetadata
- Deprecate JavaCompilerUtil
- Utilities library upgraded to 1.8.1 and file service to 1.11.1 to pick up JSON logging fix
- Deprecate InterceptorChainProvider
- org.apache.commons commons-lang3 dependency from core
2.2.1 - 2017-09-01
- Converted to release to bintray
- Converted example context to run as a single war by default
- Class conflicts between generated clients in a single war
2.2.0 - 2017-08-02
- Use maven-framework-parent-pom 1.6.1, which simply changes the wildfly-maven-plugin to 1.2.0.Alpha6 and stops adding it to every build
- example-it: move the wildfly operations to the pre/post-integration-test phases (where they belong)
- Switch to bintray for release processes
- Cleaned up some unnecessary version overrides
2.1.0 - 2017-07-17
- New test matcher for checking schema properties
- Aggregate snapshot repository did not use aggregate class when retrieving snapshots, so services that use multiple aggregate classes on the same stream could get class cast exceptions
2.0.0 - 2017-06-23
- Refactor all framework components that are not internal so that they are provided as interfaces via new Framework API modules
- Rework interceptor chain so that it is specific to a service component, by allowing each component to provide an interceptor chain definition rather than using annotation scanning
- Upgrade to use framework parent POM 1.5.0
- Upgrade to use common BOM 1.16.0
- Interceptor chain now adds the component name to the context so it can be used by the access control interceptor or anything else that needs it
- Logging dependencies tidied up - all logging implementations excluded from dependencies and tests use new test utils modules for logging
- Generated class names made more unique, including adding the base URI in class name for generated JMS listeners. Any project that overrides the generated class will need to change the class name of their override to match
- Improved logging for annotation scanning
- Add component to audit interceptor so that audit messages can distinguish between components even when they are deployed in a single WAR.
- Support for default sender destinations removed; senders now always require messaging clients to be provided, typically by generating one from the destination RAML.
- Access control Provider annotation and annotation scanning; this functionality has moved to the access control library
- Precondition class marked as deprecated - will be removed in 3.0.0 unless a different use case is found for it
- Test cases for random ZonedDateTime generators and added logging to show more info when they fail
- Javadoc errors
- Aggregate snapshot service was pulling in Liquibase due to an incorrect dependency scope
- Remove audit from event listener and event processor
- Script for building dependencies locally
- Support for generating and discovering direct adapters, if a message destination exists locally a service component in the same application
2.0.0-rc8 - 2017-06-23
- Remove audit from event listener and event processor
2.0.0-rc7 - 2017-06-23
- Message client generated class name no longer enforces base URI pattern
2.0.0-rc6 - 2017-06-22
- Improved logging for annotation scanning
- Add component to audit interceptor so that audit messages can distinguish between components even when they are deployed in a single WAR.
2.0.0-rc5 - 2017-06-20
- Include base URI in class name for generated JMS listeners. This ensures they are unique, but any project that overrides the generated class will need to change the class name of their override to match.
2.0.0-rc4 - 2017-06-19
- Aggregate snapshot service was pulling in Liquibase due to an incorrect dependency scope
2.0.0-rc3 - 2017-06-16
- Logging dependencies tidied up - all logging implementations excluded from dependencies and tests use new test utils modules for logging
- Precondition class marked as deprecated - will be removed in 3.0.0 unless a differen tuse case is found for it
2.0.0-rc2 - 2017-06-06
- Interceptor chain now adds the component name to the context so it can be used by the access control interceptor or anything else that needs it
- Access control Provider annotation and annotation scanning; this functionality has moved to the access control library
2.0.0-rc1 - 2017-05-31
- Refactor all framework components that are not internal so that they are provided as interfaces via new Framework API modules
- Rework interceptor chain so that it is specific to a service component, by allowing each component to provide an interceptor chain definition rather than using annotation scanning
- Upgrade to use framework parent POM 1.3.0
- Support for default sender destinations removed; senders now always require messaging clients to be provided, typically by generating one from the destination RAML.
- Test cases for random ZonedDateTime generators and added logging to show more info when they fail
- Javadoc errors
- Script for building dependencies locally
- Support for generating and discovering direct adapters, if a message destination exists locally a service component in the same application
1.7.1 - 2017-05-16
- Utility for browsing and deleting DLQ messages, backported from separate test utils library
- Support for adding additional fields when building metadata
1.7.0 - 2017-05-16
- Add test event log repository to the test-utils-core module
1.6.0 - 2017-05-05
- Support for PDF generation in Alfresco interface
- Service names with hyphens were also breaking other adapters and clients
1.5.1 - 2017-04-05
- Event listeners for services with a hyphen in the name generated invalid class names
1.5.0 - 2017-03-30
- MultipartRestClient in test-utils: client for multipart file uploads
- LiquibaseDatabaseBootstrapper in test-utils: bootstraps a database using your liquibase scripts
- Dependency on utilities-core
- Ability for multipart endpoint to handle multiple files
- Generators for generating multipart endpoints from RAML
- Generate random ZonedDateTime in different time zones and provide option to generate in UTC specific timezone
- Duplicate classes that are in utilities-core from the framework
- Configuration classes that are now in utilities-core
- Use File Service version 1.8.0
- Use Utilities version 1.6.0
- JsonEnvelopePayloadMatcher to support matching of JsonValue NULL payloads
1.4.3 - 2017-03-30
- Duplicate method names in REST client generator, fixed by making method name generation use more things
- Concurrently issue in event stream appends; optimistic locking did not kick in when it should
1.4.2 - 2017-03-08
- Uplift Resteasy dependency versions and changed to provided scope
- Allow JNDI values to fall back to globals
- Performance fix to internal optimistic locking failure retries
1.4.1 - 2017-02-13
- ObjectMapper truncation of converted ZoneDateTimes when milliseconds part ends with zero
- Ignore non vendor-specific media types while generating clients
1.4.0 - 2017-02-02
- JsonEnveloperBuilder in test-utils-core to replace the deprecated builer in DefaultJsonEnvelope.
- Generator support for CustomAdapter and CustomServiceComponent annotations
- Metadata causation being ignored in the Rest Adapter
- Deprecated the DefaultJsonEnvelope builder methods in favour of a test utils version.
1.3.0 - 2017-01-26
- Handle ACCEPTED(202) response type set in raml for asynchronous REST endpoints
- Fix of unclosed connections in MessageConsumerClient
- Log warning if generated rest adapter already exists
1.2.0 - 2017-01-19
- No wait retrieve method to MessageConsumerClient
- No close method to MessageConsumerClient
- wrong version of apache bean utils pulled in by open ejb core
1.1.0 - 2017-01-19
- Fix logging filter metadata bug
- Immediate retries to RetryInterceptor, defaults to 3 before applying wait period between retries
- Support for Http Methods DELETE, PATCH, POST and PUT. REST Adaptor and REST Client generators now support RAML that contains asynchronous DELETE, PATCH and PUT, and synchronous PATCH, POST and PUT.
- Support for matchers in TypeCheck class.
- Optimistic lock log message changed from warn to debug.
- Move default port provider to common module
- Add ConflictedResourceException for 409 responses
- Common-bom version to 1.6.0
1.0.1 - 2016-12-23
- Logging filter was breaking if a message payload contained the string _metadata to avoid having to parse the JSON; fixed so that it only looks for top level a top level _metadata field.
1.0.0 - 2016-12-16
- Logging request data is set in the SLF4J mapped diagnostic context (MDC) and can be added to the log output by setting %X{requestData} in the logger pattern
- Support for managing optimistic lock retry for event log, when using the PostgreSQL database. Default is to retry forever.
- ZonedDateTimeGenerator to generate random future or past ZonedDateTimes
- Improve ResponsePayloadMatcher to support string matchers on response payload
- Upgraded ObjectMapper to allow single arg constructors in Object serialization
- Aggregate snapshot repository enabled by default. This requires the
aggregate-snapshot-repository-liquibase
schema to have been applied to the event store database, which makes this release backwards incompatible - Event timestamps now added to private events automatically and stored in the event store as part
of the metadata and in a separate field. This requires the latest
event-repository-liquibase
schema to be applied to the event store database, which makes this release backwards incompatible
- DateTimeProvider after two months deprecation. Use Clock/UtcClock instead.
- JsonSchemaValidationMatcher to look for json schema in correct location
- JSON schema validation of date-time format fixed by using a forked version of the JSON schema validator library
- JsonSchemaValidationMatcher to fallback to raml maven dependency if not on json classpath
- File, file-api and file-alfresco modules
- File service interface
- Alfresco file service implementation
- Refactor random generators for string, uri and email
- Stream of streams event retrieval
- Proxy support to Rest Client
- JsonObjects toJsonArray method
- Improve BigDecimalGenerator to cover both positive and negative range
- Improve DoubleGenerator to cover the bounds of double
- TypeCheck class to provide better feedback on failure
- Parent pom to 1.2.0, common bom to 1.4.0 and raml-plugin to 1.3.0
- JDBC Repository resource close ordering
- Test cases related to random date generation
- ValueGenerator to randomly pick items from a given pool and renamed the class to ItemPicker
0.33.0 - 2016-10-31
- Support for RestClient to use proxy details from environment properties
- Matchers for matching handler and handler class methods, annotations and pass through process type (Sender or Requester)
- Empty stream matching to EventStreamMatcher
- toJsonArray utility function
- Improved event stream processing
0.32.0 - 2016-10-24
- JsonEnvelope.asJsonObject() for simple conversion of the entire envelope to a JsonObject.
- EventStreamMatcher to match stream of JsonEnvelopes appended
- RestPoller. A polling REST client utility for integration tests
- Mechanism for taking snapshots of aggregates, disabled by default. To enable, add a dependency on
the
aggregate-snapshot-service
module. Requires theaggregate-snapshot-repository-liquibase
schema to be applied to the event store. - JSON schema matching support in the JsonEnvelopeMatcher
- Added new module 'rest-core'
- Added 'rest-client-core' as a standard dependency for event-processor'
- Added 'hamcrest-date' as a standard dependency for 'test-utils-core'
- JsonEnvelopeMetadataMatcher to allow matching with JSON paths
- Deprecated PollingRestClient in favour of the new RestPoller
- RestProcessor now allows metadata from payload to be merged with headers instead of being overwritten
- Removed unwanted dependency on the RAML parser within the REST adapter so that adding the REST client to event processors does not break the application
- Failed release; do not use
0.30.0 - 2016-10-11
- Event buffer connection held open after exception in event listener
- RestClientProcessor tests clashing using common 8080 port
- JMS listeners for event topics did not use shared subscriptions. Fixing this allows multiple instances to run. Each message will be consumed only once across a cluster.
- Hamcrest Matchers for asserting JsonEnvelopes contained within either Streams or Lists
- New Clock interface to replace DateTimeProvider
- EnumPicker in random generators
- DateTimeProvider is now deprecated - use Clock instead
- JsonEnvelopeBuilder is now deprecated - use DefaultJsonEnvelope.envelope() instead
- Extend DefaultJsonEnvelope.Builder to accept JsonObject as part of the payload
- Unused JdbcConnectionProvider utility
0.29.0 - 2016-09-30
- 'Response is closed' bug in PollingRequestClient
- ZonedDateTimes methods to convert between ZDT and SQL timestamps
- LocalDate conversion functions
- EnveloperFactory method to create a Enveloper with a list of Event classes registered
- EventStreamMockHelper that provides a method to verify and return the Stream argument from a call to the EventStream append method
- DateProvider to allow easy mocking of date creating for testing
- Random generators and TypeCheck class for type-based testing
- Metrics per action name
- Event Store to include a 'date_created' timestamp field - added to the DB schema but not yet enabled in code
0.28.0 - 2016-09-21
- EventBufferInterceptor container discovery
0.27.0 - 2016-09-20
- JsonSchemaValidationMatcher class to validate json content against a schema
- PollingRequestClient class as a new implementation of the HttpResponsePoller
- Moved EventBufferInterceptor and EventFilterInterceptor to event-listener component
- Added withHeaders method to HttpResponsePoller
- BaseTransactionalTest to cleanup with rollback
- HttpResponsePoller, replaced with PollingRestClient
0.26.0 - 2016-09-20
- Failed release; do not use
0.25.0 - 2016-09-12
- sender.sendAsAdmin() method
- NPE JsonSenderWrapper
0.24.0 - 2016-09-08
- Configurable JNDI Auditing blacklist regex of action names in AuditingService
- Expose component metrics via Rest and JMX
- TestJdbcConnectionProvider: for getting hard out of container connections to the event and view stores
- DatabaseCleaner: allows easy clearing of database tables for integration tests
0.23.0 - 2016-09-01
- persistence-jdbc to the framework bom
0.22.0 - 2016-08-31
- Add JDBC Connection classes for easy access to event store and view store databases
- Fixed message producer client to use a system property to override the queue url
0.21.0 - 2016-08-30
- Add json object value matching to HttpResponsePoller utility
- Add a 'Request as Admin' request to the requester
- HttpResponsePoller conditional poll fixed
0.19.0 - 2016-08-26
- Dispatcher interceptor integration. Interceptors are chained between the adapter and the dispatcher
according to a priority setting. Interceptors implement the Interceptor interface and are registered
at startup.
Implemented interceptors: Event Buffer Interceptor, Access Control Interceptor - Event Listener Filter
- Additional features to the HttpResponsePoller utility
- Remote Client unable to POST to REST end point with media type that is different to action name
- SenderProducer support for @FrameworkComponent annotated Senders
0.18.0 - 2016-08-22
- test-utils-persistence to the framework bom
- CORS response header mismatch
- JMS Message Producer test-util connection closing issue
0.17.0 - 2016-08-19
- Travis build file settings
- Javadoc build issues
0.16.0 - 2016-08-18
- MessageProducerClient in test-utils for easy integration testing of sending messages
- UuidStringMatcher: A Hamcrest matcher for asserting that a string is a valid UUID
- EnvelopeFactory: for creating a simple JsonEnvelope for testing
- Updated to use DeltaSpike container managed persistence and transaction
- Remove asynchronous and synchronous differences from Dispatcher
0.15.0 - 2016-08-11
- Initial implementation of event ordering buffer for event listeners
- Add a simple Audit Client
- Add a toDebugStringPrettyPrinted() method that returns the JsonEnvelope as JSON
- Move the logic of JsonEnvelopeLoggerHelper to the toString() method of JsonEnvelope
- Move EnveloperFactory to test utils
0.14.0 - 2016-08-08
- Add a match all and do nothing EventMatcher to the EventSwitcher. This will ignore all other events. Example:
match(event).with(
when(SomethingAdded.class).apply(x -> id = x.getId()),
otherwiseDoNothing());
- Added test utility classes for logger producer, test messaging client and other http utilities.
- Removed schema validation for requests without a payload (actions without schema/example specified in raml and denoted with !!null).
Example (Two actions, the second has no payload):
application/vnd.people.modified-user+json:
schema: !include json/schema/people.modified-user.json
example: !include json/update-user.json
application/vnd.people.link-user+json: !!null
0.13.0 - 2016-07-28
- Service component passthrough test utility; test Command API, Command Controller, Query API and Query Controller as passthrough services
- Support for listening to all events on a topic or queue
- Causation HTTP header not sent by the REST client
- Removed limitation on messaging RAML resources to allow any queue or topic name
- 403 response from REST calls caused 500 to be returned
- Stream order not guaranteed when retrieving events from the event store
0.12.0 - 2016-07-14
- Use new parent POM and common POM projects
- Prevent access control triggering for remote handlers
- Ignore GET resources when generating JMS adapters
- Support for Event API components in RAML
- Action mapper annotation now always required in REST RAML; it is no longer possible to disable the action mapper system
0.11.0 - 2016-07-08
- Access control violations now return 403 forbidden response
- Support for Event API components in RAML
- Access control provider scanning and bean injection
- Event processor and JEE dependencies were incorrect
- Component module dependencies cleaned up and made consistent
0.10.1 - 2016-07-05
- Set framework BOM to POM packaging
0.10.0 - 2016-07-05
- Support for generating messaging clients from RAML
- Added EVENT_API service component type
- Support for simple access control with a default implementation that allows all requests
- New ZonedDateTimes utility class for converting JSON strings to UTC date times
- New JsonEnvelopeBuilder test utility class for building envelopes
- Bill of materials (BOM) for easier framework module dependency management in other Maven projects
- Object mapper configured to exclude nulls from JSON
- Ensure dates are stored and retrieved in UTC format
- Refactor DispatcherProvider into component parts
- Updated USER_ID constant in response to change by IDAM
- Updated COMMAND_API service component type to an http default input
0.9.0 - 2016-06-15
- Messaging adapter generator now uses Java Poet for code generation instead of a template
- Fix RAML action mapping description to allow other description text surrounding the mapping
- Fix action mapper to support media types with different character sets
0.8.12 - 2016-06-13
- Support for types on query parameters in the REST adapter generator
- Initial action mapping support for the REST adapter generator, turned off by default
- Fix media type handling in the test utilities REST client
0.8.11 - 2016-06-07
- Ensure Jackson always adds a timezone when marshalling timestamps
- Allow JAX-RS providers to be overridden in generated REST adapters
- Do not change port on REST requests to service components within the current service
0.8.10 - 2016-06-03
- Configuration option to control REST client port via a system property
- Add user id, session id and correlation id to REST headers for remote calls
- JSON schema validation error logging
0.8.9 - 2016-05-31
- Allow senders to be annotated at the field level
- Add ListToJsonArrayConverter
0.8.8 - 2016-05-31
- Requester injection for non-handler classes
- Skip generation flag for RAML plugin
- Metadata handling for REST client queries
- POST support for REST clients
- Persistence module and example for Deltaspike integration testing
0.8.7 - 2016-05-26
- CORS filter
0.8.6 - 2016-05-26
- Message trace logging
- JEE integration test support
- REST client test-utils module
- Version now supplied in event metadata
0.8.5 - 2016-05-23
- Revert to consistently use Jackson 2.6.4
0.8.4 - 2016-05-23
- Use Jackson 2.7.4
0.8.3 - 2016-05-23
- Relax event type validation to accept plural to ease context migration to new framework
0.8.2 - 2016-05-19
- Support for remote service invocation
0.8.1 - 2016-05-12
- Add annotation support for properties
- Add JSON schema validation support
- Support 404 response
- Optional query parameter support
- Support for endpoint exclusion in RAML rest generator
- Add aggregate service and helper functions
- Convert REST adapter generator to use Java Poet
- Disable WRITE_DATES_AS_TIMESTAMPS in Jackson
- Fix generator duplicate class detection for multi-platform support
0.8.0 - 2016-04-22
- Initial release with basic dispatcher, handler and adapter generation