Collection prefix support for MongoDB job repository #5031
+306
−57
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
📝 Description
This PR adds collection prefix support for MongoDB job repository, mirroring the existing tablePrefix functionality in JDBC job repository. This enables multi-application support, environment isolation, and easier management of MongoDB collections in Spring Batch deployments.
🎯 Motivation
Currently, MongoDB job repository uses hardcoded collection names (BATCH_JOB_INSTANCE, BATCH_JOB_EXECUTION, etc.), making it difficult to:
Run multiple Spring Batch applications against the same MongoDB database
Isolate different environments (dev, test, prod)
Manage collections with custom naming conventions
🔧 Changes
EnableMongoJobRepository: Add collectionPrefix parameter (defaults to "BATCH_")
MongoJobRepositoryFactoryBean: Add collection prefix support
MongoDB DAO classes: Support configurable collection names via constructor parameters
BatchRegistrar: Pass collection prefix from annotation to factory bean
Tests: Add integration tests for collection prefix functionality
💡 Usage Example
This will create collections like:
MY_APP_JOB_INSTANCE
MY_APP_JOB_EXECUTION
MY_APP_STEP_EXECUTION
Closes: collectionPrefix for MongoDB Job repository #4980