OK, Johan, thanks for that vote. I guess we're balancing this against the complexity within the framework, to be able to support both styles of programming model. So at the moment the framework is more complicated because it does need to support both modes. One plus if we do make this change is that @Programmatic goes away completely.
A different perspective: this makes the framework more of an opt-in rather than an opt-out. I could argue that it also changes the "feel", to more of a library than a framework. That is, an Apache Isis v2 app is just a Spring Boot app with various domain objects, and they can be made visible in the UI if they are annotated. I'm about 60:40 myself for the proposal ... but that's perhaps because my head is in the "framework layer" at the moment rather than at the application layer. Anyone else? On Wed, 4 Dec 2019 at 11:54, Johan Doornenbal <jdoornen...@incode.org> wrote: > My first reaction is please don’t. I would really like to see that the > amount of annotations needed on an entity or service is the absolute > minimum. > > In other words: sensible defaults that ‘just work’ and annotations when > needed. > > Reserved words can make the framework harder to grasp as well? It would me > nice to bring the amount of concepts to works with also down to the bare > minimum. > > Grtz, > > Johan > > On Wed, 4 Dec 2019 at 11:44, 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 > > >