protected synchronized Collection<T> findAllInstances() {
        if (this.allInstances == null) {
            this.allInstances = new ArrayList<>();

            ServiceLocator serviceLocator = Scope.getCurrentScope().getServiceLocator();
            this.allInstances.addAll(serviceLocator.findInstances(getPluginClass()));
        }

        return this.allInstances;
    }
protected synchronized Collection<T> findAllInstances() {
        if (this.allInstances == null) {
            this.allInstances = new ArrayList<>();

            ServiceLocator serviceLocator = Scope.getCurrentScope().getServiceLocator();
            this.allInstances.addAll(serviceLocator.findInstances(getPluginClass()));
        }

        return this.allInstances;
    }
protected synchronized Collection < T > findAllInstances ( ) { if ( this . allInstances == null ) { this . allInstances = new ArrayList <> ( ) ; ServiceLocator serviceLocator = Scope . getCurrentScope ( ) . getServiceLocator ( ) ; this . allInstances . addAll ( serviceLocator . findInstances ( getPluginClass ( ) ) ) ; } return this . allInstances ; }
Finds implementations of the given interface or class and returns instances of them.
Standard implementation uses {@link ServiceLoader} to find implementations and caches results in {@link #allInstances} which means the same objects are always returned.
If the instances should not be treated as singletons, clone the objects before returning them from {@link #getPlugin(Object...)}.
Finds implementations of the given interface or class and returns instances of them . Standard implementation uses {