From: David Gageot Date: Tue, 19 Jun 2012 09:24:51 +0000 (+0200) Subject: SONARPLUGINS-1948 Move EmailConfiguration to the core X-Git-Tag: 3.2~310 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=38e6273a9d182dc20746c928211269ee304c294f;p=sonarqube.git SONARPLUGINS-1948 Move EmailConfiguration to the core + Rename to EmailSettings + Use Settings instead of Configuration --- diff --git a/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/CorePlugin.java b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/CorePlugin.java index b2d3748cff1..95896ed6c80 100644 --- a/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/CorePlugin.java +++ b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/CorePlugin.java @@ -19,9 +19,7 @@ */ package org.sonar.plugins.core; -import org.sonar.plugins.core.dashboards.MyFavouritesDashboard; - -import com.google.common.collect.Lists; +import com.google.common.collect.ImmutableList; import org.sonar.api.CoreProperties; import org.sonar.api.Extension; import org.sonar.api.Properties; @@ -40,6 +38,7 @@ import org.sonar.plugins.core.charts.XradarChart; import org.sonar.plugins.core.colorizers.JavaColorizerFormat; import org.sonar.plugins.core.dashboards.DefaultDashboard; import org.sonar.plugins.core.dashboards.HotspotsDashboard; +import org.sonar.plugins.core.dashboards.MyFavouritesDashboard; import org.sonar.plugins.core.dashboards.ProjectsDashboard; import org.sonar.plugins.core.dashboards.ReviewsDashboard; import org.sonar.plugins.core.dashboards.TimeMachineDashboard; @@ -289,116 +288,113 @@ import java.util.List; }) public final class CorePlugin extends SonarPlugin { - @SuppressWarnings({"rawtypes", "unchecked"}) + @SuppressWarnings("unchecked") public List> getExtensions() { - List extensions = Lists.newLinkedList(); - - extensions.add(DefaultResourceTypes.class); - extensions.add(UserManagedMetrics.class); - extensions.add(ProjectFileSystemLogger.class); - - // maven - extensions.add(MavenInitializer.class); + return ImmutableList.of( + DefaultResourceTypes.class, + UserManagedMetrics.class, + ProjectFileSystemLogger.class, - // languages - extensions.add(Java.class); + // maven + MavenInitializer.class, - // pages - extensions.add(TestsViewerDefinition.class); - extensions.add(Lcom4Viewer.class); + // languages + Java.class, - // filters - extensions.add(ProjectFilter.class); - extensions.add(TreeMapFilter.class); - extensions.add(MyFavouritesFilter.class); + // pages + TestsViewerDefinition.class, + Lcom4Viewer.class, - // widgets - extensions.add(AlertsWidget.class); - extensions.add(CoverageWidget.class); - extensions.add(ItCoverageWidget.class); - extensions.add(CommentsDuplicationsWidget.class); - extensions.add(DescriptionWidget.class); - extensions.add(ComplexityWidget.class); - extensions.add(RulesWidget.class); - extensions.add(SizeWidget.class); - extensions.add(EventsWidget.class); - extensions.add(CustomMeasuresWidget.class); - extensions.add(TimelineWidget.class); - extensions.add(TimeMachineWidget.class); - extensions.add(HotspotMetricWidget.class); - extensions.add(HotspotMostViolatedResourcesWidget.class); - extensions.add(HotspotMostViolatedRulesWidget.class); - extensions.add(MyReviewsWidget.class); - extensions.add(ProjectReviewsWidget.class); - extensions.add(FalsePositiveReviewsWidget.class); - extensions.add(ReviewsPerDeveloperWidget.class); - extensions.add(PlannedReviewsWidget.class); - extensions.add(UnplannedReviewsWidget.class); - extensions.add(ActionPlansWidget.class); - extensions.add(ReviewsMetricsWidget.class); - extensions.add(TreemapWidget.class); - extensions.add(FilterWidget.class); + // filters + ProjectFilter.class, + TreeMapFilter.class, + MyFavouritesFilter.class, - // dashboards - extensions.add(DefaultDashboard.class); - extensions.add(HotspotsDashboard.class); - extensions.add(ReviewsDashboard.class); - extensions.add(TimeMachineDashboard.class); - extensions.add(ProjectsDashboard.class); - extensions.add(TreemapDashboard.class); - extensions.add(MyFavouritesDashboard.class); + // widgets + AlertsWidget.class, + CoverageWidget.class, + ItCoverageWidget.class, + CommentsDuplicationsWidget.class, + DescriptionWidget.class, + ComplexityWidget.class, + RulesWidget.class, + SizeWidget.class, + EventsWidget.class, + CustomMeasuresWidget.class, + TimelineWidget.class, + TimeMachineWidget.class, + HotspotMetricWidget.class, + HotspotMostViolatedResourcesWidget.class, + HotspotMostViolatedRulesWidget.class, + MyReviewsWidget.class, + ProjectReviewsWidget.class, + FalsePositiveReviewsWidget.class, + ReviewsPerDeveloperWidget.class, + PlannedReviewsWidget.class, + UnplannedReviewsWidget.class, + ActionPlansWidget.class, + ReviewsMetricsWidget.class, + TreemapWidget.class, + FilterWidget.class, - // chart - extensions.add(XradarChart.class); - extensions.add(DistributionBarChart.class); - extensions.add(DistributionAreaChart.class); + // dashboards + DefaultDashboard.class, + HotspotsDashboard.class, + ReviewsDashboard.class, + TimeMachineDashboard.class, + ProjectsDashboard.class, + TreemapDashboard.class, + MyFavouritesDashboard.class, - // colorizers - extensions.add(JavaColorizerFormat.class); + // chart + XradarChart.class, + DistributionBarChart.class, + DistributionAreaChart.class, - // batch - extensions.add(ProfileSensor.class); - extensions.add(ProfileEventsSensor.class); - extensions.add(ProjectLinksSensor.class); - extensions.add(UnitTestDecorator.class); - extensions.add(VersionEventsSensor.class); - extensions.add(CheckAlertThresholds.class); - extensions.add(GenerateAlertEvents.class); - extensions.add(ViolationsDecorator.class); - extensions.add(WeightedViolationsDecorator.class); - extensions.add(ViolationsDensityDecorator.class); - extensions.add(LineCoverageDecorator.class); - extensions.add(CoverageDecorator.class); - extensions.add(BranchCoverageDecorator.class); - extensions.add(ItLineCoverageDecorator.class); - extensions.add(ItCoverageDecorator.class); - extensions.add(ItBranchCoverageDecorator.class); - extensions.add(ApplyProjectRolesDecorator.class); - extensions.add(ExcludedResourceFilter.class); - extensions.add(CommentDensityDecorator.class); - extensions.add(NoSonarFilter.class); - extensions.add(DirectoriesDecorator.class); - extensions.add(FilesDecorator.class); - extensions.add(ReviewNotifications.class); - extensions.add(ReviewWorkflowDecorator.class); - extensions.add(ReferenceAnalysis.class); - extensions.add(ManualMeasureDecorator.class); - extensions.add(ManualViolationInjector.class); - extensions.add(ViolationSeverityUpdater.class); - extensions.add(IndexProjectPostJob.class); - extensions.add(ReviewsMeasuresDecorator.class); + // colorizers + JavaColorizerFormat.class, - // time machine - extensions.add(TendencyDecorator.class); - extensions.add(VariationDecorator.class); - extensions.add(ViolationTrackingDecorator.class); - extensions.add(ViolationPersisterDecorator.class); - extensions.add(NewViolationsDecorator.class); - extensions.add(TimeMachineConfigurationPersister.class); - extensions.add(NewCoverageFileAnalyzer.class); - extensions.add(NewItCoverageFileAnalyzer.class); - extensions.add(NewCoverageAggregator.class); + // batch + ProfileSensor.class, + ProfileEventsSensor.class, + ProjectLinksSensor.class, + UnitTestDecorator.class, + VersionEventsSensor.class, + CheckAlertThresholds.class, + GenerateAlertEvents.class, + ViolationsDecorator.class, + WeightedViolationsDecorator.class, + ViolationsDensityDecorator.class, + LineCoverageDecorator.class, + CoverageDecorator.class, + BranchCoverageDecorator.class, + ItLineCoverageDecorator.class, + ItCoverageDecorator.class, + ItBranchCoverageDecorator.class, + ApplyProjectRolesDecorator.class, + ExcludedResourceFilter.class, + CommentDensityDecorator.class, + NoSonarFilter.class, + DirectoriesDecorator.class, + FilesDecorator.class, + ReviewNotifications.class, + ReviewWorkflowDecorator.class, + ReferenceAnalysis.class, + ManualMeasureDecorator.class, + ManualViolationInjector.class, + ViolationSeverityUpdater.class, + IndexProjectPostJob.class, + ReviewsMeasuresDecorator.class, - return extensions; + // time machine + TendencyDecorator.class, + VariationDecorator.class, + ViolationTrackingDecorator.class, + ViolationPersisterDecorator.class, + NewViolationsDecorator.class, + TimeMachineConfigurationPersister.class, + NewCoverageFileAnalyzer.class, + NewItCoverageFileAnalyzer.class, + NewCoverageAggregator.class); } } diff --git a/plugins/sonar-email-notifications-plugin/src/main/java/org/sonar/plugins/emailnotifications/EmailConfiguration.java b/plugins/sonar-email-notifications-plugin/src/main/java/org/sonar/plugins/emailnotifications/EmailConfiguration.java deleted file mode 100644 index 9c0b10642e2..00000000000 --- a/plugins/sonar-email-notifications-plugin/src/main/java/org/sonar/plugins/emailnotifications/EmailConfiguration.java +++ /dev/null @@ -1,86 +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.plugins.emailnotifications; - -import org.apache.commons.configuration.Configuration; -import org.sonar.api.CoreProperties; -import org.sonar.api.ServerExtension; - -/** - * Ruby uses constants from this class. - * - * @since 2.10 - */ -public class EmailConfiguration implements ServerExtension { - - public static final String SMTP_HOST = "email.smtp_host.secured"; - public static final String SMTP_HOST_DEFAULT = ""; - public static final String SMTP_PORT = "email.smtp_port.secured"; - public static final String SMTP_PORT_DEFAULT = "25"; - public static final String SMTP_SECURE_CONNECTION = "email.smtp_secure_connection.secured"; - public static final String SMTP_SECURE_CONNECTION_DEFAULT = ""; - public static final String SMTP_USERNAME = "email.smtp_username.secured"; - public static final String SMTP_USERNAME_DEFAULT = ""; - public static final String SMTP_PASSWORD = "email.smtp_password.secured"; - public static final String SMTP_PASSWORD_DEFAULT = ""; - public static final String FROM = "email.from"; - public static final String FROM_DEFAULT = "noreply@nowhere"; - public static final String PREFIX = "email.prefix"; - public static final String PREFIX_DEFAULT = "[SONAR]"; - - private Configuration configuration; - - public EmailConfiguration(Configuration configuration) { - this.configuration = configuration; - } - - public String getSmtpHost() { - return configuration.getString(SMTP_HOST, SMTP_HOST_DEFAULT); - } - - public String getSmtpPort() { - return configuration.getString(SMTP_PORT, SMTP_PORT_DEFAULT); - } - - public String getSecureConnection() { - return configuration.getString(SMTP_SECURE_CONNECTION, SMTP_SECURE_CONNECTION_DEFAULT); - } - - public String getSmtpUsername() { - return configuration.getString(SMTP_USERNAME, SMTP_USERNAME_DEFAULT); - } - - public String getSmtpPassword() { - return configuration.getString(SMTP_PASSWORD, SMTP_PASSWORD_DEFAULT); - } - - public String getFrom() { - return configuration.getString(FROM, FROM_DEFAULT); - } - - public String getPrefix() { - return configuration.getString(PREFIX, PREFIX_DEFAULT); - } - - public String getServerBaseURL() { - return configuration.getString(CoreProperties.SERVER_BASE_URL, CoreProperties.SERVER_BASE_URL_DEFAULT_VALUE); - } - -} diff --git a/plugins/sonar-email-notifications-plugin/src/main/java/org/sonar/plugins/emailnotifications/EmailNotificationChannel.java b/plugins/sonar-email-notifications-plugin/src/main/java/org/sonar/plugins/emailnotifications/EmailNotificationChannel.java index c397efc4996..382e9ce4f95 100644 --- a/plugins/sonar-email-notifications-plugin/src/main/java/org/sonar/plugins/emailnotifications/EmailNotificationChannel.java +++ b/plugins/sonar-email-notifications-plugin/src/main/java/org/sonar/plugins/emailnotifications/EmailNotificationChannel.java @@ -19,9 +19,6 @@ */ package org.sonar.plugins.emailnotifications; -import java.net.MalformedURLException; -import java.net.URL; - import org.apache.commons.lang.StringUtils; import org.apache.commons.mail.EmailException; import org.apache.commons.mail.SimpleEmail; @@ -30,11 +27,15 @@ import org.slf4j.LoggerFactory; import org.sonar.api.database.model.User; import org.sonar.api.notifications.Notification; import org.sonar.api.notifications.NotificationChannel; +import org.sonar.api.platform.EmailSettings; import org.sonar.api.security.UserFinder; import org.sonar.api.utils.SonarException; import org.sonar.plugins.emailnotifications.api.EmailMessage; import org.sonar.plugins.emailnotifications.api.EmailTemplate; +import java.net.MalformedURLException; +import java.net.URL; + /** * References: *