+ protected abstract void doStop();
+
+ /**
+ * Implementations must call this method to indicate that a running service has
+ * been stopped.
+ *
+ * @param aService
+ * Service.
+ */
+ protected final void removeInterface(
+ ProvidedInterface aDescriptor) {
+ LOG.info("Interface '" + getQualifiedName() + "." + aDescriptor.getName() + "' stopped.");
+ _running.remove(aDescriptor);
+ aDescriptor.publish(null);
+ }