[
https://issues.apache.org/jira/browse/ISIS-779?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Dan Haywood updated ISIS-779:
-----------------------------
Issue Type: Improvement (was: Bug)
> Refactor EventBusService as a @RequestScoped service, and have it own the
> guava EventBus as a field.
> ----------------------------------------------------------------------------------------------------
>
> Key: ISIS-779
> URL: https://issues.apache.org/jira/browse/ISIS-779
> Project: Isis
> Issue Type: Improvement
> Components: Core
> Affects Versions: core-1.4.0
> Reporter: Dan Haywood
> Assignee: Dan Haywood
> Priority: Critical
> Fix For: core-2.0.0
>
>
> Originally this ticket was raised as a bug to the effect that "EventBus
> should not re-register services on open/close; this is not thread-safe."
> Subsequent analysis shows that isn't actually the case; the current design is
> thread-safe.
> How it works is that, although EventBusServiceDefault is application-scoped,
> the guava EventBus itself is obtained from the PersistenceSession, ie is in
> effect for the session.
> It would however be preferrable to convert EventBusService(Default) into a
> request-scoped, and then having it simply new up the guava EventBus each
> time. The only real issue is the ordering of the service injection; the
> domain services do a reverse callback to the EventBusService in the
> setterXxx() / injectXxx()
> ; there might be ordering issues.
--
This message was sent by Atlassian JIRA
(v6.2#6252)