You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@isis.apache.org by "Dan Haywood (JIRA)" <ji...@apache.org> on 2013/11/23 10:24:35 UTC
[jira] [Reopened] (ISIS-597) Services still not injected when
entering @PostConstruct methods on a Service
[ https://issues.apache.org/jira/browse/ISIS-597?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dan Haywood reopened ISIS-597:
------------------------------
reopening to look into whether an IsisSession can be setup while @PostConstruct is called on the domain services.
> Services still not injected when entering @PostConstruct methods on a Service
> -----------------------------------------------------------------------------
>
> Key: ISIS-597
> URL: https://issues.apache.org/jira/browse/ISIS-597
> Project: Isis
> Issue Type: Improvement
> Components: Core, Objectstore: JDO
> Affects Versions: objectstore-jdo-1.3.0, core-1.3.0
> Reporter: Oscar Bou
> Assignee: Dan Haywood
> Fix For: objectstore-jdo-1.4.0, core-1.4.0
>
>
> Methods annotated with @PostConstruct are invoked before their objects being injected.
> Steps to reproduce:
> As per [1], create a method on a service annotated with @PostConstruct, like this one:
> @PostConstruct
> public void init(final Map<?, ?> props) {
> server.setGlobal("eventOccurrences", this.eventOccurrences);
>
> }
> ....
> // {{ injected: EventOccurrences
> private EventOccurrences eventOccurrences;
> public final void injectEventOccurrences(final EventOccurrences eventOccurrences) {
> this.eventOccurrences = eventOccurrences;
> }
> // }}
> The problem is that when the execution arrives to:
> server.setGlobal("eventOccurrences", this.eventOccurrences);
> this.eventOccurrences is still null... So it has not yet been injected (or instantiated).
> [1] http://isis.apache.org/core/services/initializing-services.html
--
This message was sent by Atlassian JIRA
(v6.1#6144)