Class ServiceProviderFinder

java.lang.Object
org.apache.myfaces.spi.ServiceProviderFinder
Direct Known Subclasses:
DefaultServiceProviderFinder

public abstract class ServiceProviderFinder extends Object
This class provides an interface to override SPI handling done by MyFaces. This is useful on environments like in OSGi, because it allows to put custom code to find SPI interfaces under META-INF/services/
Since:
2.0.3
Author:
Leonardo Uribe
  • Field Details

    • KNOWN_SERVICES

      public static final String[] KNOWN_SERVICES
  • Constructor Details

    • ServiceProviderFinder

      public ServiceProviderFinder()
  • Method Details

    • getServiceProviderList

      public abstract List<String> getServiceProviderList(String spiClass)
      Gets the list of classes bound to the spiClass key, looking for entries under META-INF/services/[spiClass]
      Parameters:
      spiClass -
      Returns:
    • load

      public <S> ServiceLoader<S> load(Class<S> spiClass)
    • initKnownServiceProviderMapInfo

      public void initKnownServiceProviderMapInfo(ExternalContext ectx, Map<String,List<String>> map)
      If ServiceProviderFinderFactory knows beforehand or has stored somewhere the known locations of the SPI interfaces, this method helps to set this config information so the implementation of this interface can use it. The idea is MyFaces initialization algorithm will call getKnownServiceProviderMapInfo method and if the value is not null it will call this method to pass the map back to the ServiceProviderFinder, so it can take it.
      Parameters:
      map -
    • calculateKnownServiceProviderMapInfo

      public Map<String,List<String>> calculateKnownServiceProviderMapInfo(ExternalContext ectx, String[] knownServices)