private void stop(AtomicBoolean hasAnythingChanged, ClassMapper classMapper, DependencyNode node) {
        // Check if all its dependencies have been satisfied.
        // when stopping.
        if (node.canBe(State.STOPPED)) {

            LOGGER_INSTANCE.debug(HORIZONTAL_LINE);

            // Retrieve the instance for that node
            final Object inst = find(node.getRepresentedType(), true);

            // Execute all the executions for the next step.
            node.getExecutions().stream()
                .filter(e -> e.getState() == State.STOPPED)
                .map(exec -> {
                    @SuppressWarnings("unchecked")
                    final Execution<Object> casted = (Execution<Object>) exec;
                    return casted;
                })
                .forEach(exec -> stopInstance(classMapper, inst, exec));

            // Update its state to the new state.
            node.setState(State.STOPPED);
            hasAnythingChanged.set(true);

            LOGGER_INSTANCE.debug(
                "| %-66s %12s |",
                node.getRepresentedType().getSimpleName(),
                State.STOPPED.name()
            );
        }
    }
Create a new {@link InjectorBuilder} using the default implementation but
with a specific {@code ClassLoader}.

@param classLoader the class loader to use
@return the injector builder
common-parent/injector/src/main/java/com/speedment/common/injector/internal/InjectorImpl.java