Skip to content

Commit

Permalink
add executor service param - fixes after review
Browse files Browse the repository at this point in the history
  • Loading branch information
Semernitskaya committed Sep 20, 2023
1 parent 4ef296d commit a907bd5
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 29 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ public FailsafePlugin withPolicy(final RequestPolicy policy) {
public FailsafePlugin withExecutor(@Nullable final ExecutorService executorService) {
if (executorService instanceof ThreadPoolExecutor
&& ((ThreadPoolExecutor) executorService).getCorePoolSize() == 1) {
log.warn("The executorService should have a core pool size or parallelism of at least 2 in order for timeouts to work, " +
log.warn("The custom executorService should have a core pool size or parallelism of at least 2 in order for timeouts to work, " +
"see dev.failsafe.Failsafe documentation for more details");
}
return new FailsafePlugin(policies, decorators, executorService);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -408,18 +408,14 @@ private Optional<String> registerCircuitBreakerFailsafePlugin(final String id, f
final String pluginId = registry.registerIfAbsent(name(id, CircuitBreaker.class, FailsafePlugin.class),
() -> {
var executorService = registry.find(name(id, "CircuitBreaker", ExecutorService.class));
var executorServiceRef = executorService.map(Registry::ref).orElse(null);

log.debug("Client [{}]: Registering [CircuitBreakerFailsafePlugin]", id);
return executorService.map(executorServiceBeanName -> genericBeanDefinition(FailsafePluginFactory.class)
return genericBeanDefinition(FailsafePluginFactory.class)
.setFactoryMethod("createCircuitBreakerPlugin")
.addConstructorArgValue(registerCircuitBreaker(id, client))
.addConstructorArgValue(createTaskDecorators(id, client))
.addConstructorArgValue(ref(executorServiceBeanName)))
.orElseGet(() -> genericBeanDefinition(FailsafePluginFactory.class)
.setFactoryMethod("createCircuitBreakerPlugin")
.addConstructorArgValue(registerCircuitBreaker(id, client))
.addConstructorArgValue(createTaskDecorators(id, client))
.addConstructorArgValue(null));
.addConstructorArgValue(executorServiceRef);
});
return Optional.of(pluginId);
}
Expand All @@ -430,18 +426,14 @@ private Optional<String> registerRetryPolicyFailsafePlugin(final String id, fina
if (client.getRetry().getEnabled()) {
final String pluginId = registry.registerIfAbsent(name(id, "RetryPolicy", FailsafePlugin.class), () -> {
var executorService = registry.find(name(id, "RetryPolicy", ExecutorService.class));
var executorServiceRef = executorService.map(Registry::ref).orElse(null);

log.debug("Client [{}]: Registering [RetryPolicyFailsafePlugin]", id);
return executorService.map(executorServiceBeanName -> genericBeanDefinition(FailsafePluginFactory.class)
return genericBeanDefinition(FailsafePluginFactory.class)
.setFactoryMethod("createRetryFailsafePlugin")
.addConstructorArgValue(client)
.addConstructorArgValue(createTaskDecorators(id, client))
.addConstructorArgValue(ref(executorServiceBeanName)))
.orElseGet(() -> genericBeanDefinition(FailsafePluginFactory.class)
.setFactoryMethod("createRetryFailsafePlugin")
.addConstructorArgValue(client)
.addConstructorArgValue(createTaskDecorators(id, client))
.addConstructorArgValue(null));
.addConstructorArgValue(executorServiceRef);
});
return Optional.of(pluginId);
}
Expand All @@ -465,17 +457,14 @@ private Optional<String> registerBackupRequestFailsafePlugin(final String id, fi
final String pluginId = registry.registerIfAbsent(name(id, BackupRequest.class, FailsafePlugin.class),
() -> {
var executorService = registry.find(name(id, "BackupRequest", ExecutorService.class));
var executorServiceRef = executorService.map(Registry::ref).orElse(null);

log.debug("Client [{}]: Registering [BackupRequestFailsafePlugin]", id);
return executorService.map(executorServiceBeanName -> genericBeanDefinition(FailsafePluginFactory.class)
return genericBeanDefinition(FailsafePluginFactory.class)
.setFactoryMethod("createBackupRequestPlugin")
.addConstructorArgValue(client)
.addConstructorArgValue(createTaskDecorators(id, client))
.addConstructorArgValue(ref(executorServiceBeanName)))
.orElseGet(() -> genericBeanDefinition(FailsafePluginFactory.class)
.setFactoryMethod("createBackupRequestPlugin")
.addConstructorArgValue(client)
.addConstructorArgValue(createTaskDecorators(id, client))
.addConstructorArgValue(null));
.addConstructorArgValue(executorServiceRef);
});
return Optional.of(pluginId);
}
Expand All @@ -486,18 +475,14 @@ private Optional<String> registerTimeoutFailsafePlugin(final String id, final Cl
if (client.getTimeouts().getEnabled()) {
final String pluginId = registry.registerIfAbsent(name(id, Timeout.class, FailsafePlugin.class), () -> {
var executorService = registry.find(name(id, "Timeout", ExecutorService.class));
var executorServiceRef = executorService.map(Registry::ref).orElse(null);

log.debug("Client [{}]: Registering [TimeoutFailsafePlugin]", id);
return executorService.map(executorServiceBeanName -> genericBeanDefinition(FailsafePluginFactory.class)
.setFactoryMethod("createTimeoutPlugin")
.addConstructorArgValue(client)
.addConstructorArgValue(createTaskDecorators(id, client))
.addConstructorArgValue(ref(executorServiceBeanName)))
.orElseGet(() -> genericBeanDefinition(FailsafePluginFactory.class)
return genericBeanDefinition(FailsafePluginFactory.class)
.setFactoryMethod("createTimeoutPlugin")
.addConstructorArgValue(client)
.addConstructorArgValue(createTaskDecorators(id, client))
.addConstructorArgValue(null));
.addConstructorArgValue(executorServiceRef);
});
return Optional.of(pluginId);
}
Expand Down

0 comments on commit a907bd5

Please sign in to comment.