hi *
On Feb 24, 2015, at 6:00 PM, Oliver Lietz
<[email protected]<mailto:[email protected]>> wrote:
On Friday 20 February 2015 17:53:02 Marius Petria wrote:
Hi,
hi Marius,
I discovered an issue related to service users. Due to the indeterminism
of OSGI a consumer of ServiceUserMapper cannot be sure that
getServiceUserID will find a registered mapping even if that mapping has
been configured. For example if a component starts roughly at the same
time as the mapping is installed it can happen that the calls the
component makes to loginService to fail. More concretely that can happen
for example if one needs a session in an activate method to register jcr
event listener, or to read some configuration properties from the
repository.
In order to make this behavior more predictable I created an issue [1]
proposing to always register an osgi service (I called it
ServiceUserMapping) right after a mapping is installed, such that consumer
components can reference it and wait for the mapping to be available. I
also worked out an implementation in [2].
First, I would like to ask you if you think the problem is valid and if
the approach is correct?
Second, it will be really helpful if you can also comment on the issue
around the provided implementation.
I hadn't the time to look into the implementation but I have this use case
right now. A service user mapping and a bundle with a service which relies on
this mapping are deployed in a (AEM) package - service fails because of
mapping not yet available when service gets activated. A ServiceUserMapping
service as reference would solve this problem. So +1 for this approach and the
name ServiceUserMapping.
a valid alternative that will end up to a NOOP for SLING-4312 is to use Sling
initial content in the same bundle rather than a package.
e.g. in your pom
<instructions>
<Sling-Initial-Content>
SLING-INF/content;path:=/libs/system/config;overwrite:=true;
</Sling-Initial-Content>
</instructions>
I did use this approach and works (for the record it works also in AEM)
regards
antonio
Regards,
O.
Marius
[1] https://issues.apache.org/jira/browse/SLING-4312
[2] https://github.com/mpetria/sling/compare/mpetria:trunk...dev-SLING-4312