+++ /dev/null
-/*
- * SonarQube
- * Copyright (C) 2009-2020 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program 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.
- *
- * This program 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 this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-package org.sonar.server.ui;
-
-import org.sonar.api.Startable;
-import org.sonar.api.server.ServerSide;
-import org.sonar.api.utils.log.Logger;
-import org.sonar.api.utils.log.Loggers;
-import org.sonar.api.web.View;
-import org.sonar.api.web.Widget;
-import org.sonar.api.web.page.PageDefinition;
-
-/**
- * @deprecated since 6.3 see {@link org.sonar.api.web.page.PageDefinition}. This class logs warnings at startup if there are pages using the old page API.
- */
-@ServerSide
-@Deprecated
-public class DeprecatedViews implements Startable {
-
- private static final Logger LOGGER = Loggers.get(DeprecatedViews.class);
-
- private final View[] views;
-
- public DeprecatedViews() {
- this.views = new View[0];
- }
-
- public DeprecatedViews(View[] views) {
- this.views = views;
- }
-
- @Override
- public void start() {
- for (View view : views) {
- String pageOrWidget = view instanceof Widget ? "Widget" : "Page";
- LOGGER.warn("{} '{}' ({}) is ignored. See {} to define pages.", pageOrWidget, view.getTitle(), view.getId(), PageDefinition.class.getCanonicalName());
- }
- }
-
- @Override
- public void stop() {
- // do nothing
- }
-}
+++ /dev/null
-/*
- * SonarQube
- * Copyright (C) 2009-2020 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program 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.
- *
- * This program 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 this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-package org.sonar.server.ui;
-
-import java.util.Collections;
-import java.util.List;
-import org.sonar.api.server.ServerSide;
-import org.sonar.api.web.PageDecoration;
-
-/**
- * @since 3.3
- * @deprecated since 6.3 see {@link org.sonar.api.web.page.PageDefinition}. This class has not effect.
- */
-@ServerSide
-@Deprecated
-public final class PageDecorations {
-
- private final PageDecoration[] decorations;
-
- public PageDecorations(List<PageDecoration> decorations) {
- this.decorations = decorations.toArray(new PageDecoration[decorations.size()]);
- }
-
- public PageDecorations() {
- this(Collections.emptyList());
- }
-
- public PageDecoration[] get() {
- return decorations;// NOSONAR expose internal representation
- }
-}
+++ /dev/null
-/*
- * SonarQube
- * Copyright (C) 2009-2020 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program 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.
- *
- * This program 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 this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-package org.sonar.server.ui;
-
-import org.junit.Rule;
-import org.junit.Test;
-import org.sonar.api.utils.log.LogTester;
-import org.sonar.api.utils.log.LoggerLevel;
-import org.sonar.api.web.Page;
-import org.sonar.api.web.View;
-import org.sonar.api.web.Widget;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-public class DeprecatedViewsTest {
-
- @Rule
- public LogTester logger = new LogTester();
-
- private DeprecatedViews underTest;
-
- @Test
- public void no_log_when_no_views() {
- underTest = new DeprecatedViews();
- underTest.start();
-
- assertThat(logger.logs()).isEmpty();
- }
-
- @Test
- public void log_one_warning_by_view() {
- underTest = new DeprecatedViews(new View[] {
- new FakePage("governance/my_page", "My Page"),
- new FakeWidget("governance/my_widget", "My Widget")});
- assertThat(logger.logs()).isEmpty();
-
- underTest.start();
-
- assertThat(logger.logs()).hasSize(2);
- assertThat(logger.logs(LoggerLevel.WARN)).containsExactly(
- "Page 'My Page' (governance/my_page) is ignored. See org.sonar.api.web.page.PageDefinition to define pages.",
- "Widget 'My Widget' (governance/my_widget) is ignored. See org.sonar.api.web.page.PageDefinition to define pages.");
- }
-
- private static final class FakeWidget implements Widget {
- private final String id;
- private final String name;
-
- private FakeWidget(String id, String name) {
- this.id = id;
- this.name = name;
- }
-
- @Override
- public String getId() {
- return id;
- }
-
- @Override
- public String getTitle() {
- return name;
- }
- }
-
- private static class FakePage implements Page {
- private final String id;
- private final String name;
-
- FakePage(String id, String name) {
- this.id = id;
- this.name = name;
- }
-
- @Override
- public String getId() {
- return id;
- }
-
- @Override
- public String getTitle() {
- return name;
- }
- }
-}
+++ /dev/null
-/*
- * SonarQube
- * Copyright (C) 2009-2020 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program 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.
- *
- * This program 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 this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-package org.sonar.server.ui;
-
-import org.junit.Test;
-import org.sonar.api.web.PageDecoration;
-
-import java.util.Arrays;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.Mockito.mock;
-
-public class PageDecorationsTest {
-
- @Test
- public void should_not_fail_if_no_decorations() {
- assertThat(new PageDecorations().get()).isEmpty();
- }
-
- @Test
- public void should_register_decorations() {
- PageDecoration deco1 = mock(PageDecoration.class);
- PageDecoration deco2 = mock(PageDecoration.class);
-
- PageDecorations decorations = new PageDecorations(Arrays.asList(deco1, deco2));
-
- assertThat(decorations.get()).hasSize(2);
- }
-}
import org.sonar.server.telemetry.TelemetryDataJsonWriter;
import org.sonar.server.telemetry.TelemetryDataLoaderImpl;
import org.sonar.server.text.MacroInterpreter;
-import org.sonar.server.ui.DeprecatedViews;
-import org.sonar.server.ui.PageDecorations;
import org.sonar.server.ui.PageRepository;
import org.sonar.server.ui.WebAnalyticsLoaderImpl;
import org.sonar.server.ui.ws.NavigationWsModule;
LogOAuthWarning.class,
PluginDownloader.class,
PluginUninstaller.class,
- DeprecatedViews.class,
PageRepository.class,
ResourceTypes.class,
DefaultResourceTypes.get(),
SettingsChangeNotifier.class,
- PageDecorations.class,
ServerWs.class,
BackendCleanup.class,
IndexDefinitions.class,
*/
String CATEGORY_SECURITY = "security";
- /**
- * @since 2.11
- * @deprecated since 6.0
- */
- @Deprecated
- String CATEGORY_JAVA = "java";
-
/**
* @since 3.3
*/
String CORE_FORCE_AUTHENTICATION_PROPERTY = "sonar.forceAuthentication";
boolean CORE_FORCE_AUTHENTICATION_DEFAULT_VALUE = false;
- /**
- * @deprecated since 6.3. This feature is not supported anymore
- * @see <a href="https://jira.sonarsource.com/browse/SONAR-7762">SONAR-7762/a>
- */
- @Deprecated
- String CORE_ALLOW_USERS_TO_SIGNUP_PROPERTY = "sonar.allowUsersToSignUp";
-
- /**
- * @deprecated since 6.4. The default group is hardcoded to 'sonar-users'
- * @see <a href="https://jira.sonarsource.com/browse/SONAR-9014">SONAR-9014/a>
- */
- @Deprecated
- String CORE_DEFAULT_GROUP = "sonar.defaultGroup";
-
- /**
- * @deprecated since 6.4. The default group is hardcoded to 'sonar-users'
- * @see <a href="https://jira.sonarsource.com/browse/SONAR-9014">SONAR-9014/a>
- */
- @Deprecated
- String CORE_DEFAULT_GROUP_DEFAULT_VALUE = "sonar-users";
-
- boolean CORE_ALLOW_USERS_TO_SIGNUP_DEAULT_VALUE = false;
-
/**
* @deprecated since 2.14. See http://jira.sonarsource.com/browse/SONAR-3153. Replaced by {@link #CORE_AUTHENTICATOR_REALM}.
*/
*/
String SERVER_BASE_URL = "sonar.core.serverBaseURL";
- /**
- * @see #SERVER_BASE_URL
- * @since 2.10
- * @deprecated since 5.6. This constant default value is incorrect if a host and/or a port and/or a context have been configured.
- * The correct default value when {@link #SERVER_BASE_URL} is not set is provided by {@link Server#getURL()}.
- */
- @Deprecated
- String SERVER_BASE_URL_DEFAULT_VALUE = "http://localhost:9000";
-
/**
* @since 2.11
* @deprecated since 6.7
*/
String CPD_EXCLUSIONS = "sonar.cpd.exclusions";
- /**
- * @since 2.11
- * @deprecated in 6.7. See {@link Server#getPermanentServerId()}
- */
- @Deprecated
- String ORGANISATION = "sonar.organisation";
-
- /**
- * @since 2.11
- * @deprecated in 6.7. See {@link Server#getPermanentServerId()}
- */
- @Deprecated
- String PERMANENT_SERVER_ID = "sonar.server_id";
-
- /**
- * @since 2.11
- * @deprecated in 6.7. See {@link Server#getPermanentServerId()}
- */
- @Deprecated
- String SERVER_ID_IP_ADDRESS = "sonar.server_id.ip_address";
-
/**
* @since 3.3
*/
// TODO remove?
String PROFILING_LOG_PROPERTY = "sonar.showProfiling";
- /**
- * @since 4.0
- * @deprecated replaced in 5.2 by the permission 'provisioning'
- */
- @Deprecated
- String CORE_PREVENT_AUTOMATIC_PROJECT_CREATION = "sonar.preventAutoProjectCreation";
-
/**
* @since 4.0
*/
String GLOBAL_WORKING_DIRECTORY = "sonar.globalWorking.directory";
String GLOBAL_WORKING_DIRECTORY_DEFAULT_VALUE = "";
- /**
- * @since 4.2
- * @deprecated no more used since 5.5
- */
- @Deprecated
- String CORE_AUTHENTICATOR_LOCAL_USERS = "sonar.security.localUsers";
-
- /**
- * @since 4.0
- * @deprecated no more used since 6.3. See https://jira.sonarsource.com/browse/SONAR-8610
- */
- @Deprecated
- String HOURS_IN_DAY = "sonar.technicalDebt.hoursInDay";
-
- /**
- * @since 4.5
- * @deprecated no used anymore since 5.2
- */
- @Deprecated
- String SIZE_METRIC = "sonar.technicalDebt.sizeMetric";
-
/**
* @since 4.5
*/
*/
String SCM_PROVIDER_KEY = "sonar.scm.provider";
- /**
- * @since 5.1
- * @deprecated since 6.3. No longer taken into consideration as all files are always imported.
- */
- @Deprecated
- String IMPORT_UNKNOWN_FILES_KEY = "sonar.import_unknown_files";
-
/**
* @since 5.1
*/
@Immutable
@Deprecated
public class SonarQubeVersion {
- /**
- * Constant for version 5.5
- * @deprecated in 6.0. Please define your own constants.
- */
- @Deprecated
- public static final Version V5_5 = Version.create(5, 5);
-
- /**
- * Constant for version 5.6
- * @deprecated in 6.0. Please define your own constants.
- */
- @Deprecated
- public static final Version V5_6 = Version.create(5, 6);
private final Version version;
* Main component that provides translation facilities.
*
* @since 2.10
- * @deprecated since 7.8 as plugins as no reason to use it anymore
+ * @deprecated since 7.8 as plugins have no reason to use it anymore
*/
@ServerSide
@ComputeEngineSide
/**
* Return the public root url, without trailing slash, for instance : https://nemo.sonarqube.org.
- * Default value is {@link org.sonar.api.CoreProperties#SERVER_BASE_URL_DEFAULT_VALUE}
*
* @since 5.4
*/
*/
package org.sonar.api.scan.issue.filter;
-import java.util.Date;
import javax.annotation.CheckForNull;
import javax.annotation.concurrent.ThreadSafe;
import org.sonar.api.batch.fs.TextRange;
@CheckForNull
Double gap();
- /**
- * @deprecated since 6.6 useless since creation date is computed on server side
- */
- @Deprecated
- Date creationDate();
-
/**
* @deprecated since 7.6 filtering issue should not depend on the key
*/
+++ /dev/null
-/*
- * SonarQube
- * Copyright (C) 2009-2020 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program 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.
- *
- * This program 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 this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-package org.sonar.api.web;
-
-/**
- * @since 1.10
- * @deprecated override org.sonar.api.web.AbstractRubyTemplate and implement org.sonar.api.web.RubyRailsWidget
- */
-@Deprecated
-public abstract class AbstractDashboardWidget extends AbstractRubyTemplate implements RubyRailsWidget {
-
- @Override
- public String getId() {
- return getClass().getSimpleName();
- }
-
- @Override
- public String getTitle() {
- return getClass().getSimpleName();
- }
-}
+++ /dev/null
-/*
- * SonarQube
- * Copyright (C) 2009-2020 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program 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.
- *
- * This program 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 this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-package org.sonar.api.web;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.IOUtils;
-import org.sonar.api.utils.SonarException;
-
-import static java.nio.charset.StandardCharsets.UTF_8;
-
-/**
- * @since 1.11
- * @deprecated since 6.3. This class is ignored.
- */
-@Deprecated
-public abstract class AbstractRubyTemplate {
-
- private String cache = null;
-
- public String getTemplate() {
- String result = loadTemplateFromCache();
- try {
- if (result == null) {
- result = loadTemplateFromClasspath();
- }
- if (result == null) {
- result = loadTemplateFromAbsolutePath();
- }
- return result;
-
- } catch (IOException e) {
- throw new SonarException("Can not read the file " + getTemplatePath(), e);
- }
- }
-
- private String loadTemplateFromAbsolutePath() throws IOException {
- File file = new File(getTemplatePath());
- if (file.exists()) {
- // the result is not cached
- return FileUtils.readFileToString(file, UTF_8);
- }
- throw new FileNotFoundException(getTemplatePath());
- }
-
- private String loadTemplateFromClasspath() throws IOException {
- InputStream input = getClass().getResourceAsStream(getTemplatePath());
- try {
- if (input != null) {
- cache = IOUtils.toString(input);
- return cache;
- }
- } finally {
- IOUtils.closeQuietly(input);
- }
- return null;
- }
-
- protected String loadTemplateFromCache() {
- return cache;
- }
-
- /**
- * the path of the template. In production environment, it's the classloader path (for example "/org/sonar/my_template.erb").
- * In dev mode, it's useful to return an absolute path (for example C:/temp/my_template.erb). In such a case the result is not cached.
- */
- protected abstract String getTemplatePath();
-
-}
+++ /dev/null
-/*
- * SonarQube
- * Copyright (C) 2009-2020 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program 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.
- *
- * This program 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 this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-package org.sonar.api.web;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
-/**
- * Definition of a dashboard.
- * <br>
- * Its name and description can be retrieved using the i18n mechanism, using the keys "dashboard.<id>.name" and
- * "dashboard.<id>.description".
- *
- * @since 2.13
- * @deprecated since 6.2, this extension is ignored as dashboards have been removed
- */
-@Deprecated
-public final class Dashboard {
-
- private String description;
- private DashboardLayout layout = DashboardLayout.TWO_COLUMNS;
- private Map<Integer, List<Widget>> widgetsByColumn = new HashMap<>();
- private boolean activated = true;
- private boolean global = false;
-
- private Dashboard() {
- }
-
- /**
- * Creates a new {@link Dashboard}.
- */
- public static Dashboard create() {
- return new Dashboard();
- }
-
- /**
- * Add a widget with the given parameters, and return the newly created {@link Widget} object if one wants to add parameters to it.
- * <p>The widget ids are listed by the web service /api/widgets
- *
- * @param widgetId id of an existing widget
- * @param columnId column starts with 1. The widget is ignored if the column id does not match the layout.
- */
- public Widget addWidget(String widgetId, int columnId) {
- if (columnId < 1) {
- throw new IllegalArgumentException("Widget column starts with 1");
- }
-
- Widget widget = new Widget(widgetId);
- widgetsByColumn.computeIfAbsent(columnId, x -> new ArrayList<>()).add(widget);
- return widget;
- }
-
- public Collection<Widget> getWidgets() {
- return widgetsByColumn.values().stream().flatMap(List::stream).collect(Collectors.toList());
- }
-
- public List<Widget> getWidgetsOfColumn(int columnId) {
- return widgetsByColumn.get(columnId);
- }
-
- /**
- * Returns the description of the dashboard.
- *
- * @return the description
- */
- public String getDescription() {
- return description;
- }
-
- /**
- * Sets the description of the dashboard.
- * <br>
- * Note: you should use the i18n mechanism for the description.
- *
- * @param description the description to set
- */
- public Dashboard setDescription(String description) {
- this.description = description;
- return this;
- }
-
- /**
- * Returns the layout. Default value is the 2 columns mode with width 50%/50%.
- *
- * @return the layout
- */
- public DashboardLayout getLayout() {
- return layout;
- }
-
- public Dashboard setLayout(DashboardLayout dl) {
- if (dl == null) {
- throw new IllegalArgumentException("The layout can not be null");
- }
- this.layout = dl;
- return this;
- }
-
- /**
- * A dashboard is global when it doesn't display information from a project but rather more general information.
- * <p>Before version 3.1 no dashboard was global.
- * <p>Since version 6.1, project dashboards are dropped. Project dashboards (global=false) are ignored.</p>
- *
- * @since 3.1
- */
- public boolean isGlobal() {
- return global;
- }
-
- /**
- * A dashboard is global when it doesn't display information from a project but rather more general information.
- * <p>Before version 3.1 no dashboard was global.</p>
- * <p>Since version 6.1, project dashboards are dropped. Project dashboards (global=false) are ignored.</p>
- *
- * @since 3.1
- */
- public Dashboard setGlobal(boolean global) {
- this.global = global;
- return this;
- }
-
- /**
- * A dashboard can be activated for all anonymous users or users who haven't configured their own dashboards.
- * <p>Before version 3.1 every dashboard created through this extension point was automatically activated.
- * This is still the default behavior.
- *
- * @since 3.1
- */
- public boolean isActivated() {
- return activated;
- }
-
- /**
- * Set whether the dashboard is activated for all anonymous users or users who haven't configured their own dashboards.
- *
- * @since 3.1
- */
- public Dashboard setActivated(boolean activated) {
- this.activated = activated;
- return this;
- }
-
- /**
- * Note that this class is an inner class to avoid confusion with the extension point org.sonar.api.web.Widget.
- */
- public static final class Widget {
- private String id;
- private Map<String, String> properties;
-
- Widget(String id) {
- this.id = id;
- this.properties = new HashMap<>();
- }
-
- public Widget setProperty(String key, String value) {
- properties.put(key, value);
- return this;
- }
-
- /**
- * Returns the properties of this widget.
- *
- * @return the properties
- */
- public Map<String, String> getProperties() {
- return properties;
- }
-
- public String getProperty(String key) {
- return properties.get(key);
- }
-
- /**
- * Returns the identifier of this widget.
- *
- * @return the id
- */
- public String getId() {
- return id;
- }
- }
-}
+++ /dev/null
-/*
- * SonarQube
- * Copyright (C) 2009-2020 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program 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.
- *
- * This program 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 this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-package org.sonar.api.web;
-
-/**
- * Possible layouts for a dashboard.
- *
- * @since 2.13
- * @deprecated since 6.2, this extension is ignored as dashboards have been removed
- */
-@Deprecated
-public enum DashboardLayout {
-
- /**
- * Only 1 column that take all the page
- */
- ONE_COLUMN("100%", 1),
-
- /**
- * 2 columns of the same width
- */
- TWO_COLUMNS("50%-50%", 2),
-
- /**
- * 2 columns with the first one smaller than the second
- */
- TWO_COLUMNS_30_70("30%-70%", 2),
-
- /**
- * 2 columns with the first one bigger than the second
- */
- TWO_COLUMNS_70_30("70%-30%", 2),
-
- /**
- * 3 columns of the same width
- */
- TREE_COLUMNS("33%-33%-33%", 3);
-
- private String code;
- private int columns;
-
- DashboardLayout(String code, int columns) {
- this.code = code;
- this.columns = columns;
- }
-
- public String getCode() {
- return code;
- }
-
- public int getColumns() {
- return columns;
- }
-
- @Override
- public String toString() {
- return code;
- }
-
-}
+++ /dev/null
-/*
- * SonarQube
- * Copyright (C) 2009-2020 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program 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.
- *
- * This program 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 this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-package org.sonar.api.web;
-
-import org.sonar.api.ExtensionPoint;
-import org.sonar.api.server.ServerSide;
-
-/**
- * This extension point must be implemented to define a new dashboard.
- *
- * @since 2.13
- * @deprecated since 6.2, this extension is ignored as dashboards have been removed
- */
-@Deprecated
-@ServerSide
-@ExtensionPoint
-public abstract class DashboardTemplate {
-
- /**
- * Returns the {@link Dashboard} object that represents the dashboard to use.
- *
- * @return the dashboard
- */
- public abstract Dashboard createDashboard();
-
- /**
- * Dashboard name
- */
- public abstract String getName();
-}
+++ /dev/null
-/*
- * SonarQube
- * Copyright (C) 2009-2020 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program 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.
- *
- * This program 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 this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-package org.sonar.api.web;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * @since 2.0
- * @deprecated since 6.3 see {@link org.sonar.api.web.page.PageDefinition}. This class is ignored.
- */
-@Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.TYPE)
-@Deprecated
-public @interface DefaultTab {
-
- // default value is all metrics
- String[] metrics() default {};
-
-}
+++ /dev/null
-/*
- * SonarQube
- * Copyright (C) 2009-2020 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program 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.
- *
- * This program 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 this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-package org.sonar.api.web;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * @deprecated since 6.3 see {@link org.sonar.api.web.page.PageDefinition}. This class is ignored.
- */
-@Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.TYPE)
-@Deprecated
-public @interface Description {
- String value();
-}
+++ /dev/null
-/*
- * SonarQube
- * Copyright (C) 2009-2020 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program 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.
- *
- * This program 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 this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-package org.sonar.api.web;
-
-import org.sonar.api.ExtensionPoint;
-import org.sonar.api.server.ServerSide;
-
-/**
- * @since 1.10
- * @deprecated since 6.3. This extension is ignored.
- */
-@ServerSide
-@ExtensionPoint
-@Deprecated
-public interface Footer {
-
- /**
- * Static HTML
- */
- String getHtml();
-}
+++ /dev/null
-/*
- * SonarQube
- * Copyright (C) 2009-2020 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program 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.
- *
- * This program 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 this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-package org.sonar.api.web;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * The Page is displayed only in listed sections. This annotation is ignored on Widgets.
- *
- * @since 1.11
- * @deprecated since 6.3 see {@link org.sonar.api.web.page.PageDefinition}. This class is ignored.
- */
-@Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.TYPE)
-@Deprecated
-public @interface NavigationSection {
-
- String HOME = "home";
- String RESOURCE = "resource";
-
- /**
- * Support removed in 5.1. See https://jira.sonarsource.com/browse/SONAR-6016.
- * @deprecated in 4.5, as it costs too much to maintain and update.
- * @see <a href="https://jira.sonarsource.com/browse/SONAR-5321">SONAR-5321</a>
- */
- @Deprecated
- String RESOURCE_TAB = "resource_tab";
-
- String CONFIGURATION = "configuration";
-
- /**
- * Only Ruby and rails application. See "Extend Web Application" section of https://redirect.sonarsource.com/doc/extension-guide.html.
- * Use the resource parameter in order to get the current resource.
- *
- * @since 3.6
- */
- String RESOURCE_CONFIGURATION = "resource_configuration";
-
- String[] value() default { HOME };
-
-}
+++ /dev/null
-/*
- * SonarQube
- * Copyright (C) 2009-2020 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program 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.
- *
- * This program 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 this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-package org.sonar.api.web;
-
-/**
- * @since 2.0
- * @deprecated since 6.3 see {@link org.sonar.api.web.page.PageDefinition}. This class is ignored.
- */
-@Deprecated
-public interface Page extends View {
-
-}
+++ /dev/null
-/*
- * SonarQube
- * Copyright (C) 2009-2020 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program 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.
- *
- * This program 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 this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-package org.sonar.api.web;
-
-import org.sonar.api.ExtensionPoint;
-import org.sonar.api.server.ServerSide;
-
-/**
- * @since 3.3
- * @deprecated since 6.3 see {@link org.sonar.api.web.page.PageDefinition}. This class is ignored.
- */
-@ServerSide
-@ExtensionPoint
-@Deprecated
-public abstract class PageDecoration extends AbstractRubyTemplate {
-
-}
+++ /dev/null
-/*
- * SonarQube
- * Copyright (C) 2009-2020 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program 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.
- *
- * This program 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 this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-package org.sonar.api.web;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * The view is displayed only if the selected resource has the same language.
- *
- * @since 1.11
- * @deprecated since 6.3 see {@link org.sonar.api.web.page.PageDefinition}. This class is ignored.
- */
-@Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.TYPE)
-@Deprecated
-public @interface ResourceLanguage {
-
- /**
- * An empty value means all resource scopes.
- */
- String[] value() default {};
-
-}
-
+++ /dev/null
-/*
- * SonarQube
- * Copyright (C) 2009-2020 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program 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.
- *
- * This program 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 this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-package org.sonar.api.web;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * The view is displayed only if the selected resource has the same qualifier.
- *
- * @since 1.11
- * @deprecated since 6.3 see {@link org.sonar.api.web.page.PageDefinition}. This class is ignored.
- */
-@Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.TYPE)
-@Deprecated
-public @interface ResourceQualifier {
-
- /**
- * An empty value means all resource scopes.
- */
- String[] value() default {};
-
-}
-
+++ /dev/null
-/*
- * SonarQube
- * Copyright (C) 2009-2020 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program 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.
- *
- * This program 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 this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-package org.sonar.api.web;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-
-/**
- * The view is displayed only if the selected resource has the same qualifier.
- *
- * @since 1.11
- * @deprecated since 6.3 see {@link org.sonar.api.web.page.PageDefinition}. This class is ignored.
- */
-@Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.TYPE)
-@Deprecated
-public @interface ResourceScope {
-
- /**
- * An empty value means all resource scopes.
- */
- String[] value() default {};
-
-}
+++ /dev/null
-/*
- * SonarQube
- * Copyright (C) 2009-2020 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program 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.
- *
- * This program 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 this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-package org.sonar.api.web;
-
-/**
- * @since 1.11
- * @deprecated since 6.3 see {@link org.sonar.api.web.page.PageDefinition}. This class is ignored.
- */
-@Deprecated
-public interface RubyRailsPage extends Page {
-
- /**
- * @return Content of the Ruby on Rails template
- */
- String getTemplate();
-
-}
+++ /dev/null
-/*
- * SonarQube
- * Copyright (C) 2009-2020 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program 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.
- *
- * This program 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 this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-package org.sonar.api.web;
-
-/**
- * Widget in project dashboard page. It's recommended to also extend AbstractRubyTemplate :
- * <br>
- * <code>
- * public class MyWidget extends AbstractRubyTemplate implements RubyRailsWidget {
- * protected String getTemplatePath() {
- * return "/myplugin/my_template.erb";
- * }
- * }
- * </code>
- *
- * @since 1.11
- * @deprecated since 6.2, this extension is ignored as dashboards have been removed
- */
-@Deprecated
-public interface RubyRailsWidget extends Widget {
- /**
- * @return content of the Ruby on Rails template
- */
- String getTemplate();
-}
+++ /dev/null
-/*
- * SonarQube
- * Copyright (C) 2009-2020 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program 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.
- *
- * This program 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 this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-package org.sonar.api.web;
-
-/**
- * @since 1.10
- * @deprecated add annotation org.sonar.api.web.NavigationSection to View extensions
- */
-@Deprecated
-public enum Section {
- HOME, PROJECT, CONFIGURATION
-}
+++ /dev/null
-/*
- * SonarQube
- * Copyright (C) 2009-2020 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program 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.
- *
- * This program 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 this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-package org.sonar.api.web;
-
-import org.sonar.api.ExtensionPoint;
-import org.sonar.api.server.ServerSide;
-
-/**
- * @since 1.11
- * @deprecated since 6.3 see {@link org.sonar.api.web.page.PageDefinition}. This class is ignored.
- */
-@ServerSide
-@ExtensionPoint
-@Deprecated
-public interface View {
-
- String getId();
-
- String getTitle();
-}
+++ /dev/null
-/*
- * SonarQube
- * Copyright (C) 2009-2020 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program 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.
- *
- * This program 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 this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-package org.sonar.api.web;
-
-import org.sonar.api.ExtensionPoint;
-import org.sonar.api.server.ServerSide;
-
-/**
- * Interface to create a web service extension point
- *
- * @since 1.11
- * @deprecated in 4.2. Replaced by {@link org.sonar.api.server.ws.WebService}
- */
-@Deprecated
-@ServerSide
-@ExtensionPoint
-public interface Webservice {
-
- /**
- * @return The id of the web service
- */
- String getId();
-
-}
+++ /dev/null
-/*
- * SonarQube
- * Copyright (C) 2009-2020 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program 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.
- *
- * This program 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 this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-package org.sonar.api.web;
-
-/**
- * @since 1.11
- * @deprecated since 6.2, this extension is ignored as dashboards have been removed
- */
-@Deprecated
-public interface Widget extends View {
-}
+++ /dev/null
-/*
- * SonarQube
- * Copyright (C) 2009-2020 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program 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.
- *
- * This program 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 this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-package org.sonar.api.web;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * @since 2.4
- * @deprecated since 6.2, this extension is ignored as dashboards have been removed
- */
-@Deprecated
-@Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.TYPE)
-public @interface WidgetCategory {
- String[] value();
-}
+++ /dev/null
-/*
- * SonarQube
- * Copyright (C) 2009-2020 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program 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.
- *
- * This program 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 this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-package org.sonar.api.web;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * @since 2.4
- * @deprecated since 6.2, this extension is ignored as dashboards have been removed
- */
-@Deprecated
-@Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.TYPE)
-public @interface WidgetLayout {
- WidgetLayoutType value();
-}
+++ /dev/null
-/*
- * SonarQube
- * Copyright (C) 2009-2020 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program 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.
- *
- * This program 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 this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-package org.sonar.api.web;
-
-/**
- * @since 2.4
- * @deprecated since 6.2, this extension is ignored as dashboards have been removed
- */
-@Deprecated
-public enum WidgetLayoutType {
- DEFAULT, NONE
-}
+++ /dev/null
-/*
- * SonarQube
- * Copyright (C) 2009-2020 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program 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.
- *
- * This program 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 this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-package org.sonar.api.web;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-
-/**
- * @deprecated since 6.2, this extension is ignored as dashboards have been removed
- */
-@Deprecated
-@Retention(RetentionPolicy.RUNTIME)
-public @interface WidgetProperties {
- WidgetProperty[] value() default {};
-}
+++ /dev/null
-/*
- * SonarQube
- * Copyright (C) 2009-2020 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program 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.
- *
- * This program 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 this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-package org.sonar.api.web;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * @deprecated since 6.2, this extension is ignored as dashboards have been removed
- */
-@Deprecated
-@Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.TYPE)
-public @interface WidgetProperty {
-
- String key();
-
- WidgetPropertyType type() default WidgetPropertyType.STRING;
-
- String defaultValue() default "";
-
- String description() default "";
-
- boolean optional() default true;
-
- /**
- * @since 3.3 Options for property of type {@link WidgetPropertyType#METRIC}.
- *
- * If no option is specified, any metric will match.
- * If options are specified, all must match for the metric to be displayed.
- * Three types of filter are supported <code>key:REGEXP</code>, <code>domain:REGEXP</code> and <code>type:comma_separated__list_of_types</code>.
- * For example <code>key:new_.*</code> will match any metric which key starts by <code>new_</code>.
- * For example <code>type:INT,FLOAT</code> will match any metric of type <code>INT</code> or <code>FLOAT</code>.
- * For example <code>type:NUMERIC</code> will match any metric of numerictype.
- *
- * @since 3.5 Options for property of type {@link WidgetPropertyType#SINGLE_SELECT_LIST}.
- * For example {"property_1", "property_3", "property_3"}).
- *
- */
- String[] options() default {};
-}
+++ /dev/null
-/*
- * SonarQube
- * Copyright (C) 2009-2020 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program 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.
- *
- * This program 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 this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-package org.sonar.api.web;
-
-/**
- * @deprecated since 6.2, this extension is ignored as dashboards have been removed
- */
-@Deprecated
-public enum WidgetPropertyType {
- /**
- * Integer value, positive or negative
- */
- INTEGER,
-
- /**
- * True/False
- */
- BOOLEAN,
-
- /**
- * Floating point number
- */
- FLOAT,
-
- /**
- * Basic single line input field
- */
- STRING,
-
- /**
- * Sonar Metric
- *
- * @since 2.10
- */
- METRIC,
-
- /**
- * Measure Filter id
- *
- * @since 3.1
- */
- FILTER,
-
- /**
- * Issue Filter id
- *
- * @since 3.7
- */
- ISSUE_FILTER,
-
- /**
- * Multiple line text-area
- *
- * @since 3.2
- */
- TEXT,
-
- /**
- * Variation of {#STRING} with masked characters
- *
- * @since 3.2
- */
- PASSWORD,
-
- /**
- * Regular expression
- *
- * @since 3.2
- */
- REGULAR_EXPRESSION,
-
- /**
- * Single select list with a list of options
- *
- * @since 3.5
- */
- SINGLE_SELECT_LIST
-}
+++ /dev/null
-/*
- * SonarQube
- * Copyright (C) 2009-2020 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program 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.
- *
- * This program 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 this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-package org.sonar.api.web;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * Depending on its scope, a widget can be available for project dashboards <code>(value = "PROJECT")</code>,
- * global dashboards <code>(value = "GLOBAL")</code> or both <code>(value = {"PROJECT", "GLOBAL"})</code>.
- *
- * <p>Before version 3.1 all widget had a scope <code>"PROJECT"</code>. If a widget is not annotated with @WidgetScope,
- * then is is assumed project scoped.
- *
- * @since 3.1
-/**
- * @deprecated since 6.2, this extension is ignored as dashboards have been removed
- */
-@Deprecated
-@Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.TYPE)
-public @interface WidgetScope {
- String PROJECT = "PROJECT";
- String GLOBAL = "GLOBAL";
-
- String[] value() default PROJECT;
-}
+++ /dev/null
-/*
- * SonarQube
- * Copyright (C) 2009-2020 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program 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.
- *
- * This program 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 this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-package org.sonar.api.web;
-
-import org.junit.Test;
-import org.sonar.api.utils.SonarException;
-
-import java.net.URL;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-public class AbstractRubyTemplateTest {
-
- @Test
- public void useCacheWhenTemplateIsInClassloader() {
- final AbstractRubyTemplate template = new AbstractRubyTemplate() {
- @Override
- protected String getTemplatePath() {
- return "/org/sonar/api/web/AbstractRubyTemplateTest/template.erb";
- }
- };
-
- assertThat(template.loadTemplateFromCache()).isNull();
- assertThat(template.getTemplate()).isEqualTo("ok");
- assertThat(template.loadTemplateFromCache()).isEqualTo("ok");
- }
-
- @Test
- public void doNotCacheWhenAbsolutePath() {
- final AbstractRubyTemplate template = new AbstractRubyTemplate() {
- @Override
- protected String getTemplatePath() {
- final URL url = AbstractRubyTemplateTest.class.getResource("/org/sonar/api/web/AbstractRubyTemplateTest/template.erb");
- return url.getPath();
- }
- };
-
- assertThat(template.loadTemplateFromCache()).isNull();
- assertThat(template.getTemplate()).isEqualTo("ok");
- assertThat(template.loadTemplateFromCache()).isNull();
- }
-
- @Test(expected = SonarException.class)
- public void failIfTemplateNotFound() {
- final AbstractRubyTemplate template = new AbstractRubyTemplate() {
- @Override
- protected String getTemplatePath() {
- return "/unknown.erb";
- }
- };
-
- template.getTemplate();
- }
-}
+++ /dev/null
-/*
- * SonarQube
- * Copyright (C) 2009-2020 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program 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.
- *
- * This program 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 this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-package org.sonar.api.web;
-
-import org.junit.Test;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-public class DashboardTest {
-
- @Test
- public void shouldCreateDashboard() {
- Dashboard dashboard = Dashboard.create();
- assertThat(dashboard.getLayout()).isEqualTo(DashboardLayout.TWO_COLUMNS);
- assertThat(dashboard.getDescription()).isNull();
- assertThat(dashboard.getWidgets()).hasSize(0);
- }
-
- @Test
- public void shouldAddWidgets() {
- Dashboard dashboard = Dashboard.create();
- Dashboard.Widget mostViolatedRules = dashboard.addWidget("most_violated_rules", 1);
- assertThat(mostViolatedRules.getId()).isEqualTo("most_violated_rules");
- assertThat(dashboard.getWidgets()).hasSize(1);
- assertThat(dashboard.getWidgetsOfColumn(1)).hasSize(1);
-
- dashboard.addWidget("hotspots", 1);
- assertThat(dashboard.getWidgets()).hasSize(2);
- assertThat(dashboard.getWidgetsOfColumn(1)).hasSize(2);
-
- // widgets are sorted by order of insertion
- assertThat(dashboard.getWidgetsOfColumn(1).get(1).getId()).isEqualTo("hotspots");
- }
-
- @Test
- public void shouldAddWidgetsOnDifferentColumns() {
- Dashboard dashboard = Dashboard.create();
-
- dashboard.addWidget("most_violated_rules", 1);
- assertThat(dashboard.getWidgets().size()).isEqualTo(1);
- assertThat(dashboard.getWidgetsOfColumn(1).size()).isEqualTo(1);
-
- dashboard.addWidget("hotspots", 2);
- assertThat(dashboard.getWidgets().size()).isEqualTo(2);
- assertThat(dashboard.getWidgetsOfColumn(2).size()).isEqualTo(1);
- }
-
- @Test
- public void shouldAddSeveralTimesTheSameWidget() {
- Dashboard dashboard = Dashboard.create();
- dashboard.addWidget("most_violated_rules", 1);
- dashboard.addWidget("most_violated_rules", 1).setProperty("foo", "bar");
-
- assertThat(dashboard.getWidgets().size()).isEqualTo(2);
- assertThat(dashboard.getWidgetsOfColumn(1).get(0).getProperties().size()).isEqualTo(0);
- assertThat(dashboard.getWidgetsOfColumn(1).get(1).getProperty("foo")).isEqualTo("bar");
- }
-
- @Test
- public void shouldSetWidgetProperty() {
- Dashboard dashboard = Dashboard.create();
- Dashboard.Widget widget = dashboard.addWidget("fake-widget", 1);
- widget.setProperty("foo", "bar");
-
- assertThat(widget.getProperties().get("foo")).isEqualTo("bar");
- }
-}
public synchronized DefaultScannerWsClient provide(final RawScannerProperties scannerProps,
final EnvironmentInformation env, GlobalAnalysisMode globalMode, System2 system) {
if (wsClient == null) {
- String url = defaultIfBlank(scannerProps.property("sonar.host.url"), CoreProperties.SERVER_BASE_URL_DEFAULT_VALUE);
+ String url = defaultIfBlank(scannerProps.property("sonar.host.url"), "http://localhost:9000");
HttpConnector.Builder connectorBuilder = HttpConnector.newBuilder();
String timeoutSec = defaultIfBlank(scannerProps.property(READ_TIMEOUT_SEC_PROPERTY), valueOf(DEFAULT_READ_TIMEOUT_SEC));
*/
package org.sonar.scanner.issue;
-import java.util.Date;
import javax.annotation.concurrent.ThreadSafe;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
import org.sonar.api.batch.fs.InputComponent;
import org.sonar.api.batch.fs.TextRange;
-import org.sonar.api.rule.RuleKey;
-import org.sonar.api.scan.issue.filter.FilterableIssue;
-import org.sonar.scanner.ProjectInfo;
import org.sonar.api.batch.fs.internal.DefaultInputProject;
import org.sonar.api.batch.fs.internal.DefaultTextPointer;
import org.sonar.api.batch.fs.internal.DefaultTextRange;
+import org.sonar.api.rule.RuleKey;
+import org.sonar.api.scan.issue.filter.FilterableIssue;
import org.sonar.scanner.protocol.output.ScannerReport.Issue;
@ThreadSafe
public class DefaultFilterableIssue implements FilterableIssue {
private final Issue rawIssue;
private final InputComponent component;
- private final ProjectInfo projectInfo;
private DefaultInputProject project;
- public DefaultFilterableIssue(DefaultInputProject project, ProjectInfo projectInfo, Issue rawIssue, InputComponent component) {
+ public DefaultFilterableIssue(DefaultInputProject project, Issue rawIssue, InputComponent component) {
this.project = project;
- this.projectInfo = projectInfo;
this.rawIssue = rawIssue;
this.component = component;
}
return rawIssue.getGap() != 0 ? rawIssue.getGap() : null;
}
- @Override
- public Date creationDate() {
- return projectInfo.getAnalysisDate();
- }
-
@Override
public String projectKey() {
return project.key();
package org.sonar.scanner.issue;
import org.sonar.api.batch.fs.InputComponent;
+import org.sonar.api.batch.fs.internal.DefaultInputProject;
import org.sonar.api.scan.issue.filter.FilterableIssue;
import org.sonar.api.scan.issue.filter.IssueFilter;
import org.sonar.api.scan.issue.filter.IssueFilterChain;
-import org.sonar.scanner.ProjectInfo;
-import org.sonar.api.batch.fs.internal.DefaultInputProject;
import org.sonar.scanner.protocol.output.ScannerReport;
/**
public class IssueFilters {
private final IssueFilterChain filterChain;
private final DefaultInputProject project;
- private final ProjectInfo projectInfo;
- public IssueFilters(DefaultInputProject project, ProjectInfo projectInfo, IssueFilter[] exclusionFilters) {
+ public IssueFilters(DefaultInputProject project, IssueFilter[] exclusionFilters) {
this.project = project;
this.filterChain = new DefaultIssueFilterChain(exclusionFilters);
- this.projectInfo = projectInfo;
}
- public IssueFilters(DefaultInputProject project, ProjectInfo projectInfo) {
- this(project, projectInfo, new IssueFilter[0]);
+ public IssueFilters(DefaultInputProject project) {
+ this(project, new IssueFilter[0]);
}
public boolean accept(InputComponent component, ScannerReport.Issue rawIssue) {
- FilterableIssue fIssue = new DefaultFilterableIssue(project, projectInfo, rawIssue, component);
+ FilterableIssue fIssue = new DefaultFilterableIssue(project, rawIssue, component);
return filterChain.accept(fIssue);
}
*/
package org.sonar.scanner.issue;
-import java.util.Date;
import org.junit.Before;
import org.junit.Test;
import org.sonar.api.batch.fs.InputComponent;
-import org.sonar.scanner.ProjectInfo;
import org.sonar.api.batch.fs.internal.DefaultInputProject;
import org.sonar.scanner.protocol.Constants.Severity;
import org.sonar.scanner.protocol.output.ScannerReport.Issue;
public class DefaultFilterableIssueTest {
private DefaultFilterableIssue issue;
private DefaultInputProject mockedProject;
- private ProjectInfo projectInfo;
private InputComponent component;
private Issue rawIssue;
@Before
public void setUp() {
mockedProject = mock(DefaultInputProject.class);
- projectInfo = mock(ProjectInfo.class);
component = mock(InputComponent.class);
when(component.key()).thenReturn("foo");
}
@Test
public void testRoundTrip() {
rawIssue = createIssue();
- issue = new DefaultFilterableIssue(mockedProject, projectInfo, rawIssue, component);
+ issue = new DefaultFilterableIssue(mockedProject, rawIssue, component);
- when(projectInfo.getAnalysisDate()).thenReturn(new Date(10_000));
when(mockedProject.key()).thenReturn("projectKey");
assertThat(issue.componentKey()).isEqualTo(component.key());
- assertThat(issue.creationDate()).isEqualTo(new Date(10_000));
assertThat(issue.line()).isEqualTo(30);
assertThat(issue.textRange().start().line()).isEqualTo(30);
assertThat(issue.textRange().start().lineOffset()).isEqualTo(10);
@Test
public void nullValues() {
rawIssue = createIssueWithoutFields();
- issue = new DefaultFilterableIssue(mockedProject, projectInfo, rawIssue, component);
+ issue = new DefaultFilterableIssue(mockedProject, rawIssue, component);
assertThat(issue.line()).isNull();
assertThat(issue.gap()).isNull();