Finding out if karaf has started

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Finding out if karaf has started

lechlukasz

Hello,

 

I’ve tricked a lot by writing own bundle that installs features and then stops karaf.

The problem is, in new karaf, my bundle got restarted when I trigger feature installing, so I get interrupted exception, and the whole process fails.

 

If I’m going to return to classic solution, adding all features to boot features in or.apache.karaf.features.cfg, then I come to starting point, which made me trick so much: how can I find out, if karaf has started?

In my build environment, I have no database and other dependent systems, so there’s no way all bundles will start, but the crucial point is, how can I find out that all bundles were installed and I can kill karaf?

 

In production environment, there will be no maven repository available, so all bundles must be installed when running build script.

 

I’ve used following script:

 

#!/bin/bash

export UPDATER_DISABLED=false                                                         # tell my bundle to run updates

export UPDATER_SHUTDOWN_WHEN_READY=true                     # tell my bundle to kill karaf afterwards

/opt/karaf/bin/karaf server                                                                     # run karaf, the call will return after my bundle is ready

STATUS=$?                                                                                                      # save status

rm -rf /home/karaf/.m2/repository                                                     # cleanup to minimize docker image size

cat data/log/karaf.log # debug output

rm -rf data/log ;

exit $STATUS

 

Any tips?

 

Best regards,

Lukasz Lech

 

Reply | Threaded
Open this post in threaded view
|

Re: Finding out if karaf has started

jbonofre
Hi,

I see two ways:

1. You can have the console one all bundles are started. In
etc/config.properties, just add:

        karaf.delay.console=true

2. Programmatically, you can check when the Karaf BootFinished appears.
It means that Karaf itself boot is complete.

Regards
JB

On 11/09/2018 09:20, Lukasz Lech wrote:

> Hello,
>
>  
>
> I’ve tricked a lot by writing own bundle that installs features and then
> stops karaf.
>
> The problem is, in new karaf, my bundle got restarted when I trigger
> feature installing, so I get interrupted exception, and the whole
> process fails.
>
>  
>
> If I’m going to return to classic solution, adding all features to boot
> features in or.apache.karaf.features.cfg, then I come to starting point,
> which made me trick so much: how can I find out, if karaf has started?
>
> In my build environment, I have no database and other dependent systems,
> so there’s no way all bundles will start, but the crucial point is, how
> can I find out that all bundles were installed and I can kill karaf?
>
>  
>
> In production environment, there will be no maven repository available,
> so all bundles must be installed when running build script.
>
>  
>
> I’ve used following script:
>
>  
>
> #!/bin/bash
>
> export
> UPDATER_DISABLED=false                                                        
> # tell my bundle to run updates
>
> export UPDATER_SHUTDOWN_WHEN_READY=true                     # tell my
> bundle to kill karaf afterwards
>
> /opt/karaf/bin/karaf server
>                                                                     #
> run karaf, the call will return after my bundle is ready
>
> STATUS=$?
>                                                                      
>                                # save status
>
> rm -rf /home/karaf/.m2/repository                     
>                                # cleanup to minimize docker image size
>
> cat data/log/karaf.log # debug output
>
> rm -rf data/log ;
>
> exit $STATUS
>
>  
>
> Any tips?
>
>  
>
> Best regards,
>
> Lukasz Lech
>
>  
>

--
Jean-Baptiste Onofré
[hidden email]
http://blog.nanthrax.net
Talend - http://www.talend.com