Interface ServiceDependenciesSpec


  • public interface ServiceDependenciesSpec
    Allows declaring which services depend on which services.
    Since:
    1.3
    See Also:
    ServiceDependencies, DependsOn
    • Method Detail

      • dependsOn

        ServiceDependenciesSpec dependsOn​(Predicate<? super Service> dependents,
                                          Predicate<? super Service> dependencies)
                                   throws Exception
        Specifies that all services that match the dependents predicate are dependent on all services that match the dependencies predicate.
        Parameters:
        dependents - the criteria for dependent services
        dependencies - the criteria for services they depend on
        Returns:
        this
        Throws:
        Exception - any thrown by either predicate
      • dependsOn

        default <T1,​T2> ServiceDependenciesSpec dependsOn​(Class<T1> dependentsType,
                                                                Predicate<? super T1> dependents,
                                                                Class<T2> dependenciesType,
                                                                Predicate<? super T2> dependencies)
                                                         throws Exception
        Specifies that all services that are of the given dependentsType that match the dependents predicate are dependent on all services that are of the dependenciesType that match the dependencies predicate.
        Type Parameters:
        T1 - the type of dependent services
        T2 - the type of services they depend on
        Parameters:
        dependents - the criteria for dependent services
        dependencies - the criteria for services they depend on
        Returns:
        this
        Throws:
        Exception - any thrown by either predicate
      • dependsOn

        default ServiceDependenciesSpec dependsOn​(Class<?> dependents,
                                                  Class<?> dependencies)
                                           throws Exception
        A convenience form of dependsOn(Predicate, Predicate) where the predicates are based on compatibility with the given types.

        All services that are type compatible with the dependents type, will be considered dependents of all services that are type compatible with the dependencies type.

        Use of this method is equivalent to annotating dependents with DependsOn with a value of dependencies. It can be useful in situations however where you are unable to modify the dependents class.

        Parameters:
        dependents - the type of dependent services
        dependencies - the type of the services they depend on
        Returns:
        this
        Throws:
        Exception - any
        See Also:
        DependsOn