Autowired is used by Spring DI to automatically resolve dependencies.
Transactional is used by Spring TX to wrap low level transaction handling.
Aleksandar: The command handling retrofitting is a the right choice, happy to see this.
Markus Geiss: Is the exchange rate fetched online or is there a configuration?
Aleksandar: Current implementation using a configuration, and the value is update manual once per month. Would be nice to have a batch job that fetches exchange rates once per day using something like Open Exchange Rate.
Markus Geiss: We're looking for data driven authorization too. What have you uses to create rulebased permissions?
Aleksandar: I've used a scripting approach using mvel2 and fetch the configured script after entity/action permissions was successful.
Extending entities is difficult and time consuming because right now part of the business logic (validation) is mingled into the data layer. It would be better to extract this to ease the extension of both the data portion and the business logic. Maybe it would make sense to externalize some rules and use Drools to allow simple extensions.
Markus Geiss: I agree that there is some mixing of concerns that need to be refactored to have a clear separation. We are planning to introduce Drools as a add-on to a more simple approach.
Aleksandar: Drools offer a very simple Excel-template to allow non-devs to create rules. Most the users will be comfortable and experienced with Excel.
Is there a plan to replace native SQL statements with a more abstract solution (JPQL, HQL)?
Markus Geiss: Yes, it's part of some technical enhancements. We still need to find define a clear road map and mingle it into the general release planning.
Right now the platform is only one project, all modules are part of one source tree and it is hard to extend this without loosing backwards compatibility. Are there plans to modularize the platform to become a real platform?
Markus Geiss: Yes, right now we're looking for a nice and simple way to do it.
Aleksandar: I've worked with Broadleaf Commerce and I think their approach would give enough freedom to extend the platform. They simply split the project into multiple modules and provide maven artifacts that can be pulled to create a project with all needed things.
Markus Geiss: This sounds like a really good first solution. Will dive into it.
Aleksandar: There are other ways too, like OSGi but they are way to complex and support is lacking for while now. Maybe a simple but usable approach will work out better upfront.
When date are send from different locations and timezones it is a burden to do all the transformation, beside it is very fragile and buggy.
Markus Geiss: I believe it would help if we support ISO 8601 and use this to transmit dates and times. Most frameworks will support this out of the box.