class DtpLifecycle implements SmartLifecycle {

    private final AtomicBoolean running = new AtomicBoolean(false);

    @Override
    public void start() {
        if (this.running.compareAndSet(false, true)) {
            DtpRegistry.getAllExecutors().forEach((k, v) -> DtpLifecycleSupport.initialize(v));
        }
    }

    @Override
    public void stop() {<FILL_FUNCTION_BODY>}

    @Override
    public boolean isRunning() {
        return this.running.get();
    }

    /**
     * Compatible with lower versions of spring.
     *
     * @param callback callback
     */
    @Override
    public void stop(Runnable callback) {
        stop();
        callback.run();
    }

    /**
     * Compatible with lower versions of spring.
     *
     * @return isAutoStartup
     */
    @Override
    public boolean isAutoStartup() {
        return true;
    }

    /**
     * Compatible with lower versions of spring.
     *
     * @return phase
     */
    @Override
    public int getPhase() {
        return Integer.MAX_VALUE;
    }

    public void shutdownInternal() {
        DtpMonitor.destroy();
        AlarmManager.destroy();
        NoticeManager.destroy();
        SystemMetricManager.stop();
    }
}

        if (this.running.compareAndSet(true, false)) {
            shutdownInternal();
            DtpRegistry.getAllExecutors().forEach((k, v) -> DtpLifecycleSupport.destroy(v));
        }
    
<no_super_class>