Package org.sonar.api
Class ExtensionProvider
- java.lang.Object
-
- org.sonar.api.ExtensionProvider
-
@Deprecated @ExtensionPoint public abstract class ExtensionProvider extends java.lang.Object
Deprecated.since 6.0 should no more be usedFactory 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/orBatchSide
- 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.
-