Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
So called Application Features are currently referenced by fully qualified class names, which breaks persistent authorization data as soon as Application Features are refactored to new class names.
The idea is to collate the objectTypes and use the "dirname" part as the package. Normally this will be a single value, representing a name of the module (though I think there's no restriction; logical subpackages probably would work).
For example, we could have "customer.Customer" and "customer.EmailAddress" as two object types. These would both be in the logical package (aka module) of "customer".
Or we might have "customer.Customer" but also "customer.contact.EmailAddress" and "customer.contact.PhoneNumber" and "customer.contact.PostalAddress". In this case we would have the module "customer" and another inferred module "customer.contact".
ASIDE: I could imagine there being some metamodel validation whereby the owning module (Spring `@Configuration`) could specify a module name, and then we check that all domain classes within that module declare an objectType that is equal or a submodule of that owning module. But that's probably another ticket, for another day.