Hi Andi, I like the idea of using an annotation, because it makes the programming model more consistent.
Maybe @Action(type=Supporting) ? -j -----Ursprüngliche Nachricht----- Von: Andi Huber [mailto:ahu...@apache.org] Gesendet: Sonntag, 22. September 2019 10:01 An: users@isis.apache.org Betreff: Extending the Programming Model with @Support? 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 Kühne + Nagel (AG & Co.) KG Rechtsform: Kommanditgesellschaft, Bremen HRA 21928, USt-IdNr.: DE 812773878. Geschäftsleitung Kühne + Nagel (AG & Co.) KG: Holger Ketz (Vors. ), Martin Brinkmann, Lars-Olof Grün, Matthias Knicky, Nicholas Minde, Johannes Trimborn, Lars Wedel, Matthias Weiner. Persönlich haftende Gesellschafterin: Kühne & Nagel A.G., Rechtsform: Aktiengesellschaft nach luxemburgischem Recht, HR-Nr.: B 18745, Geschäftsführendes Verwaltungsratsmitglied: Karl Gernandt. Geschäftsleitung Region Europa: Dr. Hansjörg Rodi (Vors.), Mart Ambur, Tom Ban, Dominic Edmonds, Thierry Held, Uwe Hött, Richard Huhn, Jan-Hendrik Köstergarten, Heiko Schuhmacher. Wir arbeiten ausschließlich auf Grundlage der Allgemeinen Deutschen Spediteurbedingungen 2017 (ADSp 2017). Hinweis: Die ADSp 2017 weichen in Ziffer 23 hinsichtlich des Haftungshöchstbetrages für Güterschäden (§ 431 HGB) vom Gesetz ab, indem sie die Haftung bei multimodalen Transporten unter Einschluss einer Seebeförderung und bei unbekanntem Schadenort auf 2 SZR/kg und im Übrigen die Regelhaftung von 8,33 SZR/kg zusätzlich auf 1,25 Millionen Euro je Schadenfall sowie 2,5 Millionen Euro je Schadenereignis, mindestens aber 2 SZR/kg, beschränken. Die ADSp sind auf unserer Webseite als Download erhältlich. Auf Anfrage senden wir Ihnen diese auch gerne zu.