Resolve "Validate Artemis Exercises in Sharing Platform for compatibility"
requested to merge 588-validate-artemis-exercises-in-sharing-platform-for-compatibility into development
Related to #588 (closed)
Summary by CodeRabbit
-
New Features
- Introduced Artemis project validation service with detailed logging and email notifications for invalid projects.
- Added admin UI for validation management with real-time log streaming and control.
- Added REST endpoints to trigger validation, retrieve logs, and stop log streaming.
-
Improvements
- Refined security configuration for management API paths.
- Enhanced Elasticsearch management API and UI with log stopping capability.
- Improved admin index management UI with stop button and reactive log updates.
- Added detailed plugin health status history tracking and display.
- Centralized task scheduling with distinct Spring TaskSchedulers for general and indexing tasks.
- Replaced manual executor services with Spring-managed schedulers for async tasks.
- Replaced synchronized blocks with explicit ReentrantLock locking for thread safety in backend services.
- Improved backend logging with enhanced log holder and controlled stoppability.
- Added internationalization support for validation views in English and German.
-
Bug Fixes
- Added null checks in review access methods to prevent errors.
- Fixed naming inconsistency in application properties.
-
Refactor
- Migrated Angular forms from typed to untyped classes and updated tests accordingly.
- Replaced Moment.js with date-fns and native Date objects for date handling.
- Updated Angular dependency injection to use
inject()function. - Modularized review and validation management features with lazy loading.
- Streamlined HTTP services with stronger typing and centralized endpoint config.
- Removed deprecated Angular entryComponents arrays from modules.
- Replaced Lodash with native JavaScript array methods in bookmarks component.
- Enhanced markdown viewer KaTeX rendering using reflection hack.
- Refined log polling in admin components to use reactive streams with error handling.
- Simplified REST controller annotations by removing explicit path variable names.
- Reorganized admin index management component for reactive log streaming and error handling.
- Replaced synchronized blocks with explicit locking using ReentrantLock in multiple classes.
- Refactored multiple Angular components and services to use untyped form builders and include ReactiveFormsModule in tests.
- Centralized API endpoint URL construction via application config service.
- Improved log management with trimming and reactive updates in admin components.
-
Chores
- Upgraded Angular and related dependencies from v13 to v14.
- Added English and German localization files for validation features.
- Improved code style, formatting, and import order consistency.
- Added and updated unit tests for new and existing services.
- Updated CI configuration to include Artemis connector token environment variable.
- Enhanced pre-commit hooks to run lint fixes automatically.
- Adjusted lint-staged and VSCode debug configurations for better developer experience.
- Updated TypeScript target to ES2020 for modern JavaScript features.
- Fixed naming inconsistencies in configuration properties.
- Updated package.json to upgrade dependencies and remove unused packages.
- Cleaned up Angular module declarations by removing deprecated arrays and unused components.
Edited by CodeRabbit Technical User