Daniel Keir Haywood created ISIS-2329: -----------------------------------------
Summary: Support nested non-static mixins, with domain event class declared within. Key: ISIS-2329 URL: https://issues.apache.org/jira/browse/ISIS-2329 Project: Isis Issue Type: Improvement Affects Versions: 2.0.0-M3 Reporter: Daniel Keir Haywood Fix For: 2.0.0-M4 To support this, need to allow action domain events to have 1-arg constructor, being the mixee. eg, at the moment, in simpleapp, I can refactor updateName into a mixin: {code:java} public static class UpdateNameActionDomainEvent extends SimpleModule.ActionDomainEvent<SimpleObject.updateName> { } @Action(semantics = IDEMPOTENT, command = CommandReification.ENABLED, publishing = Publishing.DISABLED, associateWith = "name", domainEvent = UpdateNotesActionDomainEvent.class) public class updateName { public SimpleObject act(@Name final String name) { setName(name); return SimpleObject.this; } public String default0Act() { return getName(); } } {code} but the UpdateNameActionDomainEvent has to remain outside for now. Instead, I'd like to write: {code:java} @Action(semantics = IDEMPOTENT, command = CommandReification.ENABLED, publishing = Publishing.DISABLED, associateWith = "name", domainEvent = UpdateNotesActionDomainEvent.class) public class updateName { public class UpdateNameActionDomainEvent extends SimpleModule.ActionDomainEvent<SimpleObject.updateName> { } public SimpleObject act(@Name final String name) { setName(name); return SimpleObject.this; } public String default0Act() { return getName(); } } {code} The fix should be quite simple: improve the instantiation logic in DomainEventHelper to handle events with 1 arg as well as 0 args and 3 args. -- This message was sent by Atlassian Jira (v8.3.4#803005)