Hi,

> - ignore requirement/capability (no resolver)

did I get it right that this breaks the dependency=true feature that
installs bundles / features only if a requirement is not fullfilled yet?

Am Fr., 8. Jan. 2021 um 15:01 Uhr schrieb Patrique Legault <
patriquelega...@gmail.com>:

> Same here,
>
> This is behaviour that has been expected for some time now, reversing it
> could cause damage to systems that upgrade to the latest Karaf. I would
> make it something that users opt into vs having to opt-out of.
>
> On Fri, 8 Jan 2021 at 08:42, Daniel Las <daniel....@empirica.io.invalid>
> wrote:
>
> > Hi,
> >
> > It looks like some kind of backward incompatible change introduced within
> > patch version change. I personally would like to keep auto refresh "on"
> by
> > default as this is expected/desired behavior for me.
> >
> > Regards
> >
> > pt., 8 sty 2021 o 07:31 Jean-Baptiste Onofre <j...@nanthrax.net>
> napisał(a):
> >
> > > Hi everyone,
> > >
> > > We got several user feedback, complaining about unexpected and cascaded
> > > (unrelated) refresh while installing features.
> > >
> > > As reminder, a refresh can happen when:
> > > - bundle A imports package foo:1 and a bundle provides newer foo
> package
> > > version. In that case, the features service will refresh A to use the
> > > newest package version.
> > > - bundle A has an optional import to package foo and a bundle provides
> > > this package. In that case, the features service will refresh A to
> > actually
> > > use the import as it’s a "resolved" optional.
> > > - bundle A is wired to bundle B (from a package perspective or
> > > requirement) and B is refreshed. In that case, the features service
> will
> > > refresh A as B is itself refreshed (for the previous reasons for
> > instance).
> > > This can cause "cascading" refresh.
> > >
> > > A refresh means that a bundle can be restarted (if the bundle contains
> an
> > > activator or similar (DS component, blueprint bundle)).
> > >
> > > In this PR https://github.com/apache/karaf/pull/1287, I propose to
> > > introduce a new property autoRefresh in
> etc/org.apache.karaf.features.cfg
> > > to disable the auto refresh by the features service (and let the user
> > > decides when he wants to trigger refresh with bundle:refresh command
> for
> > > instance).
> > > I propose to keep autoRefresh=true on 4.2.x and turn autoRefresh=false
> on
> > > 4.3.x.
> > >
> > > Thoughts ?
> > >
> > > On the other hand (and to prepare the "path" to Karaf5), I have
> created a
> > > new "simple features service" (PR will be open soon) that:
> > >
> > > - just take the features definition in order (ignoring start level)
> > > - ignore requirement/capability (no resolver)
> > > - no auto refresh
> > >
> > > Basically, if you have the following feature definition:
> > >
> > > <feature name="foo" version="1.0">
> > >   <feature>bar</feature>
> > >  <bundle>A</bundle>
> > >  <bundle>B</bundle>
> > > </feature>
> > >
> > > The features service will fully install/start bar feature first, then
> > > bundle A, then bundle B.
> > > To use this "simple features services, you just have to replace
> > > org.apache.karaf.features.core by org.apache.karaf.features.simple
> bundle
> > > in etc/startup.properties (or custom distribution).
> > >
> > > It’s similar to the Karaf 5 extension behavior (I will share complete
> > > details about Karaf 5 and its concepts (module, extension, …) very
> soon,
> > > but that’s another thread ;)).
> > >
> > > The big advantages of this approach is:
> > > - predictable/deterministic provisioning (if it works fine, it works
> > again)
> > > - faster deployment (I estimated the gain to about 70%)
> > >
> > > Thoughts ?
> > >
> > > If you agree, I will move forward on both tasks.
> > >
> > > Thanks,
> > > Regards
> > > JB
> > >
> >
> >
> > --
> > Daniel Łaś
> > CTO at Empirica S.A.
> > +48 695 616181
> >
>
>
> --
> *Patrique Legault*
>

Reply via email to