I have the following bundle activator which implements both FrameworkListener and BundleListener,

import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
import org.osgi.framework.BundleEvent;
import org.osgi.framework.BundleListener;
import org.osgi.framework.FrameworkEvent;
import org.osgi.framework.FrameworkListener;

public class ListenerActivator implements BundleActivator, FrameworkListener, BundleListener
{
  private int invoked = 0;

  public void start(BundleContext bundleContext) throws Exception
  {
    // Add the listeners
    System.out.println("Adding listeners");
    bundleContext.addFrameworkListener(this);
    bundleContext.addBundleListener(this);
  }

  public void stop(BundleContext bundleContext) throws Exception
  {
    // Remove the listeners
    System.out.println("Removing listeners " + invoked);
    bundleContext.removeFrameworkListener(this);
    bundleContext.removeBundleListener(this);
  }

  public void frameworkEvent(FrameworkEvent event)
  {
    System.out.println("\tFrameworkEvent(type=" + event.getType() +
    ",bundle=" + event.getBundle() +
    ",source=" + event.getSource() +
    ",throwable=" + event.getThrowable() + ")");
    invoked++;
  }

  public void bundleChanged(BundleEvent event)
  {
    System.out.println("\tBundleEvent(type=" + event.getType() +
    ",bundle=" + event.getBundle() +
    ",source=" + event.getSource() + ")");
    invoked++;
  }
}

However, when I run this in karaf the System.out.println calls within the start/stop methods work but the ones within frameworkEvent and bundleChanged do not. I know they are being invoked because the stop method displays an integer value larger than zero. Why isn't System.out working?

-John


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to