-
Notifications
You must be signed in to change notification settings - Fork 24
Roadmap
Morf has only recently been decoupled from Alfa Systems, our core product. We wanted to move development into the open as soon as possible, but that means there are many issues we need to resolve before it can be considered for a 1.0.0 release.
The following are under active development.
Morf grew organically with Alfa Systems, so we have never actually documented how to implement it from scratch in a new project. In finalising these user stories, we will be both documenting them for new users and implementing any new APIs necessary to make the experience right.
The data access entry point (SqlStatementExecutor
) allows SQL DML to be executed at runtime using the Morf DSL. This is currently missing from Morf because it lives elsewhere in the Alfa Systems codebase, in a module we aren't publishing.
Without it, using the DSL at runtime is ugly (you need to use the SqlDialect
to convert the SQL DSL into a string, then run that directly using JDBC).
It needs to be disentangled and moved into Morf so that Morf can be used for data access at runtime.
While being decoupled, Morf acquired a number of direct dependencies which are unnecessary and would make it much harder to integrate into real-world projects.
Wee need to remove the Guice, JXL and XPP3 dependencies from morf-core, possibly moving them to optional modules.
Currently, most elements of the SQL DSL are mutable. This is one of those things that occurred organically over time to make the DSL read more cleanly, but which has increasingly looked out of place. It also prevents a number of performance optimisations.
All SQL dialect elements need to be made immutable, allowing us to resolve some unpleasant API side-effects. Once this is done, we can significantly improve caching and performance.
This will have widespread binary compatibility issues, and even text API compatibility in some edge cases.
We have a simple command-line/UI tool built over Morf which allows end users to copy arbitrary database schemas and data between servers, platforms and cross-platform XML "dumps".
This is an extremely useful and unique tool and also a nice, clean example of how to use Morf in the real world. We want that published, but it also needs some extrication from our code stack.
Currently we force a log4j dependency on applications. There's no need.
Much of the documentation is lacking or incorrect.
© 2017-2018 Alfa Financial Software