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

Reply via email to