You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@isis.apache.org by "Daniel Keir Haywood (Jira)" <ji...@apache.org> on 2021/01/22 09:42:00 UTC

[jira] [Updated] (ISIS-2235) Mixins declared using @Property, @Collection or @Action should propagate facets correctly

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

Daniel Keir Haywood updated ISIS-2235:
--------------------------------------
    Description: 
In particular, doesn't properly create domain events if abstract and invoke via the wrapper (ie during integ tests)

fix? don't use getDeclaredFields, instead getFields (I think... to test)

example in estatio - HasDocumentAbstract_categoriseAbstract subclasses.

~~~
 because of [https://github.com/apache/isis/blob/69b4859f27ce857e9af75b7d1ef0ae7b42e5cc2c/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/mixin/MixinFacetAbstract.java#L97]

getDeclaredFields() rather than getFields()

~~~~

 

for example, with this mixin:
{code:java}
@Property
public class SimpleObject_self {
    private final SimpleObject simpleObject;

    public SimpleObject_self(SimpleObject simpleObject) {
        this.simpleObject = simpleObject;
    }

    @ActionLayout(contributed = Contributed.AS_ASSOCIATION)
    public SimpleObject prop() {
        return simpleObject;
    }

}
 {code}
it's necessary to specify @ActionLayout, otherwise the behaviour is contributed as both an association and an action.

The @ActionLayout should be inferred.

~~~

See the same for @Collection and @Action also ... should imply AS_ASSOCIATION and AS_ACTION respectively.

~~~

Also, (and this might be a slightly different issue), the facets defined by @Property(...) should be copied down correctly to the corresponding facets on the action, eg domain event (this might need specifying more precisely...)

 

 

  was:
for example, with this mixin:
{code:java}
@Property
public class SimpleObject_self {
    private final SimpleObject simpleObject;

    public SimpleObject_self(SimpleObject simpleObject) {
        this.simpleObject = simpleObject;
    }

    @ActionLayout(contributed = Contributed.AS_ASSOCIATION)
    public SimpleObject prop() {
        return simpleObject;
    }

}
 {code}
it's necessary to specify @ActionLayout, otherwise the behaviour is contributed as both an association and an action.

The @ActionLayout should be inferred.

~~~

See the same for @Collection and @Action also ... should imply AS_ASSOCIATION and AS_ACTION respectively.

~~~

Also, (and this might be a slightly different issue), the facets defined by @Property(...) should be copied down correctly to the corresponding facets on the action, eg domain event (this might need specifying more precisely...)

 

 


> Mixins declared using @Property, @Collection or @Action should propagate facets correctly
> -----------------------------------------------------------------------------------------
>
>                 Key: ISIS-2235
>                 URL: https://issues.apache.org/jira/browse/ISIS-2235
>             Project: Isis
>          Issue Type: Bug
>          Components: Isis Core
>            Reporter: Daniel Keir Haywood
>            Priority: Major
>
> In particular, doesn't properly create domain events if abstract and invoke via the wrapper (ie during integ tests)
> fix? don't use getDeclaredFields, instead getFields (I think... to test)
> example in estatio - HasDocumentAbstract_categoriseAbstract subclasses.
> ~~~
>  because of [https://github.com/apache/isis/blob/69b4859f27ce857e9af75b7d1ef0ae7b42e5cc2c/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/mixin/MixinFacetAbstract.java#L97]
> getDeclaredFields() rather than getFields()
> ~~~~
>  
> for example, with this mixin:
> {code:java}
> @Property
> public class SimpleObject_self {
>     private final SimpleObject simpleObject;
>     public SimpleObject_self(SimpleObject simpleObject) {
>         this.simpleObject = simpleObject;
>     }
>     @ActionLayout(contributed = Contributed.AS_ASSOCIATION)
>     public SimpleObject prop() {
>         return simpleObject;
>     }
> }
>  {code}
> it's necessary to specify @ActionLayout, otherwise the behaviour is contributed as both an association and an action.
> The @ActionLayout should be inferred.
> ~~~
> See the same for @Collection and @Action also ... should imply AS_ASSOCIATION and AS_ACTION respectively.
> ~~~
> Also, (and this might be a slightly different issue), the facets defined by @Property(...) should be copied down correctly to the corresponding facets on the action, eg domain event (this might need specifying more precisely...)
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)