diff --git a/org_ccalm_weather.yml b/org_ccalm_weather.yml index 477f717..d157b18 100644 --- a/org_ccalm_weather.yml +++ b/org_ccalm_weather.yml @@ -1,5 +1,5 @@ server: - port: 8081 + port: 8083 ssl: key-store: classpath:keystore.jks key-store-password: QyKtWPZB @@ -11,7 +11,7 @@ server: spring: application: - name: kz_ccalm_weather + name: org_ccalm_weather cache: type: none diff --git a/pom.xml b/pom.xml index 27accc2..a68733f 100644 --- a/pom.xml +++ b/pom.xml @@ -45,10 +45,15 @@ logstash-logback-encoder 6.6 - + + + org.json + json + 20240303 @@ -90,6 +95,8 @@ provided + + diff --git a/src/main/java/org/ccalm/weather/MainController.java b/src/main/java/org/ccalm/weather/MainController.java index e446456..87ebca7 100644 --- a/src/main/java/org/ccalm/weather/MainController.java +++ b/src/main/java/org/ccalm/weather/MainController.java @@ -1,5 +1,8 @@ package org.ccalm.weather; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.ApplicationContext; +import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.CrossOrigin; @@ -8,17 +11,66 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping; +import org.json.JSONObject; +import org.json.JSONException; import java.io.InputStream; import java.util.Properties; +import java.util.Set; +import java.util.stream.Collectors; @Controller public class MainController { - + + @Value("${spring.application.name}") + String application_name = ""; + @CrossOrigin - @GetMapping("/") + @RequestMapping(value = "/",method = {RequestMethod.POST,RequestMethod.GET},produces = "application/json;charset=utf-8") @ResponseBody - public String getIndex(Model model) { + public ResponseEntity getIndex(Model model) { + JSONObject json = new JSONObject(); + try { + json.put("error_code",0); + json.put("error_message",""); + json.put("error_marker",(String)null); + String buildDate=""; + //String buildVersion=""; + try { + InputStream inputStream = MainController.class.getClassLoader().getResourceAsStream("META-INF/build-info.properties"); + if (inputStream != null) { + Properties properties = new Properties(); + properties.load(inputStream); + buildDate = properties.getProperty("build.time"); + //buildVersion = properties.getProperty("build.version"); + } + } catch (Exception e) { + e.printStackTrace(); + } + json.put("build_date",buildDate); + //json.put("build_version",buildVersion); + json.put("name",application_name); + //json.put("active_connections",dataSource.getHikariPoolMXBean().getActiveConnections()); + //json.put("idle_connections",dataSource.getHikariPoolMXBean().getIdleConnections()); + + // Вывод всех зарегистрированных маршрутов в системе + ApplicationContext context = SpringContext.getApplicationContext(); + if (context != null) { + RequestMappingHandlerMapping mapping = context.getBean(RequestMappingHandlerMapping.class); + Set endpoints = mapping.getHandlerMethods().keySet().stream() + .map(info -> info.toString()) + .collect(Collectors.toSet()); + System.out.println("=== Registered API endpoints ==="); + endpoints.forEach(System.out::println); + } + + } catch (JSONException e) { + throw new RuntimeException(e); + } + return ResponseEntity.ok(json.toString()); + +/* String buildDate=""; //String buildVersion=""; try { @@ -38,6 +90,7 @@ public class MainController { The weather list is working!
/geodatalist """; return result; + */ } @CrossOrigin diff --git a/src/main/java/org/ccalm/weather/SpringContext.java b/src/main/java/org/ccalm/weather/SpringContext.java new file mode 100644 index 0000000..69864c5 --- /dev/null +++ b/src/main/java/org/ccalm/weather/SpringContext.java @@ -0,0 +1,19 @@ +package org.ccalm.weather; + +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Component; + +@Component +public class SpringContext implements ApplicationContextAware { + private static ApplicationContext context; + + @Override + public void setApplicationContext(ApplicationContext applicationContext) { + context = applicationContext; + } + + public static ApplicationContext getApplicationContext() { + return context; + } +}