Change the domain from 'Messages' to 'Order' as that domain is better
suited for an example project like this. First, update the commands and
events, adding an extra command/event to flesh out the domain some what
Add JPA and H2 dependencies to allow event sourcing, as for event
sourcing and EventStore is mandatory, and to make an EventStore a
database needs to be present for Axon's auto-configuration
-Add spring-boot-starter-web to support rest endpoints
-Add a rest endpoint to spoof some form of UI to publish a message, as
the old main will no longer publish the commands upon start up
-Change TargetAggregateIdentifier import statement to the new location
-Add equals/hashcode as best practice for commands and events
-Add description
-Change parent to parent-boot-2 to leverage a spring boot start up
approach
-Replace old import statements for the new locations
-Mark the aggregate as @Aggregate to make it autowired through the
spring boot starter
-Move all command handlers/decision making functions to the top of the
file
-Rename the command handler to `handle` as a best practice for command
handlers
-Use @EventSourcingHandler i.o. @EventHandler as a best practice for
event handlers in Aggregates, as those only are used to 'source' the
aggregate
-Update test case according to latest standards
-Add description
-Change parent to parent-boot-2 to leverage a spring boot start up
approach
-Replace core dependency for axon-spring-boot-autoconfigure excluding
axon-server as we cant start that up for this use case
-Add spring-boot-autoconfigure dependency
-Adjust the axon version to 4.0.3