karaf-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andreas Pieber <anpie...@gmail.com>
Subject Re: Starting/Stopping Programmatically Bundles
Date Mon, 16 Jan 2012 17:54:30 GMT
Happy to hear that it works; btw, wouldn't it be easier retrieving all
bundles using bundleContext.getBundles and find the ones you want to
start/stop there?

Kind regards,
Andreas

On Mon, Jan 16, 2012 at 18:46, Hervé BARRAULT <herve.barrault@gmail.com>wrote:

> Hi,
> thanks for quick answers.
>
> By registering using activator it is working well for notification :)
>
> public class Test implements BundleListener, BundleActivator {
>
>    public void start(BundleContext arg0) throws Exception {
>        arg0.addBundleListener(this);
>    }
>
>    public void stop(BundleContext arg0) throws Exception {
>        arg0.removeBundleListener(this);
>    }
>
>    public void bundleChanged(BundleEvent arg0) {
>        final Bundle bundle = arg0.getBundle();
>
>        System.out.println("SIGNAL" + bundle.getSymbolicName() + " - "
> + arg0.getType());
>
>    }
>
> }
>
> now i think i can start/stop bundles by keeping references.
> As i can't determine before the number of the bundle i should use the
> symbolicName (not perfect if we have to use different versions).
>
> Regards
> Hervé
>
>
> On 1/16/12, Andreas Pieber <anpieber@gmail.com> wrote:
> > Hey,
> >
> > On Mon, Jan 16, 2012 at 18:23, Hervé BARRAULT
> > <herve.barrault@gmail.com>wrote:
> >
> >> I haven't register the Bundle Listener, as i thought exposing a
> >> BundleListener as an OSGI service does something like this.
> >>
> >
> > "Exposing a BundleListener" typically means register it in the OSGi
> > registry; and this is done as JB had shown.
> >
> >
> >> Is this bundleContext linked to the current bundle or all bundle ?
> >>
> >
> > Well, bundleContext.getBundle() will return the "current" bundle; but you
> > can also access other bundles using bundleContext.getBundle(ID) or one of
> > the other overloads.
> >
> >
> >> My Bundle "Checker" shall listener to other bundle and manipulate
> >> them. I will try the BundleActivator to get the BundleContext.
> >>
> >
> > If you really want to check other bundles once they come up the
> > BundleListener is the perfect way to go. You can access the bundle object
> > of the bundles started through the event. so you can also manipulate them
> > there.
> >
> > Btw, don't you want to upgrade to a newer Karaf version (although It's
> not
> > required for your specific use case) there where many bugs fixed between
> > 2.0.0 and 2.2.5.
> >
> > Kind regards,
> > Andreas
> >
> >
> >>
> >> Regards
> >> Hervé
> >>
> >> On 1/16/12, Jean-Baptiste Onofré <jb@nanthrax.net> wrote:
> >> > Hi Hervé,
> >> >
> >> > Did you register your listener in the bundle context, with something
> >> like ?:
> >> >
> >> > getBundleContext().addBundleListener(myBundleListener);
> >> >
> >> > To start/stop bundle, you can do:
> >> >
> >> > getBundleContext().getBundle(id).stop()...
> >> >
> >> > Regards
> >> > JB
> >> >
> >> > On 01/16/2012 06:07 PM, Hervé BARRAULT wrote:
> >> >> HI, i'm using Karaf 2.0.0 and i'm trying to find a way to start/stop
> a
> >> >> bundle with java code.
> >> >>
> >> >> I have difficulties to find the right API to use (and which service
> to
> >> >> import).
> >> >>
> >> >> I have tried to create a BundleListener and expose it as an osgi
> >> >> service (in order to being notified of bundles start/stop) but i'm
> not
> >> >> notified.
> >> >> I thought getting data about bundles and being able to manipulate it.
> >> >>
> >> >> What are the correct steps to do this ?
> >> >>
> >> >> Regards
> >> >> Hervé
> >> >
> >> > --
> >> > Jean-Baptiste Onofré
> >> > jbonofre@apache.org
> >> > http://blog.nanthrax.net
> >> > Talend - http://www.talend.com
> >> >
> >>
> >
>

Mime
View raw message