class PlatformAbstractBootstrap implements PlatformBootstrap {
    /** {@inheritDoc} */
    @Override public PlatformProcessor start(IgniteConfiguration cfg, @Nullable GridSpringResourceContext springCtx,
        long envPtr) {<FILL_FUNCTION_BODY>}

    /** {@inheritDoc} */
    @Override public void init(long dataPtr) {
        final PlatformInputStream input = new PlatformExternalMemory(null, dataPtr).input();

        Ignition.setClientMode(input.readBoolean());

        processInput(input);
    }

    /**
     * Get configuration transformer closure.
     *
     * @param envPtr Environment pointer.
     * @return Closure.
     */
    protected abstract IgniteClosure<IgniteConfiguration, IgniteConfiguration> closure(long envPtr);

    /**
     * Processes any additional input data.
     *
     * @param input Input stream.
     */
    protected void processInput(PlatformInputStream input) {
        // No-op.
    }
}


        IgniteConfiguration cfg0 = closure(envPtr).apply(cfg);

        try {
            IgniteEx node = (IgniteEx)IgnitionEx.start(cfg0, springCtx);

            return node.context().platform();
        }
        catch (IgniteCheckedException e) {
            throw U.convertException(e);
        }
    
<no_super_class>