[ 
https://issues.apache.org/jira/browse/ISIS-2064?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-2064:
------------------------------
    Description: 
as per dev mailing list

[https://lists.apache.org/thread.html/9d766b4e43079f81d1a72c9a78be9f78f65433cb92288394b7f195df@%3Cusers.isis.apache.org%3E]

 

We currently have the configuration property 
"isis.reflector.explicitAnnotations.action" which if specified requires @Action 
to be added as an annotation for all public methods that don't represent 
properties/collections or supporting methods.  If this is enabled then there's 
generally no need to annotate public methods that aren't meant to be in the 
metamodel with the @Programmatic annotation.
  
 Andi and I have just been discussing this (off-list) and wondering if we 
should extend this in v2.  Our idea is maybe to allow this to be specified at 
the class level, and to also have three levels rather than two:
  
 - explicit : all properties, collections and actions must be annotated
 - actions : actions must be annotated, but properties and collections need 
not.  This is the behavior if the above configuration property is specified.
 - implicit : no annotations are required.  This is the current default
  
 So, we were thinking to add a value to @DomainObject, eg
  
 @DomainObject(metamodelDiscoveryStrategy = EXPLICIT | ACTIONS | IMPLICIT | 
AS_CONFIGURED)
  
 where "AS_CONFIGURED" would read a new configuration property that would take 
these three values (replacing the existing 
"isis.reflector.explicitAnnotations.action".
  
 Two questions:
  
 1. is the idea of a new level to explicitly annotate everything (properties 
and collections as well as actions) useful ?
 2. is there a need to configure this on a class-by-class basis, or is a global 
configuration property sufficient?

  was:
We currently have the configuration property 
"isis.reflector.explicitAnnotations.action" which if specified requires @Action 
to be added as an annotation for all public methods that don't represent 
properties/collections or supporting methods.  If this is enabled then there's 
generally no need to annotate public methods that aren't meant to be in the 
metamodel with the @Programmatic annotation.
 
Andi and I have just been discussing this (off-list) and wondering if we should 
extend this in v2.  Our idea is maybe to allow this to be specified at the 
class level, and to also have three levels rather than two:
 
- explicit : all properties, collections and actions must be annotated
- actions : actions must be annotated, but properties and collections need not. 
 This is the behavior if the above configuration property is specified.
- implicit : no annotations are required.  This is the current default
 
So, we were thinking to add a value to @DomainObject, eg
 
@DomainObject(metamodelDiscoveryStrategy = EXPLICIT | ACTIONS | IMPLICIT | 
AS_CONFIGURED)
 
where "AS_CONFIGURED" would read a new configuration property that would take 
these three values (replacing the existing 
"isis.reflector.explicitAnnotations.action".
 
Two questions:
 
1. is the idea of a new level to explicitly annotate everything (properties and 
collections as well as actions) useful ?
2. is there a need to configure this on a class-by-class basis, or is a global 
configuration property sufficient?


> Allow explicit vs implicit metamodel discovery to be specified with 
> @DomainObject
> ---------------------------------------------------------------------------------
>
>                 Key: ISIS-2064
>                 URL: https://issues.apache.org/jira/browse/ISIS-2064
>             Project: Isis
>          Issue Type: New Feature
>            Reporter: Dan Haywood
>            Priority: Major
>             Fix For: 2.0.0-M2
>
>
> as per dev mailing list
> [https://lists.apache.org/thread.html/9d766b4e43079f81d1a72c9a78be9f78f65433cb92288394b7f195df@%3Cusers.isis.apache.org%3E]
>  
> We currently have the configuration property 
> "isis.reflector.explicitAnnotations.action" which if specified requires 
> @Action to be added as an annotation for all public methods that don't 
> represent properties/collections or supporting methods.  If this is enabled 
> then there's generally no need to annotate public methods that aren't meant 
> to be in the metamodel with the @Programmatic annotation.
>   
>  Andi and I have just been discussing this (off-list) and wondering if we 
> should extend this in v2.  Our idea is maybe to allow this to be specified at 
> the class level, and to also have three levels rather than two:
>   
>  - explicit : all properties, collections and actions must be annotated
>  - actions : actions must be annotated, but properties and collections need 
> not.  This is the behavior if the above configuration property is specified.
>  - implicit : no annotations are required.  This is the current default
>   
>  So, we were thinking to add a value to @DomainObject, eg
>   
>  @DomainObject(metamodelDiscoveryStrategy = EXPLICIT | ACTIONS | IMPLICIT | 
> AS_CONFIGURED)
>   
>  where "AS_CONFIGURED" would read a new configuration property that would 
> take these three values (replacing the existing 
> "isis.reflector.explicitAnnotations.action".
>   
>  Two questions:
>   
>  1. is the idea of a new level to explicitly annotate everything (properties 
> and collections as well as actions) useful ?
>  2. is there a need to configure this on a class-by-class basis, or is a 
> global configuration property sufficient?



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to