mirror of
https://github.com/Stirling-Tools/Stirling-PDF.git
synced 2025-05-24 02:42:02 +00:00

# Description 1. **Conditional Support for DatabaseController**: - The `DatabaseController` is now annotated with `@Conditional(H2SQLCondition.class)` to ensure it is only available for H2SQL database setups. - This prevents unnecessary exposure of endpoints when the application is configured for H2SQL. 2. **Database Web Template Adjustments**: - The UI elements related to database management are conditionally hidden when the database type is not supported (e.g., `databaseVersion == 'Unknown'`). - Improves user experience by avoiding unsupported operations for non-H2SQL or unknown databases. 3. **Model Attribute Updates**: - Added a check in `DatabaseWebController` to set an informational message (`notSupported`) when the database version is unknown. 4. **H2 Database Compatibility**: - Additional adjustments to ensure the application gracefully handles H2-specific functionality without affecting other database configurations. 5. **Build File Updates**: - Updated the `build.gradle` file to exclude `H2SQLCondition` and related controllers when specific configurations (e.g., security or database type) are disabled. ### Benefits: - Enhances application flexibility by adapting to the configured database type. - Improves user feedback with clear messaging and UI adjustments for unsupported operations. - Prevents accidental exposure of database endpoints in H2SQL setups. ## Checklist - [x] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [x] I have performed a self-review of my own code - [ ] I have attached images of the change if it is UI based - [x] I have commented my code, particularly in hard-to-understand areas - [ ] If my code has heavily changed functionality I have updated relevant docs on [Stirling-PDFs doc repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/) - [x] My changes generate no new warnings - [ ] I have read the section [Add New Translation Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md#add-new-translation-tags) (for new translation tags only)
20 lines
823 B
Java
20 lines
823 B
Java
package stirling.software.SPDF.controller.api;
|
|
|
|
import org.springframework.context.annotation.Condition;
|
|
import org.springframework.context.annotation.ConditionContext;
|
|
import org.springframework.core.type.AnnotatedTypeMetadata;
|
|
|
|
public class H2SQLCondition implements Condition {
|
|
|
|
@Override
|
|
public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
|
|
boolean enableCustomDatabase =
|
|
Boolean.parseBoolean(
|
|
context.getEnvironment()
|
|
.getProperty("system.datasource.enableCustomDatabase"));
|
|
String dataSourceType = context.getEnvironment().getProperty("system.datasource.type");
|
|
return !enableCustomDatabase
|
|
|| (enableCustomDatabase && "h2".equalsIgnoreCase(dataSourceType));
|
|
}
|
|
}
|