package com.jetbrains.help; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.net.Ipv4Util; import cn.hutool.core.text.CharSequenceUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.extra.spring.SpringUtil; import com.jetbrains.help.context.*; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.context.event.ApplicationReadyEvent; import org.springframework.context.annotation.Import; import org.springframework.context.event.EventListener; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; import java.net.InetAddress; import java.util.Collection; import java.util.List; @Slf4j @EnableScheduling @Import(SpringUtil.class) @SpringBootApplication public class JetbrainsHelpApplication { public static void main(String[] args) { SpringApplication.run(JetbrainsHelpApplication.class, args); } @SneakyThrows @EventListener(ApplicationReadyEvent.class) public void ready() { ProductsContextHolder.init(); PluginsContextHolder.init(); CertificateContextHolder.init(); AgentContextHolder.init(); InetAddress localHost = InetAddress.getLocalHost(); String address = CharSequenceUtil.format("http://{}:{}", localHost.getHostAddress(), SpringUtil.getProperty("server.port")); String runSuccessWarn = "\n====================================================================================\n" + "= Jetbrains-Help Run Success~ =\n" + "= address:" + address + " =\n" + "====================================================================================\n"; log.info(runSuccessWarn); } @Scheduled(cron = "0 0 12 * * ?") public void refresh() { PluginsContextHolder.refreshJsonFile(); } }