Oliver Lietz wrote
> On Wednesday 09 November 2016 10:58:04 Bertrand Delacretaz wrote:
>> Hi,
>>
>> On Wed, Nov 9, 2016 at 10:46 AM, Carsten Ziegeler <[email protected]> 
> wrote:
>>> ...if the same client does so without adjusting the list
>>> of required names then the initializer might not be used either....
>>
>> We can make this robust by having an explicit list of required
>> services, waiting for them to become available and complaining if
>> unlisted services of the same type appear.
>>
>> So for a dependency on a service S the client component is configured with
>>
>> S.required.roles = "roleA, roleB, roleC"
>>
>> And each instance of S must be configured with a "role" system property.
>>
>> And the component that uses them (or maybe a generic utility to handle
>> such cases, added to bundles/commons/osgi) waits until this exact list
>> of roles is available, and complains if it finds any S services
>> without a role.
> 
> In case of repoinit (creating users, paths and setting ACLs), I'm not sure if 
> using SlingRepositoryInitializer and depending on activation order is the 
> best 
> way at all. Components need to handle absence of users, paths and ACLs 
> gracefully anyway. And we have already a requirement to execute repoinit 
> statements after a repository is initialized.
> 

Right, but that is a different thing and will work. The code that reads
the statements
can simply call the required services. That is independent from this
issue I think.
This problem is more about the initial repoinit from the provisioning model

Regards
Carsten

 

-- 
Carsten Ziegeler
Adobe Research Switzerland
[email protected]

Reply via email to