package at.porscheinformatik.sonarqube.licensecheck; import java.util.Arrays; import java.util.List; import org.sonar.api.Plugin; import org.sonar.api.PropertyType; import org.sonar.api.batch.bootstrap.ProjectDefinition; import org.sonar.api.config.PropertyDefinition; import at.porscheinformatik.sonarqube.licensecheck.license.LicenseService; import at.porscheinformatik.sonarqube.licensecheck.license.LicenseSettingsService; import at.porscheinformatik.sonarqube.licensecheck.mavendependency.MavenDependencyService; import at.porscheinformatik.sonarqube.licensecheck.mavendependency.MavenDependencySettingsService; import at.porscheinformatik.sonarqube.licensecheck.mavenlicense.MavenLicenseService; import at.porscheinformatik.sonarqube.licensecheck.mavenlicense.MavenLicenseSettingsService; import at.porscheinformatik.sonarqube.licensecheck.projectLicense.ProjectLicenseService; import at.porscheinformatik.sonarqube.licensecheck.projectLicense.ProjectLicenseSettingsService; import at.porscheinformatik.sonarqube.licensecheck.webservice.license.LicenseWs; import at.porscheinformatik.sonarqube.licensecheck.webservice.mavendependency.MavenDependencyWs; import at.porscheinformatik.sonarqube.licensecheck.webservice.mavenlicense.MavenLicenseWs; import at.porscheinformatik.sonarqube.licensecheck.webservice.projectLicense.ProjectLicenseWs; public class LicenseCheckPlugin implements Plugin { @Override public void define(Context context) { context.addExtensions(getExtensions()); } private List<?> getExtensions() { return Arrays.asList( ValidateLicenses.class, LicenseCheckSensor.class, LicenseCheckMetrics.class, LicenseCheckPageDefinition.class, LicenseCheckRulesDefinition.class, LicenseService.class, LicenseSettingsService.class, LicenseWs.class, MavenDependencyService.class, MavenDependencySettingsService.class, MavenDependencyWs.class, MavenLicenseService.class, MavenLicenseSettingsService.class, MavenLicenseWs.class, ProjectLicenseService.class, ProjectLicenseSettingsService.class, ProjectLicenseWs.class, PropertyDefinition.builder(LicenseCheckPropertyKeys.LICENSE_KEY) .type(PropertyType.TEXT) .build(), PropertyDefinition.builder(LicenseCheckPropertyKeys.ALLOWED_DEPENDENCIES_KEY) .type(PropertyType.TEXT) .build(), PropertyDefinition.builder(LicenseCheckPropertyKeys.LICENSE_REGEX) .type(PropertyType.TEXT) .build(), PropertyDefinition.builder(LicenseCheckPropertyKeys.PROJECT_LICENSE_KEY) .type(PropertyType.TEXT) .build(), PropertyDefinition.builder(LicenseCheckPropertyKeys.NPM_RESOLVE_TRANSITIVE_DEPS) .type(PropertyType.BOOLEAN) .build(), PropertyDefinition.builder(LicenseCheckPropertyKeys.ACTIVATION_KEY) .category("License Check") .name("Activate") .description("Activate license check") .type(PropertyType.BOOLEAN) .defaultValue("true") .build()); } static ProjectDefinition getRootProject(ProjectDefinition definition) { while (definition != null && definition.getParent() != null && !definition.equals(definition.getParent())) { definition = definition.getParent(); } return definition; } }