Hi folks,
we are still making progress towards Apache Isis Version 2. While most of the
work goes into technical topics that stay under the hood, like decoupling from
JDO, there are also some changes to the programming model, that will affect you
and require migration of your domain-code.
We have no concrete release plan yet, we thought maybe October for a preview,
we'll see.
Anyway I do have a questions regarding the programming model:
Have you ever run into the issue of misspelling a supporting-method within your
domain-code
eg. verifyMyAction(...) instead of correct validateMyAction(...) then spending
some time to troubleshot this? What an inconvenience!
My proposed solution to this is to introduce a new annotation to make a
contract with the domain-model (meta-model) :
@Action
public void myAction() {
}
@Support // <-- to enforce a contract with the domain-model
public boolean hideMyAction() {
...
}
* The 'hideMyAction' method is termed 'supporting-method'. We have lots of
variants of these. (validateX, disableX, ...)
* This contract allows for a check whether the intended supporting-method gets
picked up by the framework and is not ignored. That way we can emit a
validation failure, if a support-method is misspelled or does have any other
deficiencies.
* The @Support annotation is optional, does not require you to migrate your
domain-code.
Do you like the concept? Should we use a better name for the annotation? Can we
reuse/repurpose any existing annotation?
Any thoughts?
Cheers, Andi