Пример #1
0
  /**
   * Processes a packet through the installed packet collectors and listeners and letting them
   * examine the packet to see if they are a match with the filter.
   *
   * @param packet the packet to process.
   */
  public void processPacket(Packet packet) {
    if (packet == null) {
      return;
    }

    // Loop through all collectors and notify the appropriate ones.
    for (PacketCollector collector : getPacketCollectors()) {
      collector.processPacket(packet);
    }

    if (DEBUG_ENABLED) {
      System.out.println("[RECV]: " + packet.toXML());
    }

    // Deliver the incoming packet to listeners.
    for (ListenerWrapper listenerWrapper : recvListeners.values()) {
      try {
        listenerWrapper.notifyListener(packet);
      } catch (NotConnectedException e) {
        e.printStackTrace();
      }
    }
  }
Пример #2
0
 /**
  * Process all packet listeners for sending packets.
  *
  * @param packet the packet to process.
  */
 protected void firePacketSendingListeners(Packet packet) {
   // Notify the listeners of the new sent packet
   for (ListenerWrapper listenerWrapper : sendListeners.values()) {
     listenerWrapper.notifyListener(packet);
   }
 }
Пример #3
0
  /**
   * Called when this bundle is stopped so the Framework can perform the bundle-specific activities
   * necessary to stop the bundle. In general, this method should undo the work that the
   * `BundleActivator.start()` method started. There should be no active threads that were started
   * by this bundle when this bundle returns. A stopped bundle must not call any Framework objects.
   *
   * <p>This method must complete and return to its caller in a timely manner.
   *
   * @param context The execution context of the bundle being stopped.
   * @throws Exception If this method throws an exception, the bundle is still marked as stopped,
   *     and the Framework will remove the bundle's listeners, unregister all services registered by
   *     the bundle, and release all services used by the bundle.
   */
  @Override
  public void stop(BundleContext context) throws Exception {
    if (this.services == null) {
      System.err.println("ERROR: Stopping non started instance of APSActivator!");
      return; // Not started!
    }

    Exception failure = null;

    this.activatorLogger.info(
        "Stopping APSActivator for bundle '"
            + context.getBundle().getSymbolicName()
            + "' with activatorMode: "
            + this.activatorMode);

    for (ListenerWrapper listenerWrapper : this.listeners) {
      listenerWrapper.stop(context);
    }
    this.listeners = null;

    for (Tuple2<Method, Object> shutdownMethod : this.shutdownMethods) {
      try {
        shutdownMethod.t1.invoke(shutdownMethod.t2, null);

        this.activatorLogger.info(
            "Called bundle shutdown method '"
                + shutdownMethod.t2.getClass()
                + "."
                + shutdownMethod.t1.getName()
                + "() for bundle: "
                + context.getBundle().getSymbolicName()
                + "!");
      } catch (Exception e) {
        this.activatorLogger.error("Bundle stop problem!", e);
        failure = e;
      }
    }
    this.shutdownMethods = null;

    for (ServiceRegistration serviceRegistration : this.services) {
      try {
        serviceRegistration.unregister();
      } catch (Exception e) {
        this.activatorLogger.error("Bundle stop problem!", e);
        failure = e;
      }
    }
    this.services = null;

    for (String trackerKey : this.trackers.keySet()) {
      APSServiceTracker tracker = this.trackers.get(trackerKey);
      try {
        tracker.stop(context);
      } catch (Exception e) {
        this.activatorLogger.error("Bundle stop problem!", e);
        failure = e;
      }
    }
    this.trackers = null;

    for (String namedInstanceKey : this.namedInstances.keySet()) {
      Object namedInstance = this.namedInstances.get(namedInstanceKey);
      if (namedInstance instanceof APSLogger) {
        try {
          ((APSLogger) namedInstance).stop(context);
        } catch (Exception e) {
          this.activatorLogger.error("Bundle stop problem!", e);
          failure = e;
        }
      }
    }
    this.namedInstances = null;

    this.activatorLogger.stop(context);
    this.activatorLogger = null;

    if (failure != null) {
      throw new APSActivatorException("Bundle stop not entirely successful!", failure);
    }
  }
 @Override
 public void unregisterOnSharedPreferenceChangeListener(
     OnSharedPreferenceChangeListener listener) {
   unregisterOnSharedPreferenceChangeListener(ListenerWrapper.obtain(this, listener));
 }
Пример #5
0
 protected void firePacketSendingListeners(Packet packet) {
   for (ListenerWrapper listenerWrapper : this.sendListeners.values()) {
     listenerWrapper.notifyListener(packet);
   }
 }