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

Oscar Bou updated ISIS-803:
---------------------------
    Description: 
This issue is to remove a feature that is only partly implemented in the JDO 
objectstore, namely the lifecycle methods.

Jeroen and I were discussing this, and think they are possibly an anti-pattern 
since they tend to lead to fragile code.

Rather than have the object "pushing" changes to others, it would be better if 
an event were broadcast via the EventBus.  That way a subscribing service could 
pull appropriate changes and do whatever is necessary.

~~~
Possible implementation:

@DomainObject(
    domainEventOnLoad = ...,
    domainEventOnSave = ...,
    domainEventOnUpdate = ...,
    domainEventOnDelete = ...,
)

By using the corresponding associated phases, ie EXECUTING and EXECUTED, the 
subscriber can act BEFORE and/or AFTER the domain object is loaded / initially 
saved-persisted / updated / deleted.

The "domainEventOnLoad" event would allow the user to "veto" a specific domain 
entity instance (domain object) to be showed due to security or other business 
reasons. 


  was:
This issue is to remove a feature that is only partly implemented in the JDO 
objectstore, namely the lifecycle methods.

Jeroen and I were discussing this, and think they are possibly an anti-pattern 
since they tend to lead to fragile code.

Rather than have the object "pushing" changes to others, it would be better if 
an event were broadcast via the EventBus.  That way a subscribing service could 
pull appropriate changes and do whatever is necessary.


> Replace lifecycle methods with additional EventBus events.
> ----------------------------------------------------------
>
>                 Key: ISIS-803
>                 URL: https://issues.apache.org/jira/browse/ISIS-803
>             Project: Isis
>          Issue Type: Improvement
>          Components: Core
>    Affects Versions: core-1.5.0
>            Reporter: Dan Haywood
>            Assignee: Dan Haywood
>             Fix For: core-2.0.0
>
>
> This issue is to remove a feature that is only partly implemented in the JDO 
> objectstore, namely the lifecycle methods.
> Jeroen and I were discussing this, and think they are possibly an 
> anti-pattern since they tend to lead to fragile code.
> Rather than have the object "pushing" changes to others, it would be better 
> if an event were broadcast via the EventBus.  That way a subscribing service 
> could pull appropriate changes and do whatever is necessary.
> ~~~
> Possible implementation:
> @DomainObject(
>     domainEventOnLoad = ...,
>     domainEventOnSave = ...,
>     domainEventOnUpdate = ...,
>     domainEventOnDelete = ...,
> )
> By using the corresponding associated phases, ie EXECUTING and EXECUTED, the 
> subscriber can act BEFORE and/or AFTER the domain object is loaded / 
> initially saved-persisted / updated / deleted.
> The "domainEventOnLoad" event would allow the user to "veto" a specific 
> domain entity instance (domain object) to be showed due to security or other 
> business reasons. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to