+ {ftOperation_count} |
+
+ {#if ftOperation.beanClass.name.length > 70}{ftOperation.beanClass.name.substring(0,70)}...{#else}{ftOperation.beanClass.name}{/if}
+ |
+
+ {ftOperation.methodDescriptor.name}()
+ |
+
+
+ {#if ftOperation.applyFaultTolerance}
+ -
+ @ApplyFaultTolerance("{ftOperation.applyFaultTolerance.value}")
+
+ {/if}
+
+ {#if ftOperation.asynchronous}
+ - @Asynchronous
+ {/if}
+
+ {#if ftOperation.blocking}
+ - @Blocking
+ {/if}
+
+ {#if ftOperation.nonBlocking}
+ - @NonBlocking
+ {/if}
+
+ {#if ftOperation.bulkhead}
+ - @Bulkhead(value = {ftOperation.bulkhead.value},
+ waitingTaskQueue = {ftOperation.bulkhead.waitingTaskQueue})
+ {/if}
+
+ {#if ftOperation.circuitBreaker}
+ -
+ @CircuitBreaker(delay = {ftOperation.circuitBreaker.delay} {ftOperation.circuitBreaker.delayUnit.name},
+ requestVolumeThreshold = {ftOperation.circuitBreaker.requestVolumeThreshold},
+ failureRatio = {ftOperation.circuitBreaker.failureRatio},
+ successThreshold = {ftOperation.circuitBreaker.successThreshold},
+ failOn = [{#each ftOperation.circuitBreaker.failOn}{it.name}{#if it_hasNext}, {/if}{/each}],
+ skipOn = [{#each ftOperation.circuitBreaker.skipOn}{it.name}{#if it_hasNext}, {/if}{/each}])
+ {#if ftOperation.circuitBreakerName}
+
+ - @CircuitBreakerName("{ftOperation.circuitBreakerName.value}")
+
+ {/if}
+
+ {/if}
+
+ {#if ftOperation.fallback}
+ -
+ @Fallback(value = {ftOperation.fallback.value.name},
+ fallbackMethod = "{ftOperation.fallback.fallbackMethod}",
+ applyOn = [{#each ftOperation.fallback.applyOn}{it.name}{#if it_hasNext}, {/if}{/each}],
+ skipOn = [{#each ftOperation.fallback.skipOn}{it.name}{#if it_hasNext}, {/if}{/each}])
+
+ {/if}
+
+ {#if ftOperation.retry}
+ -
+ @Retry(maxRetries = {ftOperation.retry.maxRetries},
+ delay = {ftOperation.retry.delay} {ftOperation.retry.delayUnit.name},
+ maxDuration = {ftOperation.retry.maxDuration} {ftOperation.retry.durationUnit.name},
+ jitter = {ftOperation.retry.jitter} {ftOperation.retry.jitterDelayUnit.name},
+ retryOn = [{#each ftOperation.retry.retryOn}{it.name}{#if it_hasNext}, {/if}{/each}],
+ abortOn = [{#each ftOperation.retry.abortOn}{it.name}{#if it_hasNext}, {/if}{/each}])
+ {#if ftOperation.exponentialBackoff || ftOperation.fibonacciBackoff || ftOperation.customBackoff}
+
+ {#if ftOperation.exponentialBackoff}
+ - @ExponentialBackoff(factor = {ftOperation.exponentialBackoff.factor},
+ maxDelay = {ftOperation.exponentialBackoff.maxDelay} {ftOperation.exponentialBackoff.maxDelayUnit.name})
+ {/if}
+ {#if ftOperation.fibonacciBackoff}
+ - @FibonacciBackoff(maxDelay = {ftOperation.fibonacciBackoff.maxDelay} {ftOperation.fibonacciBackoff.maxDelayUnit.name})
+ {/if}
+ {#if ftOperation.customBackoff}
+ - @CustomBackoff({ftOperation.customBackoff.value.name})
+ {/if}
+
+ {/if}
+
+ {/if}
+
+ {#if ftOperation.timeout}
+ -
+ @Timeout({ftOperation.timeout.value} {ftOperation.timeout.unit.name})
+
+ {/if}
+
+ |
+
+ {/for}
+