From 0f6e44e6d2be705ba9f59329f485912900cb12e5 Mon Sep 17 00:00:00 2001 From: qowlgur121 Date: Fri, 8 Aug 2025 20:17:03 +0900 Subject: [PATCH 1/3] feat: add comprehensive .gitignore files for each component - Add root-level .gitignore for Docker volumes and system files - Add core/.gitignore for Spring Boot Java backend - Add mcp-adapter/.gitignore for Node.js MCP adapter - Prevent tracking of build artifacts, logs, and environment files --- .gitignore | 38 ++++++++++++++++++++++++ core/.gitignore | 65 ++++++++++++++++++++++++++++++++++++++++++ mcp-adapter/.gitignore | 37 ++++++++++++++++++++++++ 3 files changed, 140 insertions(+) create mode 100644 .gitignore create mode 100644 core/.gitignore create mode 100644 mcp-adapter/.gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3a8370c --- /dev/null +++ b/.gitignore @@ -0,0 +1,38 @@ +# Docker volumes data +postgres_data/ +es_data/ +ollama_data/ +minio_data/ + +# Environment files +.env +.env.local +.env.*.local +*.env + +# Mac +.DS_Store + +# Windows +Thumbs.db +ehthumbs.db +Desktop.ini + +# Logs +*.log + +# Memory bank (sensitive project information) +memory-bank/ + +# TaskMaster files (project management) +.taskmaster/ + +# IDE +.vscode/ +.idea/ + +# Temporary files +*.tmp +*.bak +*.swp +*~ \ No newline at end of file diff --git a/core/.gitignore b/core/.gitignore new file mode 100644 index 0000000..8252081 --- /dev/null +++ b/core/.gitignore @@ -0,0 +1,65 @@ +# Compiled class files +*.class + +# Log files +*.log + +# Package Files +*.jar +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar + +# Gradle +.gradle +**/build/ +!src/**/build/ +gradle-app.setting +!gradle-wrapper.jar +!gradle-wrapper.properties + +# IntelliJ IDEA +.idea +*.iws +*.iml +*.ipr +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +# Eclipse +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +# Spring Boot +*.jar.original +HELP.md + +# Application specific +application-local.yml +application-*.yml +!application.yml +!application-docker.yml + +# Test coverage reports +/coverage +/.nyc_output + +# QueryDSL generated files +**/generated/ + +# Temporary files +*.tmp +*.bak +*.swp \ No newline at end of file diff --git a/mcp-adapter/.gitignore b/mcp-adapter/.gitignore new file mode 100644 index 0000000..a6c4445 --- /dev/null +++ b/mcp-adapter/.gitignore @@ -0,0 +1,37 @@ +# Dependencies +node_modules/ +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Lock files +package-lock.json +yarn.lock + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Coverage directory used by tools like istanbul +coverage/ +*.lcov + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# Environment variables +.env +.env.local +.env.*.local + +# Logs +logs +*.log + +# Optional REPL history +.node_repl_history \ No newline at end of file From 60d7a77d38326fb29a96053e6956f18c86808bdb Mon Sep 17 00:00:00 2001 From: qowlgur121 Date: Fri, 8 Aug 2025 21:03:52 +0900 Subject: [PATCH 2/3] feat: update dependencies to latest stable versions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Spring Boot: 3.3.4 → 3.3.11 - LangChain4j: 0.34.0 → 0.36.2 - SpringDoc OpenAPI: 2.5.0 → 2.7.0 - MinIO: 8.5.7 → 8.5.12 - TestContainers BOM: 1.19.3 → 1.20.4 - Make gradlew executable for consistent build environment Verified compatibility through successful Docker build process. --- core/build.gradle | 55 ++++++++++++++++++++++++++++++++++++++++++----- core/gradlew | 0 2 files changed, 50 insertions(+), 5 deletions(-) mode change 100644 => 100755 core/gradlew diff --git a/core/build.gradle b/core/build.gradle index 0eae4d0..1472575 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -1,7 +1,8 @@ plugins { id 'java' - id 'org.springframework.boot' version '3.2.0' - id 'io.spring.dependency-management' version '1.1.4' + id 'org.springframework.boot' version '3.3.11' + id 'io.spring.dependency-management' version '1.1.6' + id 'com.ewerk.gradle.plugins.querydsl' version '1.0.10' } group = 'com.opencontext' @@ -32,16 +33,36 @@ dependencies { // Database runtimeOnly 'org.postgresql:postgresql' + + // Database Migration + implementation 'org.flywaydb:flyway-core' + runtimeOnly 'org.flywaydb:flyway-database-postgresql' + + // LangChain4j - Core RAG Framework + implementation 'dev.langchain4j:langchain4j:0.36.2' + implementation 'dev.langchain4j:langchain4j-spring-boot-starter:0.36.2' + implementation 'dev.langchain4j:langchain4j-document-parser-apache-pdfbox:0.36.2' + implementation 'dev.langchain4j:langchain4j-embeddings:0.36.2' + implementation 'dev.langchain4j:langchain4j-ollama:0.36.2' + + // QueryDSL - Type-safe dynamic queries + implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta' + annotationProcessor 'com.querydsl:querydsl-apt:5.0.0:jakarta' + annotationProcessor 'jakarta.annotation:jakarta.annotation-api' + annotationProcessor 'jakarta.persistence:jakarta.persistence-api' // API Documentation - implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.2.0' + implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.7.0' // Object Storage (MinIO) - implementation 'io.minio:minio:8.5.7' + implementation 'io.minio:minio:8.5.12' // HTTP Client implementation 'org.springframework.boot:spring-boot-starter-webflux' + // Structured Logging + implementation 'net.logstash.logback:logstash-logback-encoder:7.4' + // Utilities compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' @@ -58,14 +79,38 @@ dependencies { testImplementation 'org.testcontainers:junit-jupiter' testImplementation 'org.testcontainers:postgresql' testImplementation 'org.testcontainers:elasticsearch' + testRuntimeOnly 'com.h2database:h2' } dependencyManagement { imports { - mavenBom "org.testcontainers:testcontainers-bom:1.19.3" + mavenBom "org.testcontainers:testcontainers-bom:1.20.4" } } tasks.named('test') { useJUnitPlatform() } + +// QueryDSL Configuration +def querydslDir = "$buildDir/generated/querydsl" + +querydsl { + jpa = true + querydslSourcesDir = querydslDir +} + +sourceSets { + main.java.srcDir querydslDir +} + +compileQuerydsl { + options.annotationProcessorPath = configurations.querydsl +} + +configurations { + compileOnly { + extendsFrom annotationProcessor + } + querydsl.extendsFrom compileClasspath +} diff --git a/core/gradlew b/core/gradlew old mode 100644 new mode 100755 From 24433da2c9602e5ae8bf0432cc7038a7ad614fea Mon Sep 17 00:00:00 2001 From: qowlgur121 Date: Fri, 8 Aug 2025 21:27:51 +0900 Subject: [PATCH 3/3] fix: resolve buildDir deprecated warning in QueryDSL configuration Replace deprecated $buildDir with layout.buildDirectory.dir() for Gradle 8+ compatibility --- core/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build.gradle b/core/build.gradle index 1472575..1de20c8 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -93,7 +93,7 @@ tasks.named('test') { } // QueryDSL Configuration -def querydslDir = "$buildDir/generated/querydsl" +def querydslDir = layout.buildDirectory.dir("generated/querydsl").get().asFile querydsl { jpa = true