fix: Developer Portal 스캐폴딩 시 빈 문자열 입력에 대한 기본값 처리 로직 보완

This commit is contained in:
jade
2026-07-13 09:37:17 +09:00
parent 6b49f6b6b9
commit 71c8afef33
10 changed files with 141 additions and 5 deletions

View File

@@ -20,8 +20,10 @@ public class ScaffoldingController {
if (!moduleName.startsWith("axhub-tool-")) moduleName = "axhub-tool-" + moduleName;
String port = req.getOrDefault("port", "8085");
String shortName = moduleName.replace("axhub-tool-", "").replace("-", "");
String author = req.getOrDefault("author", "System");
String date = req.getOrDefault("date", java.time.LocalDate.now().format(java.time.format.DateTimeFormatter.ofPattern("yyyy.MM.dd")));
String author = req.get("author");
if (author == null || author.trim().isEmpty()) author = System.getProperty("user.name");
String date = req.get("date");
if (date == null || date.trim().isEmpty()) date = java.time.LocalDate.now().format(java.time.format.DateTimeFormatter.ofPattern("yyyy.MM.dd"));
return PodScaffolder.scaffoldPod(moduleName, port, shortName, author, date);
} catch (Exception e) {
@@ -38,8 +40,10 @@ public class ScaffoldingController {
String group = req.getOrDefault("group", "COMMON");
String routingType = req.getOrDefault("routingType", "HTTP");
String moduleName = req.getOrDefault("moduleName", "axhub-tool-other");
String author = req.getOrDefault("author", "System");
String date = req.getOrDefault("date", java.time.LocalDate.now().format(java.time.format.DateTimeFormatter.ofPattern("yyyy.MM.dd")));
String author = req.get("author");
if (author == null || author.trim().isEmpty()) author = System.getProperty("user.name");
String date = req.get("date");
if (date == null || date.trim().isEmpty()) date = java.time.LocalDate.now().format(java.time.format.DateTimeFormatter.ofPattern("yyyy.MM.dd"));
boolean register = Boolean.parseBoolean(req.getOrDefault("register", "true"));
return ToolScaffolder.scaffold(baseName, interfaceId, description, group, routingType, moduleName, author, date, register);

4
axhub-tool-hr/Dockerfile Normal file
View File

@@ -0,0 +1,4 @@
FROM eclipse-temurin:21-jdk-alpine
WORKDIR /app
COPY build/libs/axhub-tool-hr-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java", "-jar", "app.jar"]

View File

@@ -0,0 +1,10 @@
plugins {
id 'org.springframework.boot'
}
dependencies {
implementation project(':axhub-tool-core')
}
dependencies {
compileOnly 'org.projectlombok:lombok:1.18.32'
annotationProcessor 'org.projectlombok:lombok:1.18.32'
}

View File

@@ -0,0 +1,28 @@
package io.shinhanlife.axhub.biz.mcp.tool.hr;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;
/**
* @package io.shinhanlife.axhub.biz.mcp.tool.hr
* @className HrToolApplication
* @description AX HUB 시스템 처리 클래스
* @author
* @create
* <pre>
* ---------- 개정이력 ----------
* 수정일 수정자 수정내용
* ---------- -------- ---------------------------
* 최초생성
*
* </pre>
*/
@SpringBootApplication(scanBasePackages = {"io.shinhanlife.axhub.biz.mcp.tool", "io.shinhanlife.axhub.biz.mcp.adapter", "io.shinhanlife.axhub.common.mcp", "io.shinhanlife.axhub.common.config"})
@org.springframework.boot.context.properties.ConfigurationPropertiesScan(basePackages = {"io.shinhanlife.axhub.biz.mcp.tool", "io.shinhanlife.axhub.biz.mcp.adapter", "io.shinhanlife.axhub.common.mcp", "io.shinhanlife.axhub.common.config"})
@EnableCaching
public class HrToolApplication {
public static void main(String[] args) {
SpringApplication.run(HrToolApplication.class, args);
}
}

View File

@@ -0,0 +1,30 @@
# Local 환경 전용 설정 (H2 메모리 DB 등)
spring.datasource.url=jdbc:p6spy:h2:mem:testdb;DB_CLOSE_DELAY=-1;
spring.datasource.driverClassName=com.p6spy.engine.spy.P6SpyDriver
spring.datasource.username=sa
spring.datasource.password=password
spring.h2.console.enabled=true
# EIMS 동적 라우팅 접속 정보
eims.http.url=http://localhost:${server.port}/api/gateway
eims.tcp.host=127.0.0.1
eims.tcp.port=8090
eims.tcp.timeout=5000
eims.jsp.form.url=http://localhost:${server.port}/mock/jsp-form
eims.jsp.json.url=http://localhost:${server.port}/mock/jsp-json
eims.mci.url=http://localhost:${server.port}/api/mock/esb/api
eims.mcistring.url=http://localhost:${server.port}/api/mock/esb/string
# API 보안 키 설정
mcp.security.tenant-domains.mcp-client-1=CUSTOMER,COMMON
mcp.security.tenant-domains.mcp-client-2=ALL
# Gateway/Tool URLs
axhub.gateway.url=http://localhost:8081
axhub.tool.url=http://localhost:${server.port}
# Disable Kafka
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration
# Suppress Kafka Connection Logs
logging.level.org.apache.kafka=ERROR

View File

@@ -0,0 +1,12 @@
spring:
application:
name: axhub-tool-hr
config:
import: "classpath:config/application-glow-local.yml"
server:
port: 8086
axhub:
tool:
url: "http://tool-hr:8086"

View File

@@ -0,0 +1,2 @@
spring.profiles.active=local
mcp.namespace=hr

View File

@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{traceId}] %-5level %logger{36} - %msg%n" />
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${LOG_PATTERN}</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>logs/axhub-tool-hr.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>logs/axhub-tool-hr-%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${LOG_PATTERN}</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="CONSOLE" />
<appender-ref ref="FILE" />
</root>
<logger name="io.shinhanlife" level="DEBUG" />
</configuration>

View File

@@ -109,3 +109,24 @@ services:
- GLOW_COMMUNICATION_EXTMCI_PORT=8081
- GLOW_COMMUNICATION_EAI_HOST=tcp://gateway
- GLOW_COMMUNICATION_EAI_PORT=8081
tool-hr:
build:
context: ./axhub-tool-hr
ports:
- "8086:8086"
depends_on:
- redis
environment:
- TZ=Asia/Seoul
- SPRING_REDIS_HOST=redis
- SPRING_REDIS_PORT=6379
- SPRING_DATA_REDIS_PORT=6379
- AXHUB_GATEWAY_URL=http://gateway:8081
- AXHUB_TOOL_URL=http://tool-hr:8086
- GLOW_COMMUNICATION_MCI_HOST=http://gateway
- GLOW_COMMUNICATION_MCI_PORT=8081
- GLOW_COMMUNICATION_EXTMCI_HOST=http://gateway
- GLOW_COMMUNICATION_EXTMCI_PORT=8081
- GLOW_COMMUNICATION_EAI_HOST=tcp://gateway
- GLOW_COMMUNICATION_EAI_PORT=8081

View File

@@ -6,4 +6,5 @@ include 'axhub-tool-core'
include 'axhub-tool-sms'
include 'axhub-tool-email'
include 'axhub-tool-other'
include 'axhub-tool-payment'
include 'axhub-tool-payment'
include 'axhub-tool-hr'