On Thursday 13 October 2016 09:44:51 Bertrand Delacretaz wrote:
> On Thu, Oct 13, 2016 at 9:37 AM, Oliver Lietz <apa...@oliverlietz.de> wrote:
> > On Thursday 13 October 2016 09:32:16 Carsten Ziegeler wrote:
> >> ...Hmm, but everything should be doable at runtime without a restart
> > Well, yes – especially in my Karaf context where features are installed at
> > runtime. But I was to late to that repoinit party... *sigh...
> Repoinit code can be executed at any time via RepoInitParser  and
> JcrRepoInitOpsProcessor  services.
> The implementation of the latter takes care of ordering the
> statements, creating JCR namespaces first, then nodetypes, then the
> So as long as a given set of repoinit statements includes all required
> namespace and nodetype definitions it can be executed in isolation at
> any time, using these simple services.
This is not a technical problem but a time-consuming one and similar to what
we had with Startup/Lauchpad API in the past. I'm not complaining – I did
chose Karaf myself and I'm quite happy what we have now. There are several
topics at Sling where I would like to spend time with improving but working
around "statics" (Startup, start levels, provisioning model, repoinit,
settings...) – retrofitting – blocks me from doing so.
Quoting Carsten: "As we have discussed we're more moving to define different
features through the provisioning model. But we have no way to install such a
feature at runtime. We don't even have a format for this."
This is already possible with Karaf features and I do not see a benefit in
provisioning model besides Sling developers familiar with it (which is indeed
a huge pro, but only at Sling). So we will spend time making provisioning
model more "dynamic" and modular. Instead we could spend time on pushing and
exploiting Karaf Features and Karaf Boot for immutable Sling instances. But