package zielu.gittoolbox; import com.google.common.util.concurrent.ThreadFactoryBuilder; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.components.ApplicationComponent; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; public class GitToolBoxApp extends ApplicationComponent.Adapter { private ScheduledExecutorService myAutoFetchExecutor; public static GitToolBoxApp getInstance() { return ApplicationManager.getApplication().getComponent(GitToolBoxApp.class); } public ScheduledExecutorService autoFetchExecutor() { return myAutoFetchExecutor; } @Override public void initComponent() { myAutoFetchExecutor = Executors.newSingleThreadScheduledExecutor( new ThreadFactoryBuilder().setDaemon(true).setNameFormat("AutoFetch-%s").build() ); } @Override public void disposeComponent() { myAutoFetchExecutor.shutdownNow(); } }