@ProviderType
public interface ServiceUserMapped
The ServiceUserMapped
is a marker service that can be used to
ensure that there is an already registered mapping for a certain
service/subService. A service reference targeting a
ServiceUserMapped
will be satisfied only if
ServiceUserMapper.getServiceUserID
will resolve the subService
to an userID. For example setting the reference target to
"(subServiceName=mySubService)" ensures that your component only starts when
the subService is available. The subServiceName will not be set for mappings
that do not have one, and those can be referenced with a negating target
"(!(subServiceName=*))". Trying to reference a sub service from a bundle for
which it was not registered for will not work.
As the service user mapper implementation is using a fallback, it is usually
best to use a reference target that includes both options, the sub service
name and the fallback, therefore a target like
"(|(subServiceName=mySubService)(!(subServiceName=*)))" should be used.