code: public synchronized void addComponents(Collection<Component> newComponents)
      {
          Collection<Component> componentsToAdd = Collections2.filter(newComponents, Predicates.not(Predicates.in(components)));
          appendTOC(descriptor, componentsToAdd);
          components.addAll(componentsToAdd);
      }
docs: Registers new custom components. Used by custom compaction strategies.
  Adding a component for the second time is a no-op.
  Don't remove this - this method is a part of the public API, intended for use by custom compaction strategies.
  @param newComponents collection of components to be added