From 87a78815d4e7700b40620497db59b49119a31c12 Mon Sep 17 00:00:00 2001 From: Julien HENRY Date: Fri, 18 Jan 2013 17:10:45 +0100 Subject: [PATCH] SONAR-4069 Removed TaskDefinitionExtension interface. --- .../batch/bootstrap/ExtensionInstaller.java | 28 +++-------------- .../sonar/batch/bootstrap/ExtensionUtils.java | 14 ++------- .../org/sonar/api/task/TaskDefinition.java | 3 +- .../api/task/TaskDefinitionExtension.java | 30 ------------------- 4 files changed, 8 insertions(+), 67 deletions(-) delete mode 100644 sonar-plugin-api/src/main/java/org/sonar/api/task/TaskDefinitionExtension.java diff --git a/sonar-batch/src/main/java/org/sonar/batch/bootstrap/ExtensionInstaller.java b/sonar-batch/src/main/java/org/sonar/batch/bootstrap/ExtensionInstaller.java index 3a54b6d2164..6d4de85171a 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/bootstrap/ExtensionInstaller.java +++ b/sonar-batch/src/main/java/org/sonar/batch/bootstrap/ExtensionInstaller.java @@ -31,6 +31,7 @@ import org.sonar.api.config.Settings; import org.sonar.api.platform.ComponentContainer; import org.sonar.api.platform.PluginMetadata; import org.sonar.api.resources.Project; +import org.sonar.api.task.TaskDefinition; import org.sonar.batch.bootstrapper.EnvironmentInformation; import javax.annotation.Nullable; @@ -62,34 +63,13 @@ public class ExtensionInstaller implements BatchComponent { installTaskDefinition(container, metadata, extension); } } - - List providers = container.getComponentsByType(ExtensionProvider.class); - for (ExtensionProvider provider : providers) { - executeTaskDefinitionExtensionProvider(container, provider); - } - } - - private void executeTaskDefinitionExtensionProvider(ComponentContainer container, ExtensionProvider provider) { - Object obj = provider.provide(); - if (obj instanceof Iterable) { - for (Object extension : (Iterable) obj) { - installTaskDefinition(container, null, extension); - } - } else { - installTaskDefinition(container, null, obj); - } } boolean installTaskDefinition(ComponentContainer container, @Nullable PluginMetadata plugin, Object extension) { boolean installed; - if (ExtensionUtils.isTaskDefinitionExtension(extension) && - ExtensionUtils.supportsEnvironment(extension, environment)) { - if (plugin != null) { - LOG.debug("Installing task definition extension {} from plugin {}", extension.toString(), plugin.getKey()); - } - else { - LOG.debug("Installing task definition extension {}", extension.toString()); - } + if (ExtensionUtils.isType(extension, TaskDefinition.class) + && ExtensionUtils.supportsEnvironment(extension, environment)) { + LOG.debug("Installing task definition extension {} from plugin {}", extension.toString(), plugin.getKey()); container.addExtension(plugin, extension); installed = true; } else { diff --git a/sonar-batch/src/main/java/org/sonar/batch/bootstrap/ExtensionUtils.java b/sonar-batch/src/main/java/org/sonar/batch/bootstrap/ExtensionUtils.java index 5ad891af55f..e363f68144d 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/bootstrap/ExtensionUtils.java +++ b/sonar-batch/src/main/java/org/sonar/batch/bootstrap/ExtensionUtils.java @@ -19,18 +19,14 @@ */ package org.sonar.batch.bootstrap; -import org.sonar.batch.tasks.RequiresProject; - -import org.sonar.api.task.TaskDefinitionExtension; -import org.sonar.api.task.TaskExtension; - import org.apache.commons.lang.StringUtils; import org.sonar.api.BatchExtension; -import org.sonar.api.Extension; import org.sonar.api.batch.InstantiationStrategy; import org.sonar.api.batch.SupportedEnvironment; +import org.sonar.api.task.TaskExtension; import org.sonar.api.utils.AnnotationUtils; import org.sonar.batch.bootstrapper.EnvironmentInformation; +import org.sonar.batch.tasks.RequiresProject; import org.sonar.core.DryRunIncompatible; final class ExtensionUtils { @@ -47,10 +43,6 @@ final class ExtensionUtils { return InstantiationStrategy.PER_PROJECT.equals(strategy); } - static boolean isTaskDefinitionExtension(Object extension) { - return isType(extension, TaskDefinitionExtension.class); - } - static boolean isTaskExtension(Object extension) { return isType(extension, TaskExtension.class); } @@ -85,7 +77,7 @@ final class ExtensionUtils { return env != null && env.value().length == 1 && StringUtils.equalsIgnoreCase("maven", env.value()[0]); } - static boolean isType(Object extension, Class extensionClass) { + static boolean isType(Object extension, Class extensionClass) { Class clazz = (extension instanceof Class ? (Class) extension : extension.getClass()); return extensionClass.isAssignableFrom(clazz); } diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/task/TaskDefinition.java b/sonar-plugin-api/src/main/java/org/sonar/api/task/TaskDefinition.java index 897831cc914..2d7d595bd78 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/task/TaskDefinition.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/task/TaskDefinition.java @@ -19,12 +19,11 @@ */ package org.sonar.api.task; - /** * Implement this interface to provide a new task. * @since 3.5 */ -public class TaskDefinition implements TaskDefinitionExtension { +public class TaskDefinition implements TaskComponent { private String name; private String description; diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/task/TaskDefinitionExtension.java b/sonar-plugin-api/src/main/java/org/sonar/api/task/TaskDefinitionExtension.java deleted file mode 100644 index 0bf358384f1..00000000000 --- a/sonar-plugin-api/src/main/java/org/sonar/api/task/TaskDefinitionExtension.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Sonar, open source software quality management tool. - * Copyright (C) 2008-2012 SonarSource - * mailto:contact AT sonarsource DOT com - * - * Sonar is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * Sonar is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with Sonar; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 - */ -package org.sonar.api.task; - -import org.sonar.api.Extension; - -/** - * Task definition extension point. - * - * @since 3.5 - */ -public interface TaskDefinitionExtension extends Extension { -} -- 2.39.5