@@ -0,0 +1,939 @@
+package co.phoenixlab.dn.dngearsim.bootstrap;%0A%0Aimport javafx.concurrent.Task;%0A%0Aimport java.lang.reflect.Method;%0Aimport java.util.function.Consumer;%0A%0Apublic class BootstrapTask extends Task%3CMethod%3E %7B%0A%0A    private final Consumer%3CMethod%3E onBootstrapOk;%0A    private final Runnable onBootstrapSelfUpdateRequired;%0A    private volatile boolean selfUpdateRequred;%0A%0A    public BootstrapTask(Consumer%3CMethod%3E onBootstrapOk, Runnable onBootstrapSelfUpdateRequired) %7B%0A        this.onBootstrapOk = onBootstrapOk;%0A        this.onBootstrapSelfUpdateRequired = onBootstrapSelfUpdateRequired;%0A        this.selfUpdateRequred = false;%0A    %7D%0A%0A    @Override%0A    protected Method call() throws Exception %7B%0A        //  TODO%0A        return null;%0A    %7D%0A%0A    @Override%0A    protected void succeeded() %7B%0A        if (selfUpdateRequred) %7B%0A            onBootstrapSelfUpdateRequired.run();%0A        %7D else %7B%0A            onBootstrapOk.accept(getValue());%0A        %7D%0A    %7D%0A%7D%0A

Add skeleton for bootstrapping task