- Increase initial heap size from 1G to 4G (-Xms)
- Increase maximum heap size from 3G to 12G (-Xmx)
- Increase metaspace size from 1G to 4G (-XX:MaxMetaspaceSize)
- Improve compilation performance and reduce out-of-memory errors during large-scale builds
- Disable parallel test execution in obp-api module to avoid shared H2 database state issues
- Disable parallel test execution in obp-commons module for consistency
- Set parallel configuration to false across both modules
- Comment out threadCount configuration as it is no longer needed
- Tests share an in-memory H2 database which causes conflicts when run concurrently
- This resolves intermittent test failures caused by database state contamination between parallel test runs
- Reduce initial heap size from 4G to 1G for faster startup
- Lower maximum heap size from 12G to 3G for resource efficiency
- Add stack size configuration (-Xss4m) for thread optimization
- Reduce metaspace size from 4G to 1G to minimize memory overhead
- Improve build performance on resource-constrained environments while maintaining compilation stability
- Increase JVM heap memory from 512m to 2-4G for faster test execution
- Add G1GC garbage collector and tiered compilation for improved performance
- Enable parallel test execution with threadCount=4 to avoid shared state issues
- Add incremental recompilation mode and Zinc server for faster builds
- Increase Scala compiler JVM memory from 64m/1024m to 512m/2G
- Add language feature flags to suppress compiler warnings
- Add test-results directory to .gitignore for cleaner repository
- Apply optimizations consistently across obp-api, obp-commons, and root pom.xml
- These changes reduce build and test execution time while maintaining stability
BREAKING CHANGE: Migration from Akka to Apache Pekko 1.1.2
## Key Changes:
### Dependency Migration:
- Replaced Akka 2.6.20 with Apache Pekko 1.1.2
- Updated all imports from com.typesafe.akka to org.apache.pekko
- Updated Jetty from 9.4.50 to 9.4.58 for better Java 17 compatibility
### Actor System Architecture:
- Migrated all actor systems to Pekko
- Fixed critical scheduler initialization conflicts
- Consolidated schedulers to use shared ObpActorSystem.localActorSystem
- Prevented multiple actor system creation during boot
### Scheduler Fixes:
- DataBaseCleanerScheduler: Fixed actor system reference
- DatabaseDriverScheduler: Fixed actor system reference
- MetricsArchiveScheduler: Fixed actor system reference
- SchedulerUtil: Fixed actor system reference
- TransactionRequestStatusScheduler: Fixed actor system reference
### Technical Improvements:
- Resolved 'Address already in use' port binding errors
- Eliminated ExceptionInInitializerError during boot
- Fixed race conditions in actor system initialization
- Maintained all scheduler functionality (MUST-have features preserved)
### Files Modified:
- Core: pom.xml, obp-api/pom.xml
- Actor Systems: ObpActorConfig.scala, ObpActorSystem.scala, ObpLookupSystem.scala
- Connectors: AkkaConnector_vDec2018.scala, CardanoConnector, EthereumConnector
- Schedulers: All scheduler classes updated to use shared actor system
- Utilities: AkkaHttpClient.scala, DynamicUtil.scala, NewStyle.scala
## Testing:
✅ Application starts successfully on port 8080
✅ All schedulers operational with shared actor system
✅ Pekko actor system running on dynamically allocated port
✅ No port binding conflicts or initialization errors
✅ HTTP endpoints responding correctly
## Migration Notes:
- Akka licensing issues addressed by moving to Apache Pekko
- Backward compatibility maintained through Pekko's API compatibility
- All existing connector and scheduling functionality preserved
- Improved stability and reduced memory footprint