Class CompletableFutureUsageCondition


  • public class CompletableFutureUsageCondition
    extends com.tngtech.archunit.lang.ArchCondition<com.tngtech.archunit.core.domain.JavaClass>
    Hazelcast internal callbacks shouldn't use the ForkJoinPool#commonPool, due to the risk of blocking Hazelcast progress by other misbehaving applications/libraries.
    The following rules should enforce to use of a separate executor for executing dependent stages in a Hazelcast code:
    • from CompletionStage create a list of methods that have an Async counterpart
    • based on this list, filtering all their calls on the CompletableFuture instanceof objects
    • checking that no non-Async methods versions are used
    • checking that for Async methods the Executor service is specified
    • skipping methods that override CompletableFuture base class methods
    • Nested Class Summary

      • Nested classes/interfaces inherited from class com.tngtech.archunit.lang.ArchCondition

        com.tngtech.archunit.lang.ArchCondition.ConditionByPredicate<T extends com.tngtech.archunit.base.HasDescription & com.tngtech.archunit.core.domain.properties.HasSourceCodeLocation>
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void check​(com.tngtech.archunit.core.domain.JavaClass item, com.tngtech.archunit.lang.ConditionEvents events)  
      • Methods inherited from class com.tngtech.archunit.lang.ArchCondition

        and, as, finish, forSubtype, from, getDescription, init, or, toString
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Method Detail

      • check

        public void check​(com.tngtech.archunit.core.domain.JavaClass item,
                          com.tngtech.archunit.lang.ConditionEvents events)
        Specified by:
        check in class com.tngtech.archunit.lang.ArchCondition<com.tngtech.archunit.core.domain.JavaClass>