OK, thanks to all the opinions here. I guess that the conclusion is that we keep things as they are, with the "iksis.reflector.explicit-annotations.actions" configuration property (true/false) deciding whether an method without @Action is treated as a regular programmatic method (=true) or as an action (=false).
Kevin, You raised a separate point about user community traction. Agreed, we need to invigorate things. I am hoping that v2.0 is the route to that, especially once we also have JPA as an alternative to JDO support. At that point we can make the legitimate argument that an Apache Isis app is just a Spring Boot app. In other words, Spring Boot is the framework and Apache Isis is just a "plug-in" on top of that framework, with its own value add, namely a metamodel + UIs. Thanks again, all Dan On Thu, 5 Dec 2019 at 17:04, Sander Ginn <san...@ginn.it> wrote: > Hi all, > > I personally prefer the notion that the ‘default’ mode of an domain object > is to treat its members as part of the metamodel, because that’s the > problem Isis is aiming to solve. > I would argue that, as a consequence, a domain object is therefore built > up of only metamodel related methods; practically, we know that that’s not > always viable. @Programmatic to the rescue. Explicit exclusion of the > metamodel feels more sensible than explicit inclusion, given the philosophy > of Isis. > This approach also prevents the case where a ‘pure’ domain object would be > annotating every metamodel action even when that could just as well be > implicit. I agree with Johan in the sense that those annotations would be > superfluous. > > Best > Sander > > On 2019/12/04 10:43:53, Dan Haywood <d...@haywood-associates.co.uk> > wrote: > > Hi folks,> > > > > Canvassing opinions here.> > > > > Andi and I are still hard at work on v2.0. We've been chatting offline> > > about the @Action annotation. Currently this is optional, but there's > a> > > config property (isis.reflector.explicit-annotations.action) that can > be> > > set to require it to be required.> > > > > If it's required, then it allows actions that start with a "reserved" > word,> > > such as "clear", "disable" and "addTo" to be used as action names.> > > > > What do folks think about this? Obviously it means there's more effort > to> > > migrate to v2.0, but is it a worthwhile trade-off.> > > > > A couple of follow-on questions.> > > > > First, if we make @Action mandatory, should we do the same for > @Property> > > and @Collection?> > > > > Second, if we are being explicit about the "main" methods, should we > also> > > annotate supporting methods? There was an earlier discussion about > this,> > > where Andi had suggested a @Model annotation, the semantic opposite> > > of @Programmatic. I prefer the name @Supporting, but at any rate the > idea> > > is that the developer would annotate all supporting methods, and the> > > framework would then be able to ensure that none had become orphaned.> > > > > So, to summarise, what do we think about:> > > - @Action mandatory> > > - @Property and @Collection also mandatory> > > - @Supporting as an indicator of any supporting method, to make part of > the> > > metamodel and ensure not orphaned?> > > > > Thanks> > > > > Sander Ginn > T: +316 25 25 98 33 > >