bundles/org.eclipse.packagedrone.repo.trigger/src/org/eclipse/packagedrone/repo/trigger/ProcessorFactoryTracker.java
public List<ProcessorFactoryInformation> getFactoriesFor ( final Class<?>[] contextClasses )
    {
        requireNonNull ( contextClasses );

        final List<ProcessorFactoryInformation> result = new ArrayList<> ();
        this.tracker.consumeAll ( stream -> stream.filter ( service -> isMatch ( service, contextClasses ) ).forEach ( result::add ) );
        return result;
    }
public List<ProcessorFactoryInformation> getFactoriesFor ( final Class<?>[] contextClasses )
    {
        requireNonNull ( contextClasses );

        final List<ProcessorFactoryInformation> result = new ArrayList<> ();
        this.tracker.consumeAll ( stream -> stream.filter ( service -> isMatch ( service, contextClasses ) ).forEach ( result::add ) );
        return result;
    }
Get a list of matching factories
<p>
The returned list is a copy of the current state. The list may be
modified by the caller, but will not be updated by this tracker when the
state changes.
</p>

@param contextClasses
the provided context classes
@return a list of matching processor factors, never returns {@code null}