[
https://issues.apache.org/jira/browse/ISIS-866?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14148920#comment-14148920
]
ASF subversion and git services commented on ISIS-866:
------------------------------------------------------
Commit 5bf7917c7eb7c0adfa11cb7b39e4354618f5b843 in isis's branch
refs/heads/master from [~danhaywood]
[ https://git-wip-us.apache.org/repos/asf?p=isis.git;h=5bf7917 ]
ISIS-866:use ConcurrentMap rather than LinkedHashMap in ServiceInstantiator
(since is a singleton, could conceivably be accessed by multiple threads at
once).
> Request-scoped service should be told when the request is starting and
> stopping.
> --------------------------------------------------------------------------------
>
> Key: ISIS-866
> URL: https://issues.apache.org/jira/browse/ISIS-866
> Project: Isis
> Issue Type: Improvement
> Components: Core
> Affects Versions: core-1.6.0
> Reporter: Dan Haywood
> Assignee: Dan Haywood
> Priority: Minor
> Fix For: core-1.7.0
>
>
> For @RequestScoped services, Isis creates a proxy that implements the
> RequestScopedService interface (in Isis core-runtime), which defines
> __isis_startRequest and __isis_stopRequest. These methods are then called
> when the Isis session (=request scope) is created so that the proxy can
> instantiate a service for the duration of the request, bound to the
> thread-local.
> HOWEVER...
> The underlying service doesn't actually know it has been created/a request is
> started. It isn't possible to put logic in the constructor, because that
> stuff is also called by the proxy wrapper.
> SO...
> ... a bit of research shows that the JEE way of doing this is to call methods
> annotated @PostConstruct and @PreDestroy. So that's what we should do too.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)