Possibility to provide custom data loaders #24
Closed
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.
This change adds the possibility to provide your own data loaders so it would be possible to fine tune network connections to OCSP, TSA and TSL services.
Some integrators would like to control how the network connections are made to fine tune the performance, proxy configurations, timeouts, headers etc (instead of every integrator asking DigiDoc4j team to implement it for them).
It is now possible to create a new DataLoaderFactory for each remote service (OCSP, TSA, TLS) that creates DataLoader instances that control how network connections are made. The factories can be set in the Configuration class.
Here is an example of creating your own data loader for OCSP, TimeStamp and TSL requests:
// Implement a new data loader factory that creates custom data loaders
public class MockDataLoaderFactory implements DataLoaderFactory {
@OverRide
public DataLoader create() {
return new MockDataLoader();
}
}
MockDataLoaderFactory mockDataLoaderFactory = new MockDataLoaderFactory();
// Using it for OCSP requests
configuration.setOcspDataLoaderFactory(mockDataLoaderFactory);
// Using it for TimeStamp requests
configuration.setTimestampDataLoaderFactory(mockDataLoaderFactory);
// Using it for TSL requests
configuration.setTslDataLoaderFactory(mockDataLoaderFactory);