@Override
    public final APP build() {
        final Injector inj;

        try {
            inj = injectorBuilder.build();
        } catch (final InstantiationException | CyclicReferenceException ex) {
            throw new SpeedmentException("Error in dependency injection.", ex);
        }
        
            printWelcomeMessage(inj);

        if (!skipValidateRuntimeConfig) {
            validateRuntimeConfig(inj);
        }
        if (!skipCheckDatabaseConnectivity) {
            checkDatabaseConnectivity(inj);
        }

        printStreamSupplierOrder(inj);

        return build(inj);
    }
This abstract class is implemented by classes that can build a
{@link Speedment} application.

@param <APP> the type that is being built
@param <BUILDER> the (self) type of the AbstractApplicationBuilder

@author Per Minborg
@author Emil Forslund
@since 2.0.0
runtime-parent/runtime-application/src/main/java/com/speedment/runtime/application/AbstractApplicationBuilder.java