Package org.sonar.api

Class ExtensionProvider


  • @Deprecated
    @ExtensionPoint
    public abstract class ExtensionProvider
    extends java.lang.Object
    Deprecated.
    since 6.0 should no more be used
    Factory of extensions. It allows to dynamically create extensions depending upon runtime context. One use-case is to create one rule repository by language.

    Notes :

    • the provider is declared in Plugin.getExtensions()
    • the provider must also add annotation ServerSide, ComputeEngineSide and/or BatchSide
    • the provider can accept dependencies (parameters) in its constructors.
    • the method provide() is executed once by the platform
    • the method provide() must return an object, a class or an Iterable of objects. Arrays are excluded.

    Example:

     
     {@literal @}ServerSide
     public class RuleRepositoryProvider extends ExtensionProvider {
       private Language[] languages;
    
       public RuleRepositoryProvider(Language[] languages) {
         this.languages = languages;
       }
    
       public List<RuleRepository> provide() {
         List<RuleRepository> result = new ArrayList<RuleRepository>();
         for(Language language: languages) {
           result.add(new RuleRepository(..., language, ...));
         }
         return result;
       }
     }
     
     
    Since:
    2.3
    • Constructor Summary

      Constructors 
      Constructor Description
      ExtensionProvider()
      Deprecated.
       
    • Method Summary

      All Methods Instance Methods Abstract Methods Deprecated Methods 
      Modifier and Type Method Description
      abstract java.lang.Object provide()
      Deprecated.
       
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ExtensionProvider

        public ExtensionProvider()
        Deprecated.
    • Method Detail

      • provide

        public abstract java.lang.Object provide()
        Deprecated.