Skip to content

Commit e61aac9

Browse files
committed
Merge remote-tracking branch 'origin/issue/393_Fix_2.0.0-RC1_Bugs' into
develop_2
2 parents 8d2078f + 3e5f69c commit e61aac9

File tree

95 files changed

+2815
-480
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

95 files changed

+2815
-480
lines changed

dsf-bpe/dsf-bpe-process-api-v2-impl/src/main/java/dev/dsf/bpe/v2/ProcessPluginApiFactory.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,12 @@
2424

2525
import ca.uhn.fhir.context.FhirContext;
2626
import dev.dsf.bpe.v2.config.ProxyConfig;
27+
import dev.dsf.bpe.v2.service.ClientConfigProvider;
2728
import dev.dsf.bpe.v2.service.CompressionService;
2829
import dev.dsf.bpe.v2.service.CryptoService;
2930
import dev.dsf.bpe.v2.service.DataLogger;
3031
import dev.dsf.bpe.v2.service.DsfClientProvider;
3132
import dev.dsf.bpe.v2.service.EndpointProvider;
32-
import dev.dsf.bpe.v2.service.FhirClientConfigProvider;
3333
import dev.dsf.bpe.v2.service.FhirClientProvider;
3434
import dev.dsf.bpe.v2.service.MailService;
3535
import dev.dsf.bpe.v2.service.MimeTypeService;
@@ -63,12 +63,12 @@ public ProcessPluginApi get()
6363
{
6464
return new ProcessPluginApiImpl(processPluginDefinition, fromParent(ProxyConfig.class),
6565
fromParent(EndpointProvider.class), fromParent(FhirContext.class), fromParent(DsfClientProvider.class),
66-
fromParent(FhirClientProvider.class), fromParent(FhirClientConfigProvider.class),
66+
fromParent(FhirClientProvider.class), fromParent(ClientConfigProvider.class),
6767
fromParent(OidcClientProvider.class), fromParent(MailService.class), fromParent(MimeTypeService.class),
6868
fromParent(ObjectMapper.class), fromParent(OrganizationProvider.class),
6969
fromParent(ProcessAuthorizationHelper.class), fromParent(QuestionnaireResponseHelper.class),
7070
fromParent(ReadAccessHelper.class), fromParent(TaskHelper.class), fromParent(CompressionService.class),
7171
fromParent(CryptoService.class), fromParent(TargetProvider.class), fromParent(DataLogger.class),
7272
fromParent(ValidationServiceProvider.class));
7373
}
74-
}
74+
}

dsf-bpe/dsf-bpe-process-api-v2-impl/src/main/java/dev/dsf/bpe/v2/ProcessPluginApiImpl.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,12 @@
2323

2424
import ca.uhn.fhir.context.FhirContext;
2525
import dev.dsf.bpe.v2.config.ProxyConfig;
26+
import dev.dsf.bpe.v2.service.ClientConfigProvider;
2627
import dev.dsf.bpe.v2.service.CompressionService;
2728
import dev.dsf.bpe.v2.service.CryptoService;
2829
import dev.dsf.bpe.v2.service.DataLogger;
2930
import dev.dsf.bpe.v2.service.DsfClientProvider;
3031
import dev.dsf.bpe.v2.service.EndpointProvider;
31-
import dev.dsf.bpe.v2.service.FhirClientConfigProvider;
3232
import dev.dsf.bpe.v2.service.FhirClientProvider;
3333
import dev.dsf.bpe.v2.service.MailService;
3434
import dev.dsf.bpe.v2.service.MimeTypeService;
@@ -49,7 +49,7 @@ public class ProcessPluginApiImpl implements ProcessPluginApi, InitializingBean
4949
private final FhirContext fhirContext;
5050
private final DsfClientProvider dsfClientProvider;
5151
private final FhirClientProvider fhirClientProvider;
52-
private final FhirClientConfigProvider fhirClientConfigProvider;
52+
private final ClientConfigProvider fhirClientConfigProvider;
5353
private final OidcClientProvider oidcClientProvider;
5454
private final MailService mailService;
5555
private final MimeTypeService mimeTypeService;
@@ -67,7 +67,7 @@ public class ProcessPluginApiImpl implements ProcessPluginApi, InitializingBean
6767

6868
public ProcessPluginApiImpl(ProcessPluginDefinition processPluginDefinition, ProxyConfig proxyConfig,
6969
EndpointProvider endpointProvider, FhirContext fhirContext, DsfClientProvider dsfClientProvider,
70-
FhirClientProvider fhirClientProvider, FhirClientConfigProvider fhirClientConfigProvider,
70+
FhirClientProvider fhirClientProvider, ClientConfigProvider fhirClientConfigProvider,
7171
OidcClientProvider oidcClientProvider, MailService mailService, MimeTypeService mimeTypeService,
7272
ObjectMapper objectMapper, OrganizationProvider organizationProvider,
7373
ProcessAuthorizationHelper processAuthorizationHelper,
@@ -161,7 +161,7 @@ public FhirClientProvider getFhirClientProvider()
161161
}
162162

163163
@Override
164-
public FhirClientConfigProvider getFhirClientConfigProvider()
164+
public ClientConfigProvider getFhirClientConfigProvider()
165165
{
166166
return fhirClientConfigProvider;
167167
}

dsf-bpe/dsf-bpe-process-api-v2-impl/src/main/java/dev/dsf/bpe/v2/client/dsf/AbstractDsfClientJerseyWithRetry.java

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,18 +34,20 @@ public abstract class AbstractDsfClientJerseyWithRetry
3434

3535
protected final DsfClientJersey delegate;
3636
private final int nTimes;
37-
private final Duration delay;
37+
private final DelayStrategy delayStrategy;
3838

39-
protected AbstractDsfClientJerseyWithRetry(DsfClientJersey delegate, int nTimes, Duration delay)
39+
protected AbstractDsfClientJerseyWithRetry(DsfClientJersey delegate, int nTimes, DelayStrategy delayStrategy)
4040
{
4141
this.delegate = delegate;
4242
this.nTimes = nTimes;
43-
this.delay = delay;
43+
this.delayStrategy = delayStrategy;
4444
}
4545

4646
protected final <R> R retry(Supplier<R> supplier)
4747
{
4848
RuntimeException caughtException = null;
49+
Duration delay = delayStrategy.getFirstDelay();
50+
4951
for (int tryNumber = 0; tryNumber <= nTimes || nTimes == RetryClient.RETRY_FOREVER; tryNumber++)
5052
{
5153
try
@@ -63,8 +65,11 @@ else if (nTimes != RetryClient.RETRY_FOREVER)
6365
{
6466
if (tryNumber < nTimes || nTimes == RetryClient.RETRY_FOREVER)
6567
{
66-
logger.warn("Caught {} - {}; trying again in {}s{}", e.getClass(), e.getMessage(),
67-
delay.toSeconds(),
68+
if (tryNumber > 0)
69+
delay = delayStrategy.getNextDelay(delay);
70+
71+
logger.warn("Caught {} - {}; trying again in {}{}", e.getClass(), e.getMessage(),
72+
delay.toString(),
6873
nTimes == RetryClient.RETRY_FOREVER ? " (retry " + (tryNumber + 1) + ")" : "");
6974

7075
try

dsf-bpe/dsf-bpe-process-api-v2-impl/src/main/java/dev/dsf/bpe/v2/client/dsf/BasicDsfClientWithRetryImpl.java

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,24 +16,24 @@
1616
package dev.dsf.bpe.v2.client.dsf;
1717

1818
import java.io.InputStream;
19-
import java.time.Duration;
2019
import java.util.List;
2120
import java.util.Map;
2221

2322
import org.hl7.fhir.r4.model.Binary;
2423
import org.hl7.fhir.r4.model.Bundle;
2524
import org.hl7.fhir.r4.model.CapabilityStatement;
2625
import org.hl7.fhir.r4.model.IdType;
26+
import org.hl7.fhir.r4.model.Parameters;
2727
import org.hl7.fhir.r4.model.Resource;
2828
import org.hl7.fhir.r4.model.StructureDefinition;
2929

3030
import jakarta.ws.rs.core.MediaType;
3131

3232
class BasicDsfClientWithRetryImpl extends AbstractDsfClientJerseyWithRetry implements BasicDsfClient
3333
{
34-
BasicDsfClientWithRetryImpl(DsfClientJersey delegate, int nTimes, Duration delay)
34+
BasicDsfClientWithRetryImpl(DsfClientJersey delegate, int nTimes, DelayStrategy delayStrategy)
3535
{
36-
super(delegate, nTimes, delay);
36+
super(delegate, nTimes, delayStrategy);
3737
}
3838

3939
@Override
@@ -218,4 +218,31 @@ public Bundle history(Class<? extends Resource> resourceType, String id, int pag
218218
{
219219
return retry(() -> delegate.history(resourceType, id, page, count));
220220
}
221+
222+
@Override
223+
public <R extends Resource> R operation(String operationName, Parameters parameters, Class<R> returnType)
224+
{
225+
return retry(() -> delegate.operation(operationName, parameters, returnType));
226+
}
227+
228+
@Override
229+
public <R extends Resource, T extends Resource> R operation(Class<T> resourceType, String operationName,
230+
Parameters parameters, Class<R> returnType)
231+
{
232+
return retry(() -> delegate.operation(resourceType, operationName, parameters, returnType));
233+
}
234+
235+
@Override
236+
public <R extends Resource, T extends Resource> R operation(Class<T> resourceType, String id, String operationName,
237+
Parameters parameters, Class<R> returnType)
238+
{
239+
return retry(() -> delegate.operation(resourceType, id, operationName, parameters, returnType));
240+
}
241+
242+
@Override
243+
public <R extends Resource, T extends Resource> R operation(Class<T> resourceType, String id, String version,
244+
String operationName, Parameters parameters, Class<R> returnType)
245+
{
246+
return retry(() -> delegate.operation(resourceType, id, version, operationName, parameters, returnType));
247+
}
221248
}

0 commit comments

Comments
 (0)