Hello,

Sorry for asking once again, but making my application run after updating Karaf 
to version 4.2.1 is giving me headache...  Many things that have worked before 
doesn't work without obvious reason...

I was installing features with my own code. I've called 
FeatureService.installFeatures() and after it returned, I was issuing 
SystemService.halt(). Afterwards I've got Karaf that was ready to be packaged 
and delivered into test.

In 4.2.1 this doesn't work because my code, which is a feature on its own, is 
restarted when I call installFeatures, therefore I get InterruptedException. In 
that moment, when I stop Karaf, I'll stop installing features and end up with 
Karaf with incomplete set of bundles.

So I've decided to do otherwise: provide a channel which I can ask if all 
features were installed. I call for feature status with 
FeatureService.getState(featureId) and when I get true, I return OK. Then the 
build script issues ./bin/stop to stop karaf. But then I'm getting karaf 
container that have all bundles, but after starting, many of them are 
'Resolved', not started.

Why it is so? Do the SystemService.halt() makes more 'gentle' shutdown then 
./bin/stop ? Or I'm stopping Karaf prematurely, before the start was issued on 
each bundle? How can I check then, when it's OK to stop Karaf? I can't assume 
how long will it take, we have gitlab based build pipeline, so the build time 
is strongly dependent on the load put on build machines.

I can't check for bundle status because bundles won't start correctly in build 
environment, but previously it was exactly the same. Nevertheless, in non-build 
environment, where all dependencies were provided, every single bundle was 
started after starting karaf...

Best Regards,
Lukasz Lech

Reply via email to