forked from kimhyungsik/ax_hub_mcp_tool
refactor: massive rename dap -> dat and dapmt -> datmt preserving encoding
All checks were successful
Deploy Tools / deploy (push) Successful in 1m21s
All checks were successful
Deploy Tools / deploy (push) Successful in 1m21s
This commit is contained in:
92
README.md
92
README.md
@@ -2,7 +2,7 @@
|
||||
|
||||
신한라이프 업무 기능을 MCP(Model Context Protocol) Tool로 제공하는 Java 멀티 모듈 프로젝트입니다. 각 업무 모듈은 독립 실행 가능한 Spring Boot 애플리케이션이며, MCP Streamable HTTP와 REST 실행 API를 함께 제공합니다.
|
||||
|
||||
이 저장소에는 DAPMS(Gateway) 애플리케이션이 포함되어 있지 않습니다. DAPMT는 Gateway로 Tool을 push 등록하지 않으며, 각 Pod가 `GET /tool-manifest`를 제공하면 DAPMS가 이 Manifest를 pull하여 Tool 목록을 구성합니다. Tool 조회와 직접 실행은 각 Pod에서도 자체적으로 처리합니다.
|
||||
이 저장소에는 DAPMS(Gateway) 애플리케이션이 포함되어 있지 않습니다. DATMT는 Gateway로 Tool을 push 등록하지 않으며, 각 Pod가 `GET /tool-manifest`를 제공하면 DAPMS가 이 Manifest를 pull하여 Tool 목록을 구성합니다. Tool 조회와 직접 실행은 각 Pod에서도 자체적으로 처리합니다.
|
||||
|
||||
## 기술 기준
|
||||
|
||||
@@ -19,15 +19,15 @@
|
||||
|
||||
| 모듈 | 역할 | 기본 포트 | Tool 수 |
|
||||
|---|---|---:|---:|
|
||||
| `dap-was-lib` | MCP 서버, Tool 스캔·실행, Schema, Manifest, 보안, MCI/EAI/HTTP 연동 공통 기능 | - | - |
|
||||
| `dap-was-cus` | 고객·CRM·VOC·웹 콘텐츠 관리 Tool | 8084 | 51 |
|
||||
| `dap-was-sal` | 영업·청구·인수·동의·현장지원 Tool | 8082 | 52 |
|
||||
| `dap-was-pro` | 상품·계약·고객·GA 설계사 Tool | 8085 | 50 |
|
||||
| `dap-was-sys` | IAM·시스템 상태·공지·점검·배포 Tool | 8086 | 50 |
|
||||
| `dat-was-lib` | MCP 서버, Tool 스캔·실행, Schema, Manifest, 보안, MCI/EAI/HTTP 연동 공통 기능 | - | - |
|
||||
| `dat-was-cus` | 고객·CRM·VOC·웹 콘텐츠 관리 Tool | 8084 | 51 |
|
||||
| `dat-was-sal` | 영업·청구·인수·동의·현장지원 Tool | 8082 | 52 |
|
||||
| `dat-was-pro` | 상품·계약·고객·GA 설계사 Tool | 8085 | 50 |
|
||||
| `dat-was-sys` | IAM·시스템 상태·공지·점검·배포 Tool | 8086 | 50 |
|
||||
|
||||
총 203개의 `@McpTool` 선언과 203개의 V17 Tool YAML 정의가 있습니다.
|
||||
|
||||
현재 업무 구현은 개발·연동 검증 단계입니다. `dap-was-sal`의 `cmm_claim_search`와 `cmm_memo_retriever`는 각각 MCI와 HTTP Client 흐름을 사용하며, 나머지 Tool은 외부 시스템을 변경하지 않는 모의 응답을 중심으로 구현되어 있습니다.
|
||||
현재 업무 구현은 개발·연동 검증 단계입니다. `dat-was-sal`의 `cmm_claim_search`와 `cmm_memo_retriever`는 각각 MCI와 HTTP Client 흐름을 사용하며, 나머지 Tool은 외부 시스템을 변경하지 않는 모의 응답을 중심으로 구현되어 있습니다.
|
||||
|
||||
## 처리 구조
|
||||
|
||||
@@ -60,20 +60,20 @@ Tool Pod
|
||||
4. `ToolPodMcpToolSynchronizer`가 Tool을 MCP SDK 서버에 등록합니다.
|
||||
5. REST와 MCP 요청은 공통 `McpToolExecutionService`를 통해 실행됩니다.
|
||||
|
||||
DAPMT 내부에는 `/registry/register`, `/registry/deregister` 호출이나 주기적인 Gateway heartbeat 전송이 없습니다. `ToolRegistryHeartbeatSender`라는 클래스명은 호환성을 위해 남아 있지만 현재 역할은 로컬 Tool 스캔과 메타데이터 생성뿐입니다.
|
||||
DATMT 내부에는 `/registry/register`, `/registry/deregister` 호출이나 주기적인 Gateway heartbeat 전송이 없습니다. `ToolRegistryHeartbeatSender`라는 클래스명은 호환성을 위해 남아 있지만 현재 역할은 로컬 Tool 스캔과 메타데이터 생성뿐입니다.
|
||||
|
||||
### DAPMS 연동 방식
|
||||
|
||||
```text
|
||||
DAPMS
|
||||
└─ GET {DAPMT Pod URL}/tool-manifest
|
||||
└─ GET {DATMT Pod URL}/tool-manifest
|
||||
└─ bundleId + revision + tools[]
|
||||
└─ 각 Tool endpoint: {Pod URL}/mcp/{toolName}
|
||||
```
|
||||
|
||||
- `mcp.manifest.bundle-id`는 Manifest를 제공하는 Pod의 고유 식별자이며 필수입니다.
|
||||
- 현재 값은 `was-sal`, `was-cus`, `was-pro`, `was-sys`입니다.
|
||||
- DAPMS에 설정한 bundle ID와 DAPMT가 반환하는 `bundleId`가 일치해야 같은 Tool bundle로 관리됩니다.
|
||||
- DAPMS에 설정한 bundle ID와 DATMT가 반환하는 `bundleId`가 일치해야 같은 Tool bundle로 관리됩니다.
|
||||
- `mcp.manifest.name-prefix`가 비어 있지 않으면 모든 Tool 이름이 해당 prefix로 시작해야 합니다.
|
||||
- Manifest 내용이 바뀌면 `revision`이 증가하며, `If-None-Match`가 일치하면 `304 Not Modified`를 반환합니다.
|
||||
|
||||
@@ -115,11 +115,11 @@ Invoke-RestMethod `
|
||||
|
||||
### 요청 헤더 계약
|
||||
|
||||
DAPMS가 DAPMT Tool Service를 호출할 때 사용하는 헤더는 다음과 같습니다. HTTP 헤더 이름은 대소문자를 구분하지 않지만, 문서와 구현에서는 아래 표기를 기준으로 사용합니다.
|
||||
DAPMS가 DATMT Tool Service를 호출할 때 사용하는 헤더는 다음과 같습니다. HTTP 헤더 이름은 대소문자를 구분하지 않지만, 문서와 구현에서는 아래 표기를 기준으로 사용합니다.
|
||||
|
||||
| 헤더 | 필수 여부 | 용도 | 전달 동작 |
|
||||
|---|---|---|---|
|
||||
| `X-Tool-Server-API-Key` | 인증 설정 시 필수 | DAPMS와 DAPMT 사이의 Tool Server 인증 | `mcp.security.api-key` 또는 `api-keys`와 비교 |
|
||||
| `X-Tool-Server-API-Key` | 인증 설정 시 필수 | DAPMS와 DATMT 사이의 Tool Server 인증 | `mcp.security.api-key` 또는 `api-keys`와 비교 |
|
||||
| `guid` | 선택 | 업무 호출 상관관계 식별자 | 실행 로그, 성공 응답, 하위 HTTP 호출로 전달 |
|
||||
| `x-request-id` | 선택 | 요청 추적 식별자 | 실행 로그, 성공 응답, 하위 HTTP 호출로 전달 |
|
||||
| `employee-no` | 선택 | 실제 사용자 사번 | 하위 HTTP 호출로 전달 |
|
||||
@@ -172,7 +172,7 @@ SystemStatusResponse getSystemStatus(SystemStatusRequest request);
|
||||
각 Tool은 업무 모듈의 다음 경로에 YAML 정의를 가집니다.
|
||||
|
||||
```text
|
||||
dap-was-*/src/main/resources/tool-definitions/{category}/{tool-name}.yml
|
||||
dat-was-*/src/main/resources/tool-definitions/{category}/{tool-name}.yml
|
||||
```
|
||||
|
||||
V17 정의의 주요 필수 항목은 다음과 같습니다.
|
||||
@@ -211,19 +211,19 @@ $env:TOOL_SERVER_API_KEY = 'tool-server-key'
|
||||
```powershell
|
||||
# 영업 Tool Pod
|
||||
$env:AXHUB_TOOL_URL = 'http://localhost:8082'
|
||||
.\gradlew.bat :dap-was-sal:bootRun
|
||||
.\gradlew.bat :dat-was-sal:bootRun
|
||||
|
||||
# 고객 Tool Pod
|
||||
$env:AXHUB_TOOL_URL = 'http://localhost:8084'
|
||||
.\gradlew.bat :dap-was-cus:bootRun
|
||||
.\gradlew.bat :dat-was-cus:bootRun
|
||||
|
||||
# 상품 Tool Pod
|
||||
$env:AXHUB_TOOL_URL = 'http://localhost:8085'
|
||||
.\gradlew.bat :dap-was-pro:bootRun
|
||||
.\gradlew.bat :dat-was-pro:bootRun
|
||||
|
||||
# 시스템 Tool Pod
|
||||
$env:AXHUB_TOOL_URL = 'http://localhost:8086'
|
||||
.\gradlew.bat :dap-was-sys:bootRun
|
||||
.\gradlew.bat :dat-was-sys:bootRun
|
||||
```
|
||||
|
||||
실행 후 SYS Pod 기준 확인 URL은 다음과 같습니다.
|
||||
@@ -242,7 +242,7 @@ http://localhost:8086/swagger-ui/index.html
|
||||
| `PORT` | Pod 수신 포트 | 모듈별 기본 포트 |
|
||||
| `TOOL_SERVER_API_KEY` | DAPMS가 `X-Tool-Server-API-Key`로 전달할 공통 인증 Key | `tool-server-key` |
|
||||
| `AXHUB_TOOL_URL` | Manifest의 Tool endpoint 생성에 사용할 Pod 외부 URL | `http://localhost:${server.port}` |
|
||||
| `AXHUB_GATEWAY_URL` | 프로필 및 Compose 호환용 Gateway URL. 현재 DAPMT의 push 등록에는 사용하지 않음 | `http://localhost:8081` |
|
||||
| `AXHUB_GATEWAY_URL` | 프로필 및 Compose 호환용 Gateway URL. 현재 DATMT의 push 등록에는 사용하지 않음 | `http://localhost:8081` |
|
||||
| `SPRING_DATA_REDIS_HOST` | Redis 호스트 | `localhost` |
|
||||
| `SPRING_DATA_REDIS_PORT` | Redis 포트 | `6379` |
|
||||
| `GLOW_COMMUNICATION_MCI_HOST` | MCI 대상 호스트 | 프로필별 설정 |
|
||||
@@ -265,12 +265,12 @@ http://localhost:8086/swagger-ui/index.html
|
||||
PodScaffolder <module-name> <port> [author] [yyyy.MM.dd]
|
||||
```
|
||||
|
||||
예를 들어 `payment 8099`를 입력하면 `dap-was-payment` 모듈을 생성합니다. 생성되는 `application.yml`에는 다음 계약이 포함됩니다.
|
||||
예를 들어 `payment 8099`를 입력하면 `dat-was-payment` 모듈을 생성합니다. 생성되는 `application.yml`에는 다음 계약이 포함됩니다.
|
||||
|
||||
```yaml
|
||||
mcp:
|
||||
manifest:
|
||||
bundle-id: dap-was-payment
|
||||
bundle-id: dat-was-payment
|
||||
name-prefix: ""
|
||||
security:
|
||||
api-key: ${TOOL_SERVER_API_KEY:tool-server-key}
|
||||
@@ -294,11 +294,11 @@ mcp:
|
||||
.\gradlew.bat test
|
||||
|
||||
# 모듈별 테스트
|
||||
.\gradlew.bat :dap-was-lib:test
|
||||
.\gradlew.bat :dap-was-cus:test
|
||||
.\gradlew.bat :dap-was-sal:test
|
||||
.\gradlew.bat :dap-was-pro:test
|
||||
.\gradlew.bat :dap-was-sys:test
|
||||
.\gradlew.bat :dat-was-lib:test
|
||||
.\gradlew.bat :dat-was-cus:test
|
||||
.\gradlew.bat :dat-was-sal:test
|
||||
.\gradlew.bat :dat-was-pro:test
|
||||
.\gradlew.bat :dat-was-sys:test
|
||||
|
||||
# Tool 이름·중복 검사
|
||||
.\gradlew.bat validateMcpToolNames
|
||||
@@ -322,7 +322,7 @@ mcp:
|
||||
|
||||
## Docker Compose
|
||||
|
||||
`docker-compose.yml`은 DAPMT의 네 업무 Pod만 정의합니다.
|
||||
`docker-compose.yml`은 DATMT의 네 업무 Pod만 정의합니다.
|
||||
|
||||
| 서비스 | 컨테이너 포트 | 호스트 포트 |
|
||||
|---|---:|---:|
|
||||
@@ -334,7 +334,7 @@ mcp:
|
||||
모듈 Dockerfile은 사전에 생성된 Boot JAR를 이미지에 복사합니다. 먼저 JAR를 빌드한 뒤 Compose를 실행합니다.
|
||||
|
||||
```powershell
|
||||
.\gradlew.bat :dap-was-sal:bootJar :dap-was-cus:bootJar :dap-was-pro:bootJar :dap-was-sys:bootJar
|
||||
.\gradlew.bat :dat-was-sal:bootJar :dat-was-cus:bootJar :dat-was-pro:bootJar :dat-was-sys:bootJar
|
||||
docker compose up --build
|
||||
```
|
||||
|
||||
@@ -342,14 +342,14 @@ Compose 파일의 용도와 현재 주의점은 다음과 같습니다.
|
||||
|
||||
| 파일 | 용도 | 현재 소스 기준 주의점 |
|
||||
|---|---|---|
|
||||
| `docker-compose.yml` | DAPMT 네 Pod 단독 실행 | `gateway` 서비스가 없지만 push 등록이 제거되어 DAPMT 시작에는 필요하지 않음 |
|
||||
| `docker-compose.local.yml` | DAPMS와 DAPMT의 로컬 통합 구성 | 두 저장소가 같은 상위 디렉터리에 있는 구조를 가정 |
|
||||
| `docker-compose.prod.yml` | DAPMS와 DAPMT의 개발 프로필 기반 OCI 구성 | 저장소의 runner 등록 토큰을 운영 Secret으로 분리해야 함 |
|
||||
| `docker-compose.yml` | DATMT 네 Pod 단독 실행 | `gateway` 서비스가 없지만 push 등록이 제거되어 DATMT 시작에는 필요하지 않음 |
|
||||
| `docker-compose.local.yml` | DAPMS와 DATMT의 로컬 통합 구성 | 두 저장소가 같은 상위 디렉터리에 있는 구조를 가정 |
|
||||
| `docker-compose.prod.yml` | DAPMS와 DATMT의 개발 프로필 기반 OCI 구성 | 저장소의 runner 등록 토큰을 운영 Secret으로 분리해야 함 |
|
||||
|
||||
`docker-compose.local.yml`과 `docker-compose.prod.yml`의 build context는 각각 `./dap-was-dapms`, `./dap-was-dapmt`입니다. 현재 파일 위치에서 사용할 때는 context 기준을 두 저장소의 상위 디렉터리로 맞춰야 합니다.
|
||||
`docker-compose.local.yml`과 `docker-compose.prod.yml`의 build context는 각각 `./dat-was-dapms`, `./dat-was-datmt`입니다. 현재 파일 위치에서 사용할 때는 context 기준을 두 저장소의 상위 디렉터리로 맞춰야 합니다.
|
||||
|
||||
```powershell
|
||||
# DAPMT 저장소 디렉터리에서 실행
|
||||
# DATMT 저장소 디렉터리에서 실행
|
||||
docker compose --project-directory .. -f docker-compose.local.yml up --build
|
||||
```
|
||||
|
||||
@@ -375,19 +375,19 @@ docker compose --project-directory .. -f docker-compose.local.yml up --build
|
||||
| 주제 | 위치 |
|
||||
|---|---|
|
||||
| 공통 빌드 및 검증 작업 | `build.gradle` |
|
||||
| REST Tool 실행 API | `dap-was-lib/src/main/java/io/shinhanlife/dap/mcc/presentation/BusinessToolController.java` |
|
||||
| 요청 헤더 캡처·전달 | `dap-was-lib/src/main/java/io/shinhanlife/dap/lib/mcp/McpRequestHeaderFilter.java`, `McpRequestHeaderContext.java` |
|
||||
| Tool 실행 서비스 | `dap-was-lib/src/main/java/io/shinhanlife/dap/lib/mcp/McpToolExecutionService.java` |
|
||||
| JSON Schema 2020-12 검증 설정 | `dap-was-lib/src/main/java/io/shinhanlife/dap/lib/config/ToolSchemaConfiguration.java` |
|
||||
| 실행 메서드 Registry | `dap-was-lib/src/main/java/io/shinhanlife/dap/lib/mcp/McpToolMethodRegistry.java` |
|
||||
| MCP SDK 서버 | `dap-was-lib/src/main/java/io/shinhanlife/dap/lib/mcp/ToolMcpServerConfiguration.java` |
|
||||
| MCP Tool 동기화 | `dap-was-lib/src/main/java/io/shinhanlife/dap/lib/mcp/ToolPodMcpToolSynchronizer.java` |
|
||||
| Tool 스캔 및 메타데이터 생성 | `dap-was-lib/src/main/java/io/shinhanlife/dap/lib/mcp/ToolRegistryHeartbeatSender.java` |
|
||||
| YAML Tool 정의 로딩 | `dap-was-lib/src/main/java/io/shinhanlife/dap/lib/metadata/ToolDefinitionRepository.java` |
|
||||
| V17 정의 검증 | `dap-was-lib/src/main/java/io/shinhanlife/dap/lib/metadata/ToolDefinitionValidator.java` |
|
||||
| Manifest 생성 | `dap-was-lib/src/main/java/io/shinhanlife/dap/lib/manifest/ToolManifestService.java` |
|
||||
| API Key 인터셉터 | `dap-was-lib/src/main/java/io/shinhanlife/dap/lib/mcp/security/ApiKeyInterceptor.java` |
|
||||
| Tool·Pod 스캐폴딩 | `dap-was-lib/src/main/java/io/shinhanlife/dap/lib/util/ToolScaffolder.java`, `PodScaffolder.java` |
|
||||
| REST Tool 실행 API | `dat-was-lib/src/main/java/io/shinhanlife/dat/mcc/presentation/BusinessToolController.java` |
|
||||
| 요청 헤더 캡처·전달 | `dat-was-lib/src/main/java/io/shinhanlife/dat/lib/mcp/McpRequestHeaderFilter.java`, `McpRequestHeaderContext.java` |
|
||||
| Tool 실행 서비스 | `dat-was-lib/src/main/java/io/shinhanlife/dat/lib/mcp/McpToolExecutionService.java` |
|
||||
| JSON Schema 2020-12 검증 설정 | `dat-was-lib/src/main/java/io/shinhanlife/dat/lib/config/ToolSchemaConfiguration.java` |
|
||||
| 실행 메서드 Registry | `dat-was-lib/src/main/java/io/shinhanlife/dat/lib/mcp/McpToolMethodRegistry.java` |
|
||||
| MCP SDK 서버 | `dat-was-lib/src/main/java/io/shinhanlife/dat/lib/mcp/ToolMcpServerConfiguration.java` |
|
||||
| MCP Tool 동기화 | `dat-was-lib/src/main/java/io/shinhanlife/dat/lib/mcp/ToolPodMcpToolSynchronizer.java` |
|
||||
| Tool 스캔 및 메타데이터 생성 | `dat-was-lib/src/main/java/io/shinhanlife/dat/lib/mcp/ToolRegistryHeartbeatSender.java` |
|
||||
| YAML Tool 정의 로딩 | `dat-was-lib/src/main/java/io/shinhanlife/dat/lib/metadata/ToolDefinitionRepository.java` |
|
||||
| V17 정의 검증 | `dat-was-lib/src/main/java/io/shinhanlife/dat/lib/metadata/ToolDefinitionValidator.java` |
|
||||
| Manifest 생성 | `dat-was-lib/src/main/java/io/shinhanlife/dat/lib/manifest/ToolManifestService.java` |
|
||||
| API Key 인터셉터 | `dat-was-lib/src/main/java/io/shinhanlife/dat/lib/mcp/security/ApiKeyInterceptor.java` |
|
||||
| Tool·Pod 스캐폴딩 | `dat-was-lib/src/main/java/io/shinhanlife/dat/lib/util/ToolScaffolder.java`, `PodScaffolder.java` |
|
||||
|
||||
## 개발 시 권장 확인 순서
|
||||
|
||||
@@ -396,5 +396,5 @@ docker compose --project-directory .. -f docker-compose.local.yml up --build
|
||||
3. `validateMcpToolNames`와 `validateToolSchemaV17`을 실행합니다.
|
||||
4. 모듈 테스트와 전체 테스트를 실행합니다.
|
||||
5. 로컬 Pod에서 `/mcp/api/v1/tools/local`과 `/tool-manifest`를 확인합니다.
|
||||
6. DAPMS의 bundle ID, Pod Manifest URL, Tool Server API Key가 DAPMT 설정과 일치하는지 확인합니다.
|
||||
6. DAPMS의 bundle ID, Pod Manifest URL, Tool Server API Key가 DATMT 설정과 일치하는지 확인합니다.
|
||||
7. REST와 MCP 양쪽에서 동일한 Tool 결과·요청 헤더 전달·오류 계약을 확인합니다.
|
||||
|
||||
10
build.gradle
10
build.gradle
@@ -17,7 +17,7 @@ allprojects {
|
||||
version = '0.0.1-SNAPSHOT'
|
||||
}
|
||||
|
||||
// dap-gateway, dap-was-lib, dap-was-oth, dap-was-sms에 공통 적용합니다.
|
||||
// dat-gateway, dat-was-lib, dat-was-oth, dat-was-sms에 공통 적용합니다.
|
||||
subprojects {
|
||||
apply plugin: 'java'
|
||||
apply plugin: 'io.spring.dependency-management'
|
||||
@@ -81,17 +81,17 @@ subprojects {
|
||||
}
|
||||
|
||||
// Tool 이름 중복 검사 프로그램이 포함된 공통 라이브러리 모듈입니다.
|
||||
def toolCoreProject = project(':dap-was-lib')
|
||||
def toolCoreProject = project(':dat-was-lib')
|
||||
|
||||
// 전체 Tool Pod의 @McpTool(name) 중복을 배포 산출물 생성 전에 차단합니다.
|
||||
tasks.register('validateMcpToolNames', JavaExec) {
|
||||
group = 'verification'
|
||||
description = 'Checks duplicate @McpTool names across all Tool modules before packaging.'
|
||||
|
||||
// 검사 Runner를 실행하기 전에 dap-was-lib 클래스를 먼저 컴파일합니다.
|
||||
// 검사 Runner를 실행하기 전에 dat-was-lib 클래스를 먼저 컴파일합니다.
|
||||
dependsOn toolCoreProject.tasks.named('classes')
|
||||
classpath = toolCoreProject.sourceSets.main.runtimeClasspath
|
||||
mainClass.set('io.shinhanlife.dap.lib.validation.McpToolNameValidationRunner')
|
||||
mainClass.set('io.shinhanlife.dat.lib.validation.McpToolNameValidationRunner')
|
||||
args rootProject.projectDir.absolutePath
|
||||
}
|
||||
|
||||
@@ -100,7 +100,7 @@ tasks.register('validateToolSchemaV17', JavaExec) {
|
||||
description = 'Validates BC-DAB-STD-003 V17 definitions for every @McpTool.'
|
||||
dependsOn toolCoreProject.tasks.named('classes')
|
||||
classpath = toolCoreProject.sourceSets.main.runtimeClasspath
|
||||
mainClass.set('io.shinhanlife.dap.lib.validation.ToolSchemaV17ValidationRunner')
|
||||
mainClass.set('io.shinhanlife.dat.lib.validation.ToolSchemaV17ValidationRunner')
|
||||
args rootProject.projectDir.absolutePath
|
||||
}
|
||||
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
package io.shinhanlife.dap.mcc.biz.cmm.converter;
|
||||
|
||||
import io.shinhanlife.dap.mcc.biz.cmm.dto.ClaimSearchRequest;
|
||||
import io.shinhanlife.dap.mcc.biz.cmm.dto.ClaimSearchResponse;
|
||||
import io.shinhanlife.dap.mcc.infra.itrf.mci.ncla.io.CLCNNB00001_I;
|
||||
import io.shinhanlife.dap.mcc.infra.itrf.mci.ncla.io.CLCNNB00001_O;
|
||||
import org.mapstruct.Mapper;
|
||||
|
||||
@Mapper(componentModel = "spring")
|
||||
public interface ClaimSearchConverter {
|
||||
CLCNNB00001_I toLegacyRequest(ClaimSearchRequest request);
|
||||
ClaimSearchRequest toRequest(CLCNNB00001_I mciRequest);
|
||||
ClaimSearchResponse toResponse(CLCNNB00001_O mciRes);
|
||||
}
|
||||
@@ -4,7 +4,7 @@ plugins {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
// MCP Server, Tool 공통 처리, MCI/EAI 연동 기반은 dap-was-lib에서 상속합니다.
|
||||
implementation project(':dap-was-lib')
|
||||
// MCP Server, Tool 공통 처리, MCI/EAI 연동 기반은 dat-was-lib에서 상속합니다.
|
||||
implementation project(':dat-was-lib')
|
||||
implementation 'org.apache.poi:poi-ooxml:5.3.0'
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.mcc.biz.crm.dto;
|
||||
package io.shinhanlife.dat.mcc.biz.crm.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import org.springaicommunity.mcp.annotation.McpToolParam;
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.mcc.biz.crm.dto;
|
||||
package io.shinhanlife.dat.mcc.biz.crm.dto;
|
||||
|
||||
import java.util.List;
|
||||
import lombok.Data;
|
||||
@@ -1,8 +1,8 @@
|
||||
package io.shinhanlife.dap.mcc.biz.crm.usecase;
|
||||
package io.shinhanlife.dat.mcc.biz.crm.usecase;
|
||||
|
||||
import io.shinhanlife.dap.lib.annotation.GrowToolHint;
|
||||
import io.shinhanlife.dap.mcc.biz.crm.dto.CrmToolRequest;
|
||||
import io.shinhanlife.dap.mcc.biz.crm.dto.CrmToolResponse;
|
||||
import io.shinhanlife.dat.lib.annotation.GrowToolHint;
|
||||
import io.shinhanlife.dat.mcc.biz.crm.dto.CrmToolRequest;
|
||||
import io.shinhanlife.dat.mcc.biz.crm.dto.CrmToolResponse;
|
||||
import org.springaicommunity.mcp.annotation.McpTool;
|
||||
|
||||
public interface CrmToolUseCase {
|
||||
@@ -1,8 +1,8 @@
|
||||
package io.shinhanlife.dap.mcc.biz.crm.usecase.impl;
|
||||
package io.shinhanlife.dat.mcc.biz.crm.usecase.impl;
|
||||
|
||||
import io.shinhanlife.dap.mcc.biz.crm.dto.CrmToolRequest;
|
||||
import io.shinhanlife.dap.mcc.biz.crm.dto.CrmToolResponse;
|
||||
import io.shinhanlife.dap.mcc.biz.crm.usecase.CrmToolUseCase;
|
||||
import io.shinhanlife.dat.mcc.biz.crm.dto.CrmToolRequest;
|
||||
import io.shinhanlife.dat.mcc.biz.crm.dto.CrmToolResponse;
|
||||
import io.shinhanlife.dat.mcc.biz.crm.usecase.CrmToolUseCase;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.mcc.biz.voc.dto;
|
||||
package io.shinhanlife.dat.mcc.biz.voc.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import org.springaicommunity.mcp.annotation.McpToolParam;
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.mcc.biz.voc.dto;
|
||||
package io.shinhanlife.dat.mcc.biz.voc.dto;
|
||||
|
||||
import java.util.List;
|
||||
import lombok.Data;
|
||||
@@ -1,8 +1,8 @@
|
||||
package io.shinhanlife.dap.mcc.biz.voc.usecase;
|
||||
package io.shinhanlife.dat.mcc.biz.voc.usecase;
|
||||
|
||||
import io.shinhanlife.dap.lib.annotation.GrowToolHint;
|
||||
import io.shinhanlife.dap.mcc.biz.voc.dto.VocToolRequest;
|
||||
import io.shinhanlife.dap.mcc.biz.voc.dto.VocToolResponse;
|
||||
import io.shinhanlife.dat.lib.annotation.GrowToolHint;
|
||||
import io.shinhanlife.dat.mcc.biz.voc.dto.VocToolRequest;
|
||||
import io.shinhanlife.dat.mcc.biz.voc.dto.VocToolResponse;
|
||||
import org.springaicommunity.mcp.annotation.McpTool;
|
||||
|
||||
public interface VocToolUseCase {
|
||||
@@ -1,8 +1,8 @@
|
||||
package io.shinhanlife.dap.mcc.biz.voc.usecase.impl;
|
||||
package io.shinhanlife.dat.mcc.biz.voc.usecase.impl;
|
||||
|
||||
import io.shinhanlife.dap.mcc.biz.voc.dto.VocToolRequest;
|
||||
import io.shinhanlife.dap.mcc.biz.voc.dto.VocToolResponse;
|
||||
import io.shinhanlife.dap.mcc.biz.voc.usecase.VocToolUseCase;
|
||||
import io.shinhanlife.dat.mcc.biz.voc.dto.VocToolRequest;
|
||||
import io.shinhanlife.dat.mcc.biz.voc.dto.VocToolResponse;
|
||||
import io.shinhanlife.dat.mcc.biz.voc.usecase.VocToolUseCase;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.mcc.biz.wcm.dto;
|
||||
package io.shinhanlife.dat.mcc.biz.wcm.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import org.springaicommunity.mcp.annotation.McpToolParam;
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.mcc.biz.wcm.dto;
|
||||
package io.shinhanlife.dat.mcc.biz.wcm.dto;
|
||||
|
||||
import java.util.List;
|
||||
import lombok.Data;
|
||||
@@ -1,8 +1,8 @@
|
||||
package io.shinhanlife.dap.mcc.biz.wcm.usecase;
|
||||
package io.shinhanlife.dat.mcc.biz.wcm.usecase;
|
||||
|
||||
import io.shinhanlife.dap.lib.annotation.GrowToolHint;
|
||||
import io.shinhanlife.dap.mcc.biz.wcm.dto.WcmToolRequest;
|
||||
import io.shinhanlife.dap.mcc.biz.wcm.dto.WcmToolResponse;
|
||||
import io.shinhanlife.dat.lib.annotation.GrowToolHint;
|
||||
import io.shinhanlife.dat.mcc.biz.wcm.dto.WcmToolRequest;
|
||||
import io.shinhanlife.dat.mcc.biz.wcm.dto.WcmToolResponse;
|
||||
import org.springaicommunity.mcp.annotation.McpTool;
|
||||
|
||||
public interface WcmToolUseCase {
|
||||
@@ -1,8 +1,8 @@
|
||||
package io.shinhanlife.dap.mcc.biz.wcm.usecase.impl;
|
||||
package io.shinhanlife.dat.mcc.biz.wcm.usecase.impl;
|
||||
|
||||
import io.shinhanlife.dap.mcc.biz.wcm.dto.WcmToolRequest;
|
||||
import io.shinhanlife.dap.mcc.biz.wcm.dto.WcmToolResponse;
|
||||
import io.shinhanlife.dap.mcc.biz.wcm.usecase.WcmToolUseCase;
|
||||
import io.shinhanlife.dat.mcc.biz.wcm.dto.WcmToolRequest;
|
||||
import io.shinhanlife.dat.mcc.biz.wcm.dto.WcmToolResponse;
|
||||
import io.shinhanlife.dat.mcc.biz.wcm.usecase.WcmToolUseCase;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -1,9 +1,9 @@
|
||||
package io.shinhanlife.dap.mcc.cus;
|
||||
package io.shinhanlife.dat.mcc.cus;
|
||||
|
||||
|
||||
/**
|
||||
* @package io.shinhanlife.dap.mcc.cus
|
||||
* @className DapWasCusApplication
|
||||
* @package io.shinhanlife.dat.mcc.cus
|
||||
* @className DatWasCusApplication
|
||||
* @description AX HUB 시스템 처리 클래스
|
||||
* @author 0986406
|
||||
* @create 2026.09.01
|
||||
@@ -20,14 +20,14 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.boot.context.properties.ConfigurationPropertiesScan;
|
||||
import org.springframework.cache.annotation.EnableCaching;
|
||||
import org.springframework.context.annotation.Import;
|
||||
import io.shinhanlife.dap.lib.mcp.ToolMcpServerConfiguration;
|
||||
import io.shinhanlife.dat.lib.mcp.ToolMcpServerConfiguration;
|
||||
|
||||
@SpringBootApplication(scanBasePackages = {"io.shinhanlife.dap.mcc", "io.shinhanlife.dap.lib"})
|
||||
@ConfigurationPropertiesScan(basePackages = {"io.shinhanlife.dap.mcc", "io.shinhanlife.dap.lib"})
|
||||
@SpringBootApplication(scanBasePackages = {"io.shinhanlife.dat.mcc", "io.shinhanlife.dat.lib"})
|
||||
@ConfigurationPropertiesScan(basePackages = {"io.shinhanlife.dat.mcc", "io.shinhanlife.dat.lib"})
|
||||
@EnableCaching
|
||||
@Import(ToolMcpServerConfiguration.class)
|
||||
public class DapWasCusApplication {
|
||||
public class DatWasCusApplication {
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(DapWasCusApplication.class, args);
|
||||
SpringApplication.run(DatWasCusApplication.class, args);
|
||||
}
|
||||
}
|
||||
@@ -2,7 +2,7 @@ server:
|
||||
port: 8084
|
||||
spring:
|
||||
application:
|
||||
name: dap-was-cus
|
||||
name: dat-was-cus
|
||||
profiles:
|
||||
active: local
|
||||
logging:
|
||||
@@ -16,10 +16,10 @@
|
||||
<property name="HOSTNAME" value="${HOSTNAME}" />
|
||||
|
||||
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>/swlog/dap-was-sal/A01/${HOSTNAME}_A01.log</file> <!-- 현재 로그가 쌓이는 파일 -->
|
||||
<file>/swlog/dat-was-cus/A01/${HOSTNAME}_A01.log</file> <!-- 현재 로그가 쌓이는 파일 -->
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<!-- 매일 자정에 날짜를 붙여서 지난 로그를 분리 저장 -->
|
||||
<fileNamePattern>/swlog/dap-was-sal/A01/${HOSTNAME}_A01_%d{yyyyMMdd}.%i.log</fileNamePattern>
|
||||
<fileNamePattern>/swlog/dat-was-cus/A01/${HOSTNAME}_A01_%d{yyyyMMdd}.%i.log</fileNamePattern>
|
||||
<!-- 개별 로그 파일 크기를 100MB로 제한하고, 전체 보관 일수는 30일, 총 로그 누적 용량은 1GB로 제한 -->
|
||||
<maxFileSize>100MB</maxFileSize>
|
||||
<maxHistory>30</maxHistory>
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.adapter.dto;
|
||||
package io.shinhanlife.dat.lib.adapter.dto;
|
||||
|
||||
import lombok.Builder;
|
||||
import lombok.NoArgsConstructor;
|
||||
@@ -8,7 +8,7 @@ import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
/**
|
||||
* @package io.shinhanlife.dap.lib.adapter.dto
|
||||
* @package io.shinhanlife.dat.lib.adapter.dto
|
||||
* @className ErrorDetail
|
||||
* @description AX HUB 시스템 처리 클래스
|
||||
* @author 0986406
|
||||
@@ -1,10 +1,10 @@
|
||||
package io.shinhanlife.dap.lib.adapter.dto;
|
||||
package io.shinhanlife.dat.lib.adapter.dto;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
/**
|
||||
* @package io.shinhanlife.dap.lib.adapter.dto
|
||||
* @package io.shinhanlife.dat.lib.adapter.dto
|
||||
* @className JsonRpcRequest
|
||||
* @description AX HUB 시스템 처리 클래스
|
||||
* @author 0986406
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.adapter.dto;
|
||||
package io.shinhanlife.dat.lib.adapter.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
|
||||
import lombok.Getter;
|
||||
@@ -6,7 +6,7 @@ import lombok.Setter;
|
||||
|
||||
// 2. 응답 DTO
|
||||
/**
|
||||
* @package io.shinhanlife.dap.lib.adapter.dto
|
||||
* @package io.shinhanlife.dat.lib.adapter.dto
|
||||
* @className JsonRpcResponse
|
||||
* @description AX HUB 시스템 처리 클래스
|
||||
* @author 0986406
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.adapter.dto;
|
||||
package io.shinhanlife.dat.lib.adapter.dto;
|
||||
|
||||
import lombok.Builder;
|
||||
import lombok.NoArgsConstructor;
|
||||
@@ -11,7 +11,7 @@ import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
/**
|
||||
* @package io.shinhanlife.dap.lib.adapter.dto
|
||||
* @package io.shinhanlife.dat.lib.adapter.dto
|
||||
* @className Params
|
||||
* @description AX HUB 시스템 처리 클래스
|
||||
* @author 0986406
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.adapter.test;
|
||||
package io.shinhanlife.dat.lib.adapter.test;
|
||||
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.adapter.util;
|
||||
package io.shinhanlife.dat.lib.adapter.util;
|
||||
|
||||
import ch.qos.logback.classic.pattern.MessageConverter;
|
||||
import ch.qos.logback.classic.spi.ILoggingEvent;
|
||||
@@ -9,7 +9,7 @@ import ch.qos.logback.classic.spi.ILoggingEvent;
|
||||
* 여기서 PiiMaskingUtils.mask()를 호출하여 PII(주민번호, 계좌번호 등)를 안전하게 별표(*) 처리합니다.
|
||||
*/
|
||||
/**
|
||||
* @package io.shinhanlife.dap.lib.adapter.util
|
||||
* @package io.shinhanlife.dat.lib.adapter.util
|
||||
* @className PiiMaskingLogbackConverter
|
||||
* @description AX HUB 시스템 처리 클래스
|
||||
* @author 0986406
|
||||
@@ -1,10 +1,10 @@
|
||||
package io.shinhanlife.dap.lib.adapter.util;
|
||||
package io.shinhanlife.dat.lib.adapter.util;
|
||||
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/**
|
||||
* @package io.shinhanlife.dap.lib.adapter.util
|
||||
* @package io.shinhanlife.dat.lib.adapter.util
|
||||
* @className PiiMaskingUtils
|
||||
* @description AX HUB 시스템 처리 클래스
|
||||
* @author 0986406
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.annotation;
|
||||
package io.shinhanlife.dat.lib.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@@ -7,7 +7,7 @@ import java.lang.annotation.Target;
|
||||
|
||||
/**
|
||||
* Spring AI @Tool 어노테이션을 보완하여 MCP 시스템 메타데이터를 추가 제공하는 힌트 어노테이션
|
||||
* @package io.shinhanlife.dap.lib.annotation
|
||||
* @package io.shinhanlife.dat.lib.annotation
|
||||
* @className GrowToolHint
|
||||
* @description 비즈니스 로직(Tool)과 시스템 제어 메타데이터 분리
|
||||
* @author 0986406
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.annotation;
|
||||
package io.shinhanlife.dat.lib.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@@ -1,8 +1,8 @@
|
||||
package io.shinhanlife.dap.lib.aop;
|
||||
package io.shinhanlife.dat.lib.aop;
|
||||
|
||||
|
||||
/**
|
||||
* @package io.shinhanlife.dap.lib.aop
|
||||
* @package io.shinhanlife.dat.lib.aop
|
||||
* @className ToolSlaMonitoringAspect
|
||||
* @description AX HUB 시스템 처리 클래스
|
||||
* @author 0986406
|
||||
@@ -15,7 +15,7 @@ package io.shinhanlife.dap.lib.aop;
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
import io.shinhanlife.dap.lib.config.McpProperties;
|
||||
import io.shinhanlife.dat.lib.config.McpProperties;
|
||||
import java.lang.reflect.Method;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.config;
|
||||
package io.shinhanlife.dat.lib.config;
|
||||
|
||||
import io.shinhanlife.glow.communication.module.http.component.GlowHttpComponent;
|
||||
import java.net.http.HttpClient;
|
||||
@@ -1,11 +1,11 @@
|
||||
package io.shinhanlife.dap.lib.config;
|
||||
package io.shinhanlife.dat.lib.config;
|
||||
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.web.servlet.config.annotation.CorsRegistry;
|
||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||
|
||||
/**
|
||||
* @package io.shinhanlife.dap.lib.config
|
||||
* @package io.shinhanlife.dat.lib.config
|
||||
* @className CorsConfig
|
||||
* @description AX HUB 시스템 처리 클래스
|
||||
* @author 0986406
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.config;
|
||||
package io.shinhanlife.dat.lib.config;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
@@ -11,7 +11,7 @@ import org.springframework.stereotype.Component;
|
||||
* 자바 객체(Bean)로 매핑하여 제공합니다.
|
||||
*/
|
||||
/**
|
||||
* @package io.shinhanlife.dap.lib.config
|
||||
* @package io.shinhanlife.dat.lib.config
|
||||
* @className GlowCommunicationProperties
|
||||
* @description AX HUB 시스템 처리 클래스
|
||||
* @author 0986406
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.config;
|
||||
package io.shinhanlife.dat.lib.config;
|
||||
|
||||
import lombok.Data;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
@@ -7,7 +7,7 @@ import org.springframework.context.annotation.Configuration;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @package io.shinhanlife.dap.lib.config
|
||||
* @package io.shinhanlife.dat.lib.config
|
||||
* @className McpProperties
|
||||
* @description AX HUB 시스템 처리 클래스
|
||||
* @author 0986406
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.config;
|
||||
package io.shinhanlife.dat.lib.config;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
|
||||
@@ -8,7 +8,7 @@ import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
/**
|
||||
* @package io.shinhanlife.dap.lib.config
|
||||
* @package io.shinhanlife.dat.lib.config
|
||||
* @className MybatisConfig
|
||||
* @description AX HUB 시스템 처리 클래스
|
||||
* @author 0986406
|
||||
@@ -25,7 +25,7 @@ import org.mybatis.spring.annotation.MapperScan;
|
||||
import io.shinhanlife.glow.GlowMybatisMapper;
|
||||
|
||||
@Configuration
|
||||
@MapperScan(basePackages = "io.shinhanlife.dap", annotationClass = GlowMybatisMapper.class)
|
||||
@MapperScan(basePackages = "io.shinhanlife.dat", annotationClass = GlowMybatisMapper.class)
|
||||
public class MybatisConfig {
|
||||
|
||||
@Bean
|
||||
@@ -1,10 +1,10 @@
|
||||
package io.shinhanlife.dap.lib.config;
|
||||
package io.shinhanlife.dat.lib.config;
|
||||
|
||||
import com.p6spy.engine.logging.Category;
|
||||
import com.p6spy.engine.spy.appender.MessageFormattingStrategy;
|
||||
|
||||
/**
|
||||
* @package io.shinhanlife.dap.lib.config
|
||||
* @package io.shinhanlife.dat.lib.config
|
||||
* @className P6SpySqlFormatter
|
||||
* @description AX HUB 시스템 처리 클래스
|
||||
* @author 0986406
|
||||
@@ -1,10 +1,10 @@
|
||||
package io.shinhanlife.dap.lib.config;
|
||||
package io.shinhanlife.dat.lib.config;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import io.modelcontextprotocol.json.schema.JsonSchemaValidator;
|
||||
import io.modelcontextprotocol.json.schema.jackson2.DefaultJsonSchemaValidator;
|
||||
import io.shinhanlife.dap.lib.util.ToolSchemaResolver;
|
||||
import io.shinhanlife.dap.lib.validation.ToolArgumentSchemaValidator;
|
||||
import io.shinhanlife.dat.lib.util.ToolSchemaResolver;
|
||||
import io.shinhanlife.dat.lib.validation.ToolArgumentSchemaValidator;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package io.shinhanlife.dap.lib.dto;
|
||||
package io.shinhanlife.dat.lib.dto;
|
||||
|
||||
/**
|
||||
* @package io.shinhanlife.dap.mcg.dto
|
||||
* @package io.shinhanlife.dat.mcg.dto
|
||||
* @className OperationType
|
||||
* @description AX HUB 시스템 처리 클래스
|
||||
* @author 0986406
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.integration;
|
||||
package io.shinhanlife.dat.lib.integration;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Component;
|
||||
@@ -17,7 +17,7 @@ import org.springframework.stereotype.Component;
|
||||
* MCP 툴에서 손쉽게 호출할 수 있도록 일원화한 컴포넌트입니다.
|
||||
*/
|
||||
/**
|
||||
* @package io.shinhanlife.dap.lib.integration
|
||||
* @package io.shinhanlife.dat.lib.integration
|
||||
* @className GlowIntegrationCall
|
||||
* @description AX HUB 시스템 처리 클래스
|
||||
* @author 0986406
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.integration.dto;
|
||||
package io.shinhanlife.dat.lib.integration.dto;
|
||||
|
||||
import lombok.AccessLevel;
|
||||
import lombok.AllArgsConstructor;
|
||||
@@ -16,7 +16,7 @@ import java.util.List;
|
||||
* 새로운 대외 통신 전문을 만들 때 이 파일을 복사해서 필드명과 길이만 수정하여 사용하세요.
|
||||
*/
|
||||
/**
|
||||
* @package io.shinhanlife.dap.lib.integration.dto
|
||||
* @package io.shinhanlife.dat.lib.integration.dto
|
||||
* @className SampleGlowMessage
|
||||
* @description AX HUB 시스템 처리 클래스
|
||||
* @author 0986406
|
||||
@@ -1,6 +1,6 @@
|
||||
package io.shinhanlife.dap.lib.integration.eai.component;
|
||||
package io.shinhanlife.dat.lib.integration.eai.component;
|
||||
|
||||
import io.shinhanlife.dap.lib.config.GlowCommunicationProperties;
|
||||
import io.shinhanlife.dat.lib.config.GlowCommunicationProperties;
|
||||
import io.shinhanlife.glow.communication.dto.CommonHeader;
|
||||
import io.shinhanlife.glow.communication.dto.Transfer;
|
||||
import io.shinhanlife.glow.communication.module.eai.component.GlowEaiComponent;
|
||||
@@ -17,7 +17,7 @@ import org.springframework.stereotype.Component;
|
||||
@RequiredArgsConstructor
|
||||
|
||||
/**
|
||||
* @package io.shinhanlife.dap.lib.integration.eai.component
|
||||
* @package io.shinhanlife.dat.lib.integration.eai.component
|
||||
* @className AxhubEaiComponent
|
||||
* @description AX HUB 시스템 처리 클래스
|
||||
* @author 0986406
|
||||
@@ -1,10 +1,10 @@
|
||||
package io.shinhanlife.dap.lib.integration.http.component;
|
||||
package io.shinhanlife.dat.lib.integration.http.component;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import io.shinhanlife.dap.lib.config.GlowCommunicationProperties;
|
||||
import io.shinhanlife.dap.lib.mcp.McpRequestHeaderContext;
|
||||
import io.shinhanlife.dap.lib.mcp.McpRequestHeaders;
|
||||
import io.shinhanlife.dat.lib.config.GlowCommunicationProperties;
|
||||
import io.shinhanlife.dat.lib.mcp.McpRequestHeaderContext;
|
||||
import io.shinhanlife.dat.lib.mcp.McpRequestHeaders;
|
||||
import io.shinhanlife.glow.communication.module.http.component.GlowHttpComponent;
|
||||
import io.shinhanlife.glow.communication.module.http.dto.HttpBody;
|
||||
import io.shinhanlife.glow.communication.module.http.dto.HttpHeader;
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.integration.http.component;
|
||||
package io.shinhanlife.dat.lib.integration.http.component;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -1,15 +1,15 @@
|
||||
package io.shinhanlife.dap.lib.integration.mci.component;
|
||||
package io.shinhanlife.dat.lib.integration.mci.component;
|
||||
|
||||
import io.shinhanlife.dap.lib.session.dto.SessionDto;
|
||||
import io.shinhanlife.dap.lib.util.SessionUtil;
|
||||
import io.shinhanlife.dap.lib.config.GlowCommunicationProperties;
|
||||
import io.shinhanlife.dat.lib.session.dto.SessionDto;
|
||||
import io.shinhanlife.dat.lib.util.SessionUtil;
|
||||
import io.shinhanlife.dat.lib.config.GlowCommunicationProperties;
|
||||
import io.shinhanlife.glow.BizException;
|
||||
import io.shinhanlife.glow.communication.dto.CommonHeader;
|
||||
import io.shinhanlife.glow.communication.dto.HeaderDefaults;
|
||||
import io.shinhanlife.glow.communication.dto.Transfer;
|
||||
import io.shinhanlife.glow.communication.module.mci.component.GlowMciComponent;
|
||||
import io.shinhanlife.glow.communication.util.CommonHeaderFactory;
|
||||
import io.shinhanlife.dap.lib.integration.mci.enums.IndvCtinRoleTyp;
|
||||
import io.shinhanlife.dat.lib.integration.mci.enums.IndvCtinRoleTyp;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
@@ -25,7 +25,7 @@ import java.util.Map;
|
||||
@RequiredArgsConstructor
|
||||
|
||||
/**
|
||||
* @package io.shinhanlife.dap.lib.integration.mci.component
|
||||
* @package io.shinhanlife.dat.lib.integration.mci.component
|
||||
* @className AxhubMciComponent
|
||||
* @description AX HUB 시스템 처리 클래스
|
||||
* @author 0986406
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.integration.mci.config;
|
||||
package io.shinhanlife.dat.lib.integration.mci.config;
|
||||
|
||||
import io.shinhanlife.glow.communication.module.mci.component.GlowMciComponent;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
@@ -11,7 +11,7 @@ import org.springframework.context.annotation.Configuration;
|
||||
@Configuration
|
||||
|
||||
/**
|
||||
* @package io.shinhanlife.dap.lib.integration.mci.config
|
||||
* @package io.shinhanlife.dat.lib.integration.mci.config
|
||||
* @className GlowMockConfig
|
||||
* @description AX HUB 시스템 처리 클래스
|
||||
* @author 0986406
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.integration.mci.config;
|
||||
package io.shinhanlife.dat.lib.integration.mci.config;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
@@ -6,7 +6,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
/**
|
||||
* @package io.shinhanlife.dap.lib.integration.mci.config
|
||||
* @package io.shinhanlife.dat.lib.integration.mci.config
|
||||
* @className ShinhanIntegrationProperties
|
||||
* @description AX HUB 시스템 처리 클래스
|
||||
* @author 0986406
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.integration.mci.dto;
|
||||
package io.shinhanlife.dat.lib.integration.mci.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
@@ -8,7 +8,7 @@ import lombok.NoArgsConstructor;
|
||||
import com.fasterxml.jackson.annotation.JsonUnwrapped;
|
||||
|
||||
/**
|
||||
* @package io.shinhanlife.dap.lib.integration.mci.dto
|
||||
* @package io.shinhanlife.dat.lib.integration.mci.dto
|
||||
* @className MciRequestWrapper
|
||||
* @description AX HUB 시스템 처리 클래스
|
||||
* @author 0986406
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.integration.mci.dto;
|
||||
package io.shinhanlife.dat.lib.integration.mci.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonUnwrapped;
|
||||
import lombok.AllArgsConstructor;
|
||||
@@ -7,7 +7,7 @@ import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @package io.shinhanlife.dap.lib.integration.mci.dto
|
||||
* @package io.shinhanlife.dat.lib.integration.mci.dto
|
||||
* @className MciResponseWrapper
|
||||
* @description AX HUB 시스템 처리 클래스
|
||||
* @author 0986406
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.integration.mci.dto;
|
||||
package io.shinhanlife.dat.lib.integration.mci.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
@@ -7,7 +7,7 @@ import lombok.NoArgsConstructor;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @package io.shinhanlife.dap.lib.integration.mci.dto
|
||||
* @package io.shinhanlife.dat.lib.integration.mci.dto
|
||||
* @className OlCommonHeaderDto
|
||||
* @description AX HUB 시스템 처리 클래스 - OL(구 오렌지라이프) 공통 헤더
|
||||
* @author 0986406
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.integration.mci.dto;
|
||||
package io.shinhanlife.dat.lib.integration.mci.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
@@ -6,7 +6,7 @@ import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @package io.shinhanlife.dap.lib.integration.mci.dto
|
||||
* @package io.shinhanlife.dat.lib.integration.mci.dto
|
||||
* @className ShinhanCommonHeaderDto
|
||||
* @description AX HUB 시스템 처리 클래스
|
||||
* @author 0986406
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.integration.mci.dto;
|
||||
package io.shinhanlife.dat.lib.integration.mci.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
@@ -6,7 +6,7 @@ import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @package io.shinhanlife.dap.lib.integration.mci.dto
|
||||
* @package io.shinhanlife.dat.lib.integration.mci.dto
|
||||
* @className ShinhanMessageDto
|
||||
* @description AX HUB 시스템 처리 클래스 - MCI 전문 메시지부
|
||||
* @author 0986406
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.integration.mci.dto;
|
||||
package io.shinhanlife.dat.lib.integration.mci.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
@@ -8,7 +8,7 @@ import lombok.NoArgsConstructor;
|
||||
import com.fasterxml.jackson.annotation.JsonUnwrapped;
|
||||
|
||||
/**
|
||||
* @package io.shinhanlife.dap.lib.integration.mci.dto
|
||||
* @package io.shinhanlife.dat.lib.integration.mci.dto
|
||||
* @className ShinhanTelegramWrapper
|
||||
* @description AX HUB 시스템 처리 클래스 - MCI 전문 전체 래퍼 (공통헤더부 + 메시지부 + 데이터부)
|
||||
* @author 0986406
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.integration.mci.dto;
|
||||
package io.shinhanlife.dat.lib.integration.mci.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
@@ -6,7 +6,7 @@ import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @package io.shinhanlife.dap.lib.integration.mci.dto
|
||||
* @package io.shinhanlife.dat.lib.integration.mci.dto
|
||||
* @className SlCommonHeaderDto
|
||||
* @description AX HUB 시스템 처리 클래스 - SL(신한라이프) 표준 헤더
|
||||
* @author 0986406
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.integration.mci.enums;
|
||||
package io.shinhanlife.dat.lib.integration.mci.enums;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@@ -7,7 +7,7 @@ import lombok.RequiredArgsConstructor;
|
||||
@RequiredArgsConstructor
|
||||
|
||||
/**
|
||||
* @package io.shinhanlife.dap.lib.integration.mci.enums
|
||||
* @package io.shinhanlife.dat.lib.integration.mci.enums
|
||||
* @className IndvCtinRoleTyp
|
||||
* @description AX HUB 시스템 처리 클래스
|
||||
* @author 0986406
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.manifest;
|
||||
package io.shinhanlife.dat.lib.manifest;
|
||||
|
||||
/** Behaviour hints exposed by the Tool Service manifest. */
|
||||
public record ToolManifestAnnotations(
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.manifest;
|
||||
package io.shinhanlife.dat.lib.manifest;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import java.util.Map;
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.manifest;
|
||||
package io.shinhanlife.dat.lib.manifest;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import java.util.List;
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.manifest;
|
||||
package io.shinhanlife.dat.lib.manifest;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package io.shinhanlife.dap.lib.manifest;
|
||||
package io.shinhanlife.dat.lib.manifest;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import io.shinhanlife.dap.lib.config.McpProperties;
|
||||
import io.shinhanlife.dap.mcc.dto.ToolMetadata;
|
||||
import io.shinhanlife.dap.lib.mcp.ToolRegistryHeartbeatSender;
|
||||
import io.shinhanlife.dat.lib.config.McpProperties;
|
||||
import io.shinhanlife.dat.mcc.dto.ToolMetadata;
|
||||
import io.shinhanlife.dat.lib.mcp.ToolRegistryHeartbeatSender;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.security.MessageDigest;
|
||||
import java.util.Comparator;
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.mcp;
|
||||
package io.shinhanlife.dat.lib.mcp;
|
||||
|
||||
/** Holds optional MCP headers for the lifetime of one HTTP request thread. */
|
||||
public final class McpRequestHeaderContext {
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.mcp;
|
||||
package io.shinhanlife.dat.lib.mcp;
|
||||
|
||||
import java.io.IOException;
|
||||
import jakarta.servlet.FilterChain;
|
||||
@@ -7,8 +7,8 @@ import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.web.filter.OncePerRequestFilter;
|
||||
import io.shinhanlife.dap.lib.session.mci.AxhubSessionService;
|
||||
import io.shinhanlife.dap.lib.session.dto.SessionDto;
|
||||
import io.shinhanlife.dat.lib.session.mci.AxhubSessionService;
|
||||
import io.shinhanlife.dat.lib.session.dto.SessionDto;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
/** Captures optional correlation and employee headers for an MCP HTTP call and creates mock session. */
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.mcp;
|
||||
package io.shinhanlife.dat.lib.mcp;
|
||||
|
||||
/** Optional request headers propagated from an MCP HTTP request to a Tool invocation. */
|
||||
public record McpRequestHeaders(
|
||||
@@ -1,9 +1,9 @@
|
||||
package io.shinhanlife.dap.lib.mcp;
|
||||
package io.shinhanlife.dat.lib.mcp;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import io.modelcontextprotocol.json.schema.JsonSchemaValidator.ValidationResponse;
|
||||
import io.shinhanlife.dap.lib.util.ToolSchemaResolver;
|
||||
import io.shinhanlife.dap.lib.validation.ToolArgumentSchemaValidator;
|
||||
import io.shinhanlife.dat.lib.util.ToolSchemaResolver;
|
||||
import io.shinhanlife.dat.lib.validation.ToolArgumentSchemaValidator;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
@@ -1,7 +1,7 @@
|
||||
package io.shinhanlife.dap.lib.mcp;
|
||||
package io.shinhanlife.dat.lib.mcp;
|
||||
|
||||
import io.shinhanlife.dap.lib.annotation.GrowToolHint;
|
||||
import io.shinhanlife.dap.lib.config.McpProperties;
|
||||
import io.shinhanlife.dat.lib.annotation.GrowToolHint;
|
||||
import io.shinhanlife.dat.lib.config.McpProperties;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.LinkedHashMap;
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.mcp;
|
||||
package io.shinhanlife.dat.lib.mcp;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.mcp;
|
||||
package io.shinhanlife.dat.lib.mcp;
|
||||
|
||||
import io.modelcontextprotocol.server.McpServer;
|
||||
import io.modelcontextprotocol.server.McpSyncServer;
|
||||
@@ -1,7 +1,7 @@
|
||||
package io.shinhanlife.dap.lib.mcp;
|
||||
package io.shinhanlife.dat.lib.mcp;
|
||||
|
||||
import io.modelcontextprotocol.spec.McpSchema;
|
||||
import io.shinhanlife.dap.mcc.dto.ToolMetadata;
|
||||
import io.shinhanlife.dat.mcc.dto.ToolMetadata;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -1,10 +1,10 @@
|
||||
package io.shinhanlife.dap.lib.mcp;
|
||||
package io.shinhanlife.dat.lib.mcp;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import io.modelcontextprotocol.server.McpServerFeatures;
|
||||
import io.modelcontextprotocol.server.McpSyncServer;
|
||||
import io.modelcontextprotocol.spec.McpSchema;
|
||||
import io.shinhanlife.dap.mcc.dto.ToolMetadata;
|
||||
import io.shinhanlife.dat.mcc.dto.ToolMetadata;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -1,8 +1,8 @@
|
||||
package io.shinhanlife.dap.lib.mcp;
|
||||
package io.shinhanlife.dat.lib.mcp;
|
||||
|
||||
|
||||
/**
|
||||
* @package io.shinhanlife.dap.mcc.service
|
||||
* @package io.shinhanlife.dat.mcc.service
|
||||
* @className ToolRegistryHeartbeatSender
|
||||
* @description AX HUB 시스템 처리 클래스
|
||||
* @author 0986406
|
||||
@@ -17,12 +17,12 @@ package io.shinhanlife.dap.lib.mcp;
|
||||
*/
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import io.shinhanlife.dap.lib.annotation.GrowToolHint;
|
||||
import io.shinhanlife.dap.lib.config.McpProperties;
|
||||
import io.shinhanlife.dap.lib.metadata.ToolDefinition;
|
||||
import io.shinhanlife.dap.lib.metadata.ToolDefinitionRepository;
|
||||
import io.shinhanlife.dap.lib.util.ToolSchemaResolver;
|
||||
import io.shinhanlife.dap.mcc.dto.ToolMetadata;
|
||||
import io.shinhanlife.dat.lib.annotation.GrowToolHint;
|
||||
import io.shinhanlife.dat.lib.config.McpProperties;
|
||||
import io.shinhanlife.dat.lib.metadata.ToolDefinition;
|
||||
import io.shinhanlife.dat.lib.metadata.ToolDefinitionRepository;
|
||||
import io.shinhanlife.dat.lib.util.ToolSchemaResolver;
|
||||
import io.shinhanlife.dat.mcc.dto.ToolMetadata;
|
||||
import jakarta.annotation.PostConstruct;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.mcp.config;
|
||||
package io.shinhanlife.dat.lib.mcp.config;
|
||||
|
||||
import org.springframework.cache.CacheManager;
|
||||
import org.springframework.cache.annotation.EnableCaching;
|
||||
@@ -7,7 +7,7 @@ import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
/**
|
||||
* @package io.shinhanlife.dap.lib.mcp.config
|
||||
* @package io.shinhanlife.dat.lib.mcp.config
|
||||
* @className CacheConfig
|
||||
* @description AX HUB 시스템 처리 클래스
|
||||
* @author 0986406
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.mcp.config;
|
||||
package io.shinhanlife.dat.lib.mcp.config;
|
||||
|
||||
import com.fasterxml.jackson.databind.DeserializationFeature;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
@@ -8,7 +8,7 @@ import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.Primary;
|
||||
|
||||
/**
|
||||
* @package io.shinhanlife.dap.lib.mcp.config
|
||||
* @package io.shinhanlife.dat.lib.mcp.config
|
||||
* @className JacksonConfig
|
||||
* @description AX HUB 시스템 처리 클래스
|
||||
* @author 0986406
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.mcp.config;
|
||||
package io.shinhanlife.dat.lib.mcp.config;
|
||||
|
||||
import org.apache.kafka.clients.producer.ProducerConfig;
|
||||
import org.apache.kafka.common.serialization.StringSerializer;
|
||||
@@ -13,7 +13,7 @@ import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @package io.shinhanlife.dap.lib.mcp.config
|
||||
* @package io.shinhanlife.dat.lib.mcp.config
|
||||
* @className KafkaLocalConfig
|
||||
* @description AX HUB 시스템 처리 클래스
|
||||
* @author 0986406
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.mcp.config;
|
||||
package io.shinhanlife.dat.lib.mcp.config;
|
||||
|
||||
import io.swagger.v3.oas.models.Components;
|
||||
import io.swagger.v3.oas.models.OpenAPI;
|
||||
@@ -9,7 +9,7 @@ import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
/**
|
||||
* @package io.shinhanlife.dap.lib.mcp.config
|
||||
* @package io.shinhanlife.dat.lib.mcp.config
|
||||
* @className SwaggerConfig
|
||||
* @description AX HUB 시스템 처리 클래스
|
||||
* @author 0986406
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.mcp.config;
|
||||
package io.shinhanlife.dat.lib.mcp.config;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
@@ -6,10 +6,10 @@ import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
|
||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||
import org.springframework.web.servlet.config.annotation.CorsRegistry;
|
||||
|
||||
import io.shinhanlife.dap.lib.mcp.security.ApiKeyInterceptor;
|
||||
import io.shinhanlife.dat.lib.mcp.security.ApiKeyInterceptor;
|
||||
|
||||
/**
|
||||
* @package io.shinhanlife.dap.lib.mcp.config
|
||||
* @package io.shinhanlife.dat.lib.mcp.config
|
||||
* @className WebConfig
|
||||
* @description AX HUB 시스템 처리 클래스
|
||||
* @author 0986406
|
||||
@@ -1,8 +1,8 @@
|
||||
package io.shinhanlife.dap.lib.mcp.exception;
|
||||
package io.shinhanlife.dat.lib.mcp.exception;
|
||||
|
||||
|
||||
/**
|
||||
* @package io.shinhanlife.dap.lib.mcp.exception
|
||||
* @package io.shinhanlife.dat.lib.mcp.exception
|
||||
* @className GlobalExceptionHandler
|
||||
* @description AX HUB 시스템 처리 클래스
|
||||
* @author 0986406
|
||||
@@ -15,8 +15,8 @@ package io.shinhanlife.dap.lib.mcp.exception;
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
import io.shinhanlife.dap.lib.adapter.dto.ErrorDetail;
|
||||
import io.shinhanlife.dap.lib.adapter.dto.JsonRpcResponse;
|
||||
import io.shinhanlife.dat.lib.adapter.dto.ErrorDetail;
|
||||
import io.shinhanlife.dat.lib.adapter.dto.JsonRpcResponse;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.ExceptionHandler;
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.mcp.filter;
|
||||
package io.shinhanlife.dat.lib.mcp.filter;
|
||||
|
||||
import jakarta.servlet.FilterChain;
|
||||
import jakarta.servlet.ServletException;
|
||||
@@ -12,7 +12,7 @@ import java.io.IOException;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @package io.shinhanlife.dap.lib.mcp.filter
|
||||
* @package io.shinhanlife.dat.lib.mcp.filter
|
||||
* @className MdcLoggingFilter
|
||||
* @description AX HUB 시스템 처리 클래스
|
||||
* @author 0986406
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.mcp.security;
|
||||
package io.shinhanlife.dat.lib.mcp.security;
|
||||
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
@@ -11,7 +11,7 @@ import org.springframework.web.servlet.HandlerInterceptor;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @package io.shinhanlife.dap.lib.mcp.security
|
||||
* @package io.shinhanlife.dat.lib.mcp.security
|
||||
* @className ApiKeyInterceptor
|
||||
* @description AX HUB 시스템 처리 클래스
|
||||
* @author 0986406
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.mcp.security;
|
||||
package io.shinhanlife.dat.lib.mcp.security;
|
||||
|
||||
import lombok.Data;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
@@ -14,7 +14,7 @@ import java.util.Map;
|
||||
* Map 자료구조로 자동 바인딩(주입) 받기 위한 설정 클래스입니다.
|
||||
*/
|
||||
/**
|
||||
* @package io.shinhanlife.dap.lib.mcp.security
|
||||
* @package io.shinhanlife.dat.lib.mcp.security
|
||||
* @className SecurityProperties
|
||||
* @description AX HUB 시스템 처리 클래스
|
||||
* @author 0986406
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.metadata;
|
||||
package io.shinhanlife.dat.lib.metadata;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import java.util.List;
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.metadata;
|
||||
package io.shinhanlife.dat.lib.metadata;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.metadata;
|
||||
package io.shinhanlife.dat.lib.metadata;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.metadata;
|
||||
package io.shinhanlife.dat.lib.metadata;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.session.dto;
|
||||
package io.shinhanlife.dat.lib.session.dto;
|
||||
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@@ -11,7 +11,7 @@ import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
/**
|
||||
* @package io.shinhanlife.dap.lib.session.dto
|
||||
* @package io.shinhanlife.dat.lib.session.dto
|
||||
* @className SessionDto
|
||||
* @description AX HUB 시스템 처리 클래스
|
||||
* @author 0986406
|
||||
@@ -1,7 +1,7 @@
|
||||
package io.shinhanlife.dap.lib.session.mci;
|
||||
package io.shinhanlife.dat.lib.session.mci;
|
||||
|
||||
import io.shinhanlife.dap.lib.integration.mci.component.AxhubMciComponent;
|
||||
import io.shinhanlife.dap.lib.session.dto.SessionDto;
|
||||
import io.shinhanlife.dat.lib.integration.mci.component.AxhubMciComponent;
|
||||
import io.shinhanlife.dat.lib.session.dto.SessionDto;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.session.mci;
|
||||
package io.shinhanlife.dat.lib.session.mci;
|
||||
|
||||
import io.shinhanlife.glow.communication.annotation.GlowTrgmField;
|
||||
import lombok.*;
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.session.mci;
|
||||
package io.shinhanlife.dat.lib.session.mci;
|
||||
|
||||
import io.shinhanlife.glow.communication.annotation.GlowTrgmField;
|
||||
import lombok.*;
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.util;
|
||||
package io.shinhanlife.dat.lib.util;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonPropertyDescription;
|
||||
@@ -17,7 +17,7 @@ import jakarta.validation.constraints.Pattern;
|
||||
|
||||
|
||||
/**
|
||||
* @package io.shinhanlife.dap.lib.util
|
||||
* @package io.shinhanlife.dat.lib.util
|
||||
* @className JsonSchemaGenerator
|
||||
* @description AX HUB 시스템 처리 클래스
|
||||
* @author 0986406
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.util;
|
||||
package io.shinhanlife.dat.lib.util;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
@@ -19,10 +19,10 @@ public class PodScaffolder {
|
||||
System.out.println(" MCP Tool Pod Scaffolder (Java CLI) ");
|
||||
System.out.println("=========================================\n");
|
||||
|
||||
String rawModuleName = getOrAsk(args, 0, scanner, "1. 생성할 모듈(Pod) 이름 (예: payment 또는 dap-was-payment): ");
|
||||
String moduleName = rawModuleName.startsWith("dap-was-") ? rawModuleName : "dap-was-" + rawModuleName;
|
||||
String rawModuleName = getOrAsk(args, 0, scanner, "1. 생성할 모듈(Pod) 이름 (예: payment 또는 dat-was-payment): ");
|
||||
String moduleName = rawModuleName.startsWith("dat-was-") ? rawModuleName : "dat-was-" + rawModuleName;
|
||||
String portStr = getOrAsk(args, 1, scanner, "2. 사용할 포트 번호 (예: 8085): ");
|
||||
String shortName = moduleName.replace("dap-was-", "").replace("-", "");
|
||||
String shortName = moduleName.replace("dat-was-", "").replace("-", "");
|
||||
|
||||
String defaultAuthor = System.getProperty("user.name");
|
||||
String defaultDate = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy.MM.dd"));
|
||||
@@ -71,7 +71,7 @@ public class PodScaffolder {
|
||||
|
||||
dependencies {
|
||||
// Shared MCP, Glow integration, validation, logging, Lombok and MapStruct configuration.
|
||||
implementation project(':dap-was-lib')
|
||||
implementation project(':dat-was-lib')
|
||||
}
|
||||
""";
|
||||
writeUtf8(modulePath.resolve("build.gradle"), buildGradle);
|
||||
@@ -89,11 +89,11 @@ public class PodScaffolder {
|
||||
writeUtf8(modulePath.resolve("Dockerfile"), dockerfile);
|
||||
|
||||
log.append("[4/6] Application 클래스 및 설정 파일 생성 중...\n");
|
||||
Path srcPath = modulePath.resolve("src/main/java/io/shinhanlife/dap/mcc/" + shortName);
|
||||
Path srcPath = modulePath.resolve("src/main/java/io/shinhanlife/dat/mcc/" + shortName);
|
||||
Files.createDirectories(srcPath);
|
||||
|
||||
String appClass = """
|
||||
package io.shinhanlife.dap.mcc.%s;
|
||||
package io.shinhanlife.dat.mcc.%s;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
@@ -101,8 +101,8 @@ public class PodScaffolder {
|
||||
import org.springframework.cache.annotation.EnableCaching;
|
||||
|
||||
/**
|
||||
* @package io.shinhanlife.dap.mcc.%s
|
||||
* @className DapWas%sApplication
|
||||
* @package io.shinhanlife.dat.mcc.%s
|
||||
* @className DatWas%sApplication
|
||||
* @description AX HUB 시스템 처리 클래스
|
||||
* @author %s
|
||||
* @create %s
|
||||
@@ -114,16 +114,16 @@ public class PodScaffolder {
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
@SpringBootApplication(scanBasePackages = {"io.shinhanlife.dap.mcc", "io.shinhanlife.dap.lib"})
|
||||
@ConfigurationPropertiesScan(basePackages = {"io.shinhanlife.dap.mcc", "io.shinhanlife.dap.lib"})
|
||||
@SpringBootApplication(scanBasePackages = {"io.shinhanlife.dat.mcc", "io.shinhanlife.dat.lib"})
|
||||
@ConfigurationPropertiesScan(basePackages = {"io.shinhanlife.dat.mcc", "io.shinhanlife.dat.lib"})
|
||||
@EnableCaching
|
||||
public class DapWas%sApplication {
|
||||
public class DatWas%sApplication {
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(DapWas%sApplication.class, args);
|
||||
SpringApplication.run(DatWas%sApplication.class, args);
|
||||
}
|
||||
}
|
||||
""".formatted(shortName, shortName, capitalize(shortName), author, createDate, createDate, author, capitalize(shortName), capitalize(shortName));
|
||||
writeUtf8(srcPath.resolve("DapWas" + capitalize(shortName) + "Application.java"), appClass);
|
||||
writeUtf8(srcPath.resolve("DatWas" + capitalize(shortName) + "Application.java"), appClass);
|
||||
|
||||
Path resPath = modulePath.resolve("src/main/resources");
|
||||
Files.createDirectories(resPath);
|
||||
@@ -1,13 +1,13 @@
|
||||
package io.shinhanlife.dap.lib.util;
|
||||
package io.shinhanlife.dat.lib.util;
|
||||
|
||||
import io.shinhanlife.dap.lib.session.dto.SessionDto;
|
||||
import io.shinhanlife.dat.lib.session.dto.SessionDto;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpSession;
|
||||
import org.springframework.web.context.request.RequestContextHolder;
|
||||
import org.springframework.web.context.request.ServletRequestAttributes;
|
||||
|
||||
/**
|
||||
* @package io.shinhanlife.dap.lib.util
|
||||
* @package io.shinhanlife.dat.lib.util
|
||||
* @className SessionUtil
|
||||
* @description AX HUB 시스템 처리 클래스
|
||||
* @author 0986406
|
||||
@@ -1,8 +1,8 @@
|
||||
package io.shinhanlife.dap.lib.util;
|
||||
package io.shinhanlife.dat.lib.util;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
|
||||
import io.shinhanlife.dap.lib.metadata.ToolDefinition;
|
||||
import io.shinhanlife.dat.lib.metadata.ToolDefinition;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.util;
|
||||
package io.shinhanlife.dat.lib.util;
|
||||
|
||||
|
||||
import java.io.IOException;
|
||||
@@ -24,11 +24,11 @@ import java.util.stream.Collectors;
|
||||
* - 콘솔 질문에 차례대로 값을 입력하면 파일이 생성됩니다.
|
||||
*
|
||||
* 방법 2. 명령줄에서 실행
|
||||
* - 컴파일: javac -encoding UTF-8 dap-was-lib/src/main/java/io/shinhanlife/dap/lib/util/ToolScaffolder.java
|
||||
* - 실행: java -cp dap-was-lib/src/main/java io.shinhanlife.dap.lib.util.ToolScaffolder [이름] [ID] "[설명]" "[그룹]" "[통신방식]" "[모듈명]"
|
||||
* - 컴파일: javac -encoding UTF-8 dat-was-lib/src/main/java/io/shinhanlife/dat/lib/util/ToolScaffolder.java
|
||||
* - 실행: java -cp dat-was-lib/src/main/java io.shinhanlife.dat.lib.util.ToolScaffolder [이름] [ID] "[설명]" "[그룹]" "[통신방식]" "[모듈명]"
|
||||
*/
|
||||
/**
|
||||
* @package io.shinhanlife.dap.lib.util
|
||||
* @package io.shinhanlife.dat.lib.util
|
||||
* @className ToolScaffolder
|
||||
* @description AX HUB 시스템 처리 클래스
|
||||
* @author 0986406
|
||||
@@ -43,8 +43,8 @@ import java.util.stream.Collectors;
|
||||
*/
|
||||
public class ToolScaffolder {
|
||||
|
||||
private static final String BASE_PACKAGE = "io.shinhanlife.dap.mcc";
|
||||
private static final String BASE_PACKAGE_PATH = "src/main/java/io/shinhanlife/dap/mcc";
|
||||
private static final String BASE_PACKAGE = "io.shinhanlife.dat.mcc";
|
||||
private static final String BASE_PACKAGE_PATH = "src/main/java/io/shinhanlife/dat/mcc";
|
||||
|
||||
public record FieldDefinition(String name, String type, String description, List<String> examples, String pattern, boolean required,
|
||||
List<String> enumValues, String itemType, List<FieldDefinition> itemFields) {
|
||||
@@ -191,7 +191,7 @@ public class ToolScaffolder {
|
||||
String mciClientContent = "package " + ioPackage + ";\n\n"
|
||||
+ "import org.springframework.stereotype.Component;\n"
|
||||
+ "import lombok.RequiredArgsConstructor;\n"
|
||||
+ "import io.shinhanlife.dap.lib.integration.mci.component.AxhubMciComponent;\n"
|
||||
+ "import io.shinhanlife.dat.lib.integration.mci.component.AxhubMciComponent;\n"
|
||||
+ "import io.shinhanlife.glow.communication.dto.Transfer;\n\n"
|
||||
+ "@Component\n@RequiredArgsConstructor\npublic class Mci" + clientPrefixCap + "Client {\n"
|
||||
+ " private final AxhubMciComponent mci;\n"
|
||||
@@ -270,7 +270,7 @@ public class ToolScaffolder {
|
||||
}
|
||||
return "package " + bizPackage + ".usecase;\n\n"
|
||||
+ "import org.springaicommunity.mcp.annotation.McpTool;\n"
|
||||
+ "import io.shinhanlife.dap.lib.annotation.GrowToolHint;\n"
|
||||
+ "import io.shinhanlife.dat.lib.annotation.GrowToolHint;\n"
|
||||
+ imports + "\npublic interface " + useCaseBaseName + "UseCase {\n\n" + methods + "}\n";
|
||||
}
|
||||
|
||||
@@ -509,7 +509,7 @@ public class ToolScaffolder {
|
||||
|
||||
private static String groupedMciClientContent(String ioPackage, String baseName, String interfaceId) {
|
||||
return "package " + ioPackage + ";\n\n"
|
||||
+ "import io.shinhanlife.dap.lib.integration.mci.component.AxhubMciComponent;\n"
|
||||
+ "import io.shinhanlife.dat.lib.integration.mci.component.AxhubMciComponent;\n"
|
||||
+ "import io.shinhanlife.glow.communication.dto.Transfer;\n"
|
||||
+ "import lombok.RequiredArgsConstructor;\nimport org.springframework.stereotype.Component;\n"
|
||||
+ "import " + ioPackage + ".io." + baseName + "_I;\n"
|
||||
@@ -546,9 +546,9 @@ public class ToolScaffolder {
|
||||
if (routingType.trim().isEmpty()) {
|
||||
routingType = "HTTP";
|
||||
}
|
||||
String moduleName = getOrAsk(args, 6, scanner, "7. Target module (default dap-was-cus): ");
|
||||
String moduleName = getOrAsk(args, 6, scanner, "7. Target module (default dat-was-cus): ");
|
||||
if (moduleName.trim().isEmpty()) {
|
||||
moduleName = "dap-was-cus";
|
||||
moduleName = "dat-was-cus";
|
||||
}
|
||||
|
||||
String defaultAuthor = System.getProperty("user.name");
|
||||
@@ -565,7 +565,7 @@ public class ToolScaffolder {
|
||||
String schemaResourceDirectory = "classpath:tool-schemas/" + group.toLowerCase() + "/";
|
||||
String inputSchemaResource = useSchemaResource ? schemaResourceDirectory + toKebabCase(baseName) + "-resource-input-schema.json" : null;
|
||||
String outputSchemaResource = useSchemaResource ? schemaResourceDirectory + toKebabCase(baseName) + "-resource-output-schema.json" : null;
|
||||
String defaultWorkspace = "c:\\eGovFrameDev-4.3.1-64bit\\workspace-egov\\dap-was-dapmt";
|
||||
String defaultWorkspace = "c:\\eGovFrameDev-4.3.1-64bit\\workspace-egov\\dat-was-datmt";
|
||||
String workspace = getOrAsk(args, 10, scanner, "11. 대상 프로젝트 워크스페이스 경로 (default: " + defaultWorkspace + "): ");
|
||||
if (workspace.trim().isEmpty()) {
|
||||
workspace = defaultWorkspace;
|
||||
@@ -816,7 +816,7 @@ public class ToolScaffolder {
|
||||
package %s.usecase;
|
||||
|
||||
import org.springaicommunity.mcp.annotation.McpTool;
|
||||
import io.shinhanlife.dap.lib.annotation.GrowToolHint;
|
||||
import io.shinhanlife.dat.lib.annotation.GrowToolHint;
|
||||
import %s.dto.%sRequest;
|
||||
import %s.dto.%sResponse;
|
||||
|
||||
@@ -862,7 +862,7 @@ public class ToolScaffolder {
|
||||
import %s.dto.%sRequest;
|
||||
import %s.dto.%sResponse;
|
||||
import %s.usecase.%sUseCase;
|
||||
import io.shinhanlife.dap.lib.integration.mci.component.AxhubMciComponent;
|
||||
import io.shinhanlife.dat.lib.integration.mci.component.AxhubMciComponent;
|
||||
import io.shinhanlife.glow.communication.dto.Transfer;
|
||||
import org.springframework.stereotype.Service;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@@ -1162,7 +1162,7 @@ public class ToolScaffolder {
|
||||
|
||||
import org.springframework.stereotype.Component;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import io.shinhanlife.dap.lib.integration.mci.component.AxhubMciComponent;
|
||||
import io.shinhanlife.dat.lib.integration.mci.component.AxhubMciComponent;
|
||||
import io.shinhanlife.glow.communication.dto.Transfer;
|
||||
|
||||
/**
|
||||
@@ -1412,7 +1412,7 @@ public class ToolScaffolder {
|
||||
log.append("[Mock Response] ").append(mockResponsePath).append("\n");
|
||||
}
|
||||
|
||||
Path generatedTestDir = rootDir.resolve(Paths.get(moduleName, "src/test/java/io/shinhanlife/dap/mcc/biz", group.toLowerCase(), "usecase"));
|
||||
Path generatedTestDir = rootDir.resolve(Paths.get(moduleName, "src/test/java/io/shinhanlife/dat/mcc/biz", group.toLowerCase(), "usecase"));
|
||||
Files.createDirectories(generatedTestDir);
|
||||
Path generatedTestPath = generatedTestDir.resolve(baseName + "UseCaseTest.java");
|
||||
writeUtf8(generatedTestPath, useCaseTestContent(bizPackage, baseName));
|
||||
@@ -1871,7 +1871,7 @@ public class ToolScaffolder {
|
||||
return """
|
||||
package %s;
|
||||
|
||||
import io.shinhanlife.dap.lib.integration.http.component.AxhubHttpComponent;
|
||||
import io.shinhanlife.dat.lib.integration.http.component.AxhubHttpComponent;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package io.shinhanlife.dap.lib.util;
|
||||
package io.shinhanlife.dat.lib.util;
|
||||
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import io.shinhanlife.dap.lib.annotation.McpOutputSchema;
|
||||
import io.shinhanlife.dap.lib.annotation.GrowToolHint;
|
||||
import io.shinhanlife.dat.lib.annotation.McpOutputSchema;
|
||||
import io.shinhanlife.dat.lib.annotation.GrowToolHint;
|
||||
import java.io.InputStream;
|
||||
import java.util.Map;
|
||||
import org.springframework.core.io.ClassPathResource;
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.shinhanlife.dap.lib.util;
|
||||
package io.shinhanlife.dat.lib.util;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
@@ -78,7 +78,7 @@ public final class ToolSourceUpdater {
|
||||
try (var paths = Files.walk(rootDirectory)) {
|
||||
return paths.filter(Files::isRegularFile)
|
||||
.filter(path -> path.getFileName().toString().endsWith("UseCase.java"))
|
||||
.filter(path -> path.toString().contains("dap-was-") || path.toString().contains("axhub-tool-"))
|
||||
.filter(path -> path.toString().contains("dat-was-") || path.toString().contains("axhub-tool-"))
|
||||
.sorted(Comparator.naturalOrder())
|
||||
.filter(path -> containsMcpTool(path, toolName))
|
||||
.findFirst()
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user