Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
plugins {
id 'java'
id 'org.springframework.boot' version '4.0.1'
id 'org.springframework.boot' version '4.0.2'
id 'io.spring.dependency-management' version '1.1.7'
id "com.github.ben-manes.versions" version "0.53.0"

Expand Down Expand Up @@ -39,7 +39,7 @@ repositories {

dependencies {
// DigitalSanctuary Spring User Framework
implementation 'com.digitalsanctuary:ds-spring-user-framework:4.0.1'
implementation 'com.digitalsanctuary:ds-spring-user-framework:4.0.2'

// Spring Boot starters
implementation 'org.springframework.boot:spring-boot-starter-actuator'
Expand All @@ -63,6 +63,9 @@ dependencies {
runtimeOnly 'org.mariadb.jdbc:mariadb-java-client:3.5.7'
runtimeOnly 'org.postgresql:postgresql'

// Docker Compose support for local development
developmentOnly 'org.springframework.boot:spring-boot-docker-compose'

// Utility libraries
implementation 'org.passay:passay:1.6.6'
implementation 'com.google.guava:guava:33.5.0-jre'
Expand All @@ -83,7 +86,7 @@ dependencies {
testImplementation 'org.springframework.boot:spring-boot-starter-security-test'
testImplementation 'org.springframework.security:spring-security-test'
testImplementation 'com.h2database:h2:2.4.240'
testImplementation 'com.codeborne:selenide:7.13.0'
testImplementation 'com.codeborne:selenide:7.14.0'
testImplementation 'io.github.bonigarcia:webdrivermanager:6.3.3'

// OAuth2 Testing dependencies
Expand Down
15 changes: 15 additions & 0 deletions compose.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
services:
mariadb:
image: mariadb:11.6

Copilot AI Jan 25, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The MariaDB image version in this new compose.yaml file is '11.6', while the existing docker-compose.yml file uses '11.6.2' (a more specific patch version). For consistency and to ensure reproducible builds, consider using the same specific version tag '11.6.2' instead of the major.minor version '11.6'. This prevents unexpected updates when the image is pulled.

Copilot uses AI. Check for mistakes.
environment:
MARIADB_DATABASE: springuser
MARIADB_USER: springuser
MARIADB_PASSWORD: springuser
MARIADB_ROOT_PASSWORD: rootpassword
Comment on lines +9 to +13

Copilot AI Jan 25, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The compose.yaml uses MARIADB_* environment variables while the existing docker-compose.yml uses MYSQL_* environment variables (lines 9-13). Both MariaDB images support both naming conventions, but for consistency with the existing docker-compose.yml in this repository, consider using the MYSQL_* variable names instead. This makes it easier to maintain both files and reduces confusion.

Copilot uses AI. Check for mistakes.
ports:
- "3306:3306"
volumes:
- mariadb-data:/var/lib/mysql
Comment on lines +7 to +17

Copilot AI Jan 25, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The new compose.yaml file lacks health checks that are present in the existing docker-compose.yml (lines 16-22). Health checks are important for ensuring the database is fully initialized before the application attempts to connect. Consider adding a healthcheck configuration similar to the existing docker-compose.yml to improve reliability during startup.

Copilot uses AI. Check for mistakes.

volumes:
mariadb-data:
20 changes: 20 additions & 0 deletions src/main/resources/data-local.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
-- Test data for local development
-- Uses INSERT IGNORE to skip if data already exists

INSERT IGNORE INTO events (id, name, description, location, date, time)
VALUES
(1, 'Tech Conference 2025', 'A conference about the latest in tech.', 'San Francisco, CA', '2025-06-15', '10:00:00'),
(2, 'Spring Boot Workshop', 'Learn Spring Boot from experts.', 'New York, NY', '2025-07-10', '14:00:00'),
Comment on lines +7 to +8

Copilot AI Jan 25, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Event entity has a @FutureOrPresent validation constraint on the date field (see Event.java line 34), which requires dates to be today or in the future. The events with 2025 dates (rows 1-2) will fail this validation when the data is loaded, potentially causing the application startup to fail or these records to be rejected. Update these dates to be in 2026 or later to comply with the validation constraint.

Suggested change
(1, 'Tech Conference 2025', 'A conference about the latest in tech.', 'San Francisco, CA', '2025-06-15', '10:00:00'),
(2, 'Spring Boot Workshop', 'Learn Spring Boot from experts.', 'New York, NY', '2025-07-10', '14:00:00'),
(1, 'Tech Conference 2025', 'A conference about the latest in tech.', 'San Francisco, CA', '2026-06-15', '10:00:00'),
(2, 'Spring Boot Workshop', 'Learn Spring Boot from experts.', 'New York, NY', '2026-07-10', '14:00:00'),

Copilot uses AI. Check for mistakes.
(3, 'AI Symposium', 'Exploring the advancements in AI.', 'Los Angeles, CA', '2026-08-22', '09:30:00'),
(4, 'DevOps Summit', 'Best practices for CI/CD pipelines, infrastructure as code, and cloud-native deployments.', 'Seattle, WA', '2026-03-18', '09:00:00'),
(5, 'Kubernetes Deep Dive', 'Hands-on workshop covering advanced Kubernetes patterns and operators.', 'Austin, TX', '2026-04-05', '13:00:00'),
(6, 'Java 25 Launch Party', 'Celebrating the release of Java 25 with demos and networking.', 'Denver, CO', '2026-05-12', '18:00:00'),
(7, 'Security in the Cloud', 'Zero-trust architecture, secrets management, and compliance automation.', 'Boston, MA', '2026-06-20', '10:30:00'),
(8, 'Microservices Architecture Forum', 'Patterns for building resilient distributed systems at scale.', 'Chicago, IL', '2026-07-08', '11:00:00'),
(9, 'Open Source Contributor Day', 'Learn how to contribute to popular open source projects with guided mentorship.', 'Portland, OR', '2026-09-14', '09:00:00'),
(10, 'Database Performance Tuning', 'Query optimization, indexing strategies, and monitoring for SQL and NoSQL databases.', 'Atlanta, GA', '2026-10-03', '14:00:00'),
(11, 'Frontend Frameworks Showdown', 'Comparing React, Vue, Angular, and Svelte with live coding demos.', 'Miami, FL', '2026-11-15', '10:00:00'),
(12, 'API Design Masterclass', 'RESTful best practices, GraphQL patterns, and API versioning strategies.', 'Philadelphia, PA', '2027-01-22', '13:30:00'),
(13, 'Machine Learning in Production', 'MLOps practices for deploying and monitoring ML models at scale.', 'San Diego, CA', '2027-02-28', '09:00:00'),
(14, 'Startup Tech Meetup', 'Networking event for tech founders and engineers building the next big thing.', 'Nashville, TN', '2027-03-10', '17:30:00'),
(15, 'Women in Tech Summit', 'Inspiring talks and workshops celebrating women in the technology industry.', 'Washington, DC', '2027-04-25', '08:30:00');
Loading