Skip to content

feat: Modernize project for Java 21, MySQL 8, and modern IDEs#59

Open
aristorinjuang wants to merge 1 commit intoVaughnVernon:masterfrom
aristorinjuang:master
Open

feat: Modernize project for Java 21, MySQL 8, and modern IDEs#59
aristorinjuang wants to merge 1 commit intoVaughnVernon:masterfrom
aristorinjuang:master

Conversation

@aristorinjuang
Copy link
Copy Markdown

This updates the IDDD samples project (originally targeting Java 7) to work with modern development environments and infrastructure.

Infrastructure Configuration

  • Make MySQL and RabbitMQ credentials configurable via environment variables (MYSQL_HOST, MYSQL_PORT, MYSQL_USER, MYSQL_PASSWORD, RABBITMQ_HOST, RABBITMQ_USER, RABBITMQ_PASSWORD)
  • Update Spring XML configs to use property placeholders with defaults
  • Pass environment variables to test JVM via Gradle test task

Java 21 Compatibility

  • Upgrade Gradle wrapper from 2.3 to 8.5
  • Set source/target compatibility to Java 21
  • Add JVM args for LevelDB internal API access (--add-opens)
  • Fix scrollable ResultSet support for MySQL 8.x connector

Dependency Upgrades

  • RabbitMQ client: 3.0.4 → 5.18.0 (fix API changes in MessageConsumer, BrokerChannel)
  • MySQL connector: 5.1.6 → 8.0.33 (update driver class to com.mysql.cj.jdbc.Driver, add allowPublicKeyRetrieval/useSSL params)
  • Spring: 2.5.6 → 3.2.18.RELEASE (maintains Hibernate 3.x compatibility)

IDE Support

  • Update .gitignore for IDE-specific files (.settings/, bin/, .metadata/)
  • Tested on: Neovim with jdtls, IntelliJ IDEA, Eclipse, VS Code

Documentation

  • Update README.md with Java 21 requirement
  • Add Test section with environment variables and SQL setup instructions

Test Results

All 341 tests pass with proper infrastructure configuration:

  • iddd_agilepm: 106 tests
  • iddd_collaboration: 70 tests
  • iddd_common: 60 tests
  • iddd_identityaccess: 105 tests

This updates the IDDD samples project (originally targeting Java 7)
to work with modern development environments and infrastructure.

## Infrastructure Configuration

- Make MySQL and RabbitMQ credentials configurable via environment
  variables (MYSQL_HOST, MYSQL_PORT, MYSQL_USER, MYSQL_PASSWORD,
  RABBITMQ_HOST, RABBITMQ_USER, RABBITMQ_PASSWORD)
- Update Spring XML configs to use property placeholders with defaults
- Pass environment variables to test JVM via Gradle test task

## Java 21 Compatibility

- Upgrade Gradle wrapper from 2.3 to 8.5
- Set source/target compatibility to Java 21
- Add JVM args for LevelDB internal API access (--add-opens)
- Fix scrollable ResultSet support for MySQL 8.x connector

## Dependency Upgrades

- RabbitMQ client: 3.0.4 → 5.18.0 (fix API changes in MessageConsumer,
  BrokerChannel)
- MySQL connector: 5.1.6 → 8.0.33 (update driver class to
  com.mysql.cj.jdbc.Driver, add allowPublicKeyRetrieval/useSSL params)
- Spring: 2.5.6 → 3.2.18.RELEASE (maintains Hibernate 3.x compatibility)

## IDE Support

- Update .gitignore for IDE-specific files (.settings/, bin/, .metadata/)
- Tested on: Neovim with jdtls, IntelliJ IDEA, Eclipse, VS Code

## Documentation

- Update README.md with Java 21 requirement
- Add Test section with environment variables and SQL setup instructions

## Test Results

All 341 tests pass with proper infrastructure configuration:
- iddd_agilepm: 106 tests
- iddd_collaboration: 70 tests
- iddd_common: 60 tests
- iddd_identityaccess: 105 tests
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant