From 5bfa8a3cca079a27514d5e3aaf14617fe6a59c83 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Thu, 21 May 2026 03:34:41 +0000 Subject: [PATCH] NM-23: Configure application.yml with datasource and custom properties - Update application.yml: add spring.application.name, datasource credentials (via env vars), Hibernate dialect, rename pics-directory to pics-path per spec (classpath:static/Pics) - Update application-dev.yml: add dev datasource config, enable DEBUG logging for datasource and web layers - Update application-prod.yml: externalize datasource URL/credentials via environment variables for production deployment - Update AppConfig.java: rename picsDirectory to picsPath to match the pics-path YAML property - Add startup logging in CatalogApplication: log active profiles, datasource URL, and custom app properties on ApplicationReadyEvent - Update test application.yml: rename pics-directory to pics-path --- .../com/eshop/catalog/CatalogApplication.java | 24 +++++++++++++++++++ .../com/eshop/catalog/config/AppConfig.java | 10 ++++---- .../src/main/resources/application-dev.yml | 7 ++++++ .../src/main/resources/application-prod.yml | 10 +++++++- .../src/main/resources/application.yml | 17 ++++++++++++- .../src/test/resources/application.yml | 2 +- 6 files changed, 62 insertions(+), 8 deletions(-) diff --git a/eShopModernizedJava/src/main/java/com/eshop/catalog/CatalogApplication.java b/eShopModernizedJava/src/main/java/com/eshop/catalog/CatalogApplication.java index 00f10c33..83b7f564 100644 --- a/eShopModernizedJava/src/main/java/com/eshop/catalog/CatalogApplication.java +++ b/eShopModernizedJava/src/main/java/com/eshop/catalog/CatalogApplication.java @@ -1,12 +1,36 @@ package com.eshop.catalog; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.context.event.ApplicationReadyEvent; +import org.springframework.context.event.EventListener; +import org.springframework.core.env.Environment; @SpringBootApplication public class CatalogApplication { + private static final Logger log = LoggerFactory.getLogger(CatalogApplication.class); + + private final Environment environment; + + public CatalogApplication(Environment environment) { + this.environment = environment; + } + public static void main(String[] args) { SpringApplication.run(CatalogApplication.class, args); } + + @EventListener(ApplicationReadyEvent.class) + public void logApplicationStartup() { + String datasourceUrl = environment.getProperty("spring.datasource.url"); + String activeProfiles = String.join(", ", environment.getActiveProfiles()); + log.info("Application started with active profiles: {}", activeProfiles.isEmpty() ? "default" : activeProfiles); + log.info("Datasource URL: {}", datasourceUrl); + log.info("app.use-mock-data: {}", environment.getProperty("app.use-mock-data")); + log.info("app.use-customization-data: {}", environment.getProperty("app.use-customization-data")); + log.info("app.pics-path: {}", environment.getProperty("app.pics-path")); + } } diff --git a/eShopModernizedJava/src/main/java/com/eshop/catalog/config/AppConfig.java b/eShopModernizedJava/src/main/java/com/eshop/catalog/config/AppConfig.java index ca36caf5..c7a19a0b 100644 --- a/eShopModernizedJava/src/main/java/com/eshop/catalog/config/AppConfig.java +++ b/eShopModernizedJava/src/main/java/com/eshop/catalog/config/AppConfig.java @@ -9,7 +9,7 @@ public class AppConfig { private boolean useMockData; private boolean useCustomizationData; - private String picsDirectory; + private String picsPath; public boolean isUseMockData() { return useMockData; @@ -27,11 +27,11 @@ public void setUseCustomizationData(boolean useCustomizationData) { this.useCustomizationData = useCustomizationData; } - public String getPicsDirectory() { - return picsDirectory; + public String getPicsPath() { + return picsPath; } - public void setPicsDirectory(String picsDirectory) { - this.picsDirectory = picsDirectory; + public void setPicsPath(String picsPath) { + this.picsPath = picsPath; } } diff --git a/eShopModernizedJava/src/main/resources/application-dev.yml b/eShopModernizedJava/src/main/resources/application-dev.yml index f921114f..3afb6960 100644 --- a/eShopModernizedJava/src/main/resources/application-dev.yml +++ b/eShopModernizedJava/src/main/resources/application-dev.yml @@ -1,6 +1,12 @@ spring: + datasource: + url: jdbc:sqlserver://localhost;databaseName=Microsoft.eShopOnContainers.Services.CatalogDb;encrypt=true;trustServerCertificate=true + username: sa + password: ${SPRING_DATASOURCE_PASSWORD:} + jpa: show-sql: true + flyway: enabled: true @@ -8,3 +14,4 @@ logging: level: com.eshop.catalog: DEBUG org.springframework.web: DEBUG + org.springframework.jdbc.datasource: DEBUG diff --git a/eShopModernizedJava/src/main/resources/application-prod.yml b/eShopModernizedJava/src/main/resources/application-prod.yml index a8d2c76c..b797c98a 100644 --- a/eShopModernizedJava/src/main/resources/application-prod.yml +++ b/eShopModernizedJava/src/main/resources/application-prod.yml @@ -1,8 +1,16 @@ spring: + datasource: + url: ${SPRING_DATASOURCE_URL:jdbc:sqlserver://localhost;databaseName=Microsoft.eShopOnContainers.Services.CatalogDb;encrypt=true;trustServerCertificate=true} + username: ${SPRING_DATASOURCE_USERNAME:sa} + password: ${SPRING_DATASOURCE_PASSWORD:} + jpa: show-sql: false + flyway: + enabled: true + logging: level: - com.eshop.catalog: INFO + com.eshop.catalog: WARN org.springframework.web: WARN diff --git a/eShopModernizedJava/src/main/resources/application.yml b/eShopModernizedJava/src/main/resources/application.yml index 830de804..feec91f8 100644 --- a/eShopModernizedJava/src/main/resources/application.yml +++ b/eShopModernizedJava/src/main/resources/application.yml @@ -1,11 +1,21 @@ spring: + application: + name: eshop-catalog + datasource: url: jdbc:sqlserver://localhost;databaseName=Microsoft.eShopOnContainers.Services.CatalogDb;encrypt=true;trustServerCertificate=true + username: ${SPRING_DATASOURCE_USERNAME:sa} + password: ${SPRING_DATASOURCE_PASSWORD:} driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver + jpa: hibernate: ddl-auto: none show-sql: false + properties: + hibernate: + dialect: org.hibernate.dialect.SQLServerDialect + flyway: enabled: true locations: classpath:db/migration @@ -16,7 +26,7 @@ server: app: use-mock-data: false use-customization-data: false - pics-directory: classpath:static/pics/ + pics-path: classpath:static/Pics management: endpoints: @@ -26,3 +36,8 @@ management: endpoint: health: show-details: when-authorized + +logging: + level: + com.eshop.catalog: INFO + org.springframework: WARN diff --git a/eShopModernizedJava/src/test/resources/application.yml b/eShopModernizedJava/src/test/resources/application.yml index d9d3557c..aa8a2c98 100644 --- a/eShopModernizedJava/src/test/resources/application.yml +++ b/eShopModernizedJava/src/test/resources/application.yml @@ -14,4 +14,4 @@ spring: app: use-mock-data: true use-customization-data: false - pics-directory: classpath:static/pics/ + pics-path: classpath:static/Pics