diff options
Diffstat (limited to 'java/com/google/gerrit/server/mail/send/EmailArguments.java')
-rw-r--r-- | java/com/google/gerrit/server/mail/send/EmailArguments.java | 152 |
1 files changed, 152 insertions, 0 deletions
diff --git a/java/com/google/gerrit/server/mail/send/EmailArguments.java b/java/com/google/gerrit/server/mail/send/EmailArguments.java new file mode 100644 index 0000000000..41a464e3da --- /dev/null +++ b/java/com/google/gerrit/server/mail/send/EmailArguments.java @@ -0,0 +1,152 @@ +// Copyright (C) 2016 The Android Open Source Project +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package com.google.gerrit.server.mail.send; + +import com.google.gerrit.extensions.registration.DynamicItem; +import com.google.gerrit.extensions.registration.DynamicSet; +import com.google.gerrit.reviewdb.server.ReviewDb; +import com.google.gerrit.server.AnonymousUser; +import com.google.gerrit.server.ApprovalsUtil; +import com.google.gerrit.server.GerritPersonIdentProvider; +import com.google.gerrit.server.IdentifiedUser; +import com.google.gerrit.server.IdentifiedUser.GenericFactory; +import com.google.gerrit.server.PatchSetUtil; +import com.google.gerrit.server.UsedAt; +import com.google.gerrit.server.account.AccountCache; +import com.google.gerrit.server.account.GroupBackend; +import com.google.gerrit.server.config.AllProjectsName; +import com.google.gerrit.server.config.AnonymousCowardName; +import com.google.gerrit.server.config.GerritInstanceName; +import com.google.gerrit.server.config.GerritServerConfig; +import com.google.gerrit.server.config.SitePaths; +import com.google.gerrit.server.config.UrlFormatter; +import com.google.gerrit.server.git.GitRepositoryManager; +import com.google.gerrit.server.mail.EmailSettings; +import com.google.gerrit.server.notedb.ChangeNotes; +import com.google.gerrit.server.patch.PatchListCache; +import com.google.gerrit.server.patch.PatchSetInfoFactory; +import com.google.gerrit.server.permissions.PermissionBackend; +import com.google.gerrit.server.project.ProjectCache; +import com.google.gerrit.server.query.account.InternalAccountQuery; +import com.google.gerrit.server.query.change.ChangeData; +import com.google.gerrit.server.query.change.ChangeQueryBuilder; +import com.google.gerrit.server.ssh.SshAdvertisedAddresses; +import com.google.gerrit.server.validators.OutgoingEmailValidationListener; +import com.google.inject.Inject; +import com.google.inject.Provider; +import com.google.template.soy.tofu.SoyTofu; +import java.util.List; +import org.eclipse.jgit.lib.Config; +import org.eclipse.jgit.lib.PersonIdent; + +@UsedAt(UsedAt.Project.PLUGINS_ALL) +public class EmailArguments { + final GitRepositoryManager server; + final ProjectCache projectCache; + final PermissionBackend permissionBackend; + final GroupBackend groupBackend; + final AccountCache accountCache; + final PatchListCache patchListCache; + final PatchSetUtil patchSetUtil; + final ApprovalsUtil approvalsUtil; + final FromAddressGenerator fromAddressGenerator; + final EmailSender emailSender; + final PatchSetInfoFactory patchSetInfoFactory; + final IdentifiedUser.GenericFactory identifiedUserFactory; + final ChangeNotes.Factory changeNotesFactory; + final AnonymousUser anonymousUser; + final String anonymousCowardName; + final PersonIdent gerritPersonIdent; + final DynamicItem<UrlFormatter> urlFormatter; + final AllProjectsName allProjectsName; + final List<String> sshAddresses; + final SitePaths site; + + final ChangeQueryBuilder queryBuilder; + final Provider<ReviewDb> db; + final ChangeData.Factory changeDataFactory; + final SoyTofu soyTofu; + final EmailSettings settings; + final DynamicSet<OutgoingEmailValidationListener> outgoingEmailValidationListeners; + final Provider<InternalAccountQuery> accountQueryProvider; + final OutgoingEmailValidator validator; + final boolean addInstanceNameInSubject; + final Provider<String> instanceNameProvider; + + @Inject + EmailArguments( + GitRepositoryManager server, + ProjectCache projectCache, + PermissionBackend permissionBackend, + GroupBackend groupBackend, + AccountCache accountCache, + PatchListCache patchListCache, + PatchSetUtil patchSetUtil, + ApprovalsUtil approvalsUtil, + FromAddressGenerator fromAddressGenerator, + EmailSender emailSender, + PatchSetInfoFactory patchSetInfoFactory, + GenericFactory identifiedUserFactory, + ChangeNotes.Factory changeNotesFactory, + AnonymousUser anonymousUser, + @AnonymousCowardName String anonymousCowardName, + GerritPersonIdentProvider gerritPersonIdentProvider, + DynamicItem<UrlFormatter> urlFormatter, + AllProjectsName allProjectsName, + ChangeQueryBuilder queryBuilder, + Provider<ReviewDb> db, + ChangeData.Factory changeDataFactory, + @MailTemplates SoyTofu soyTofu, + EmailSettings settings, + @SshAdvertisedAddresses List<String> sshAddresses, + SitePaths site, + DynamicSet<OutgoingEmailValidationListener> outgoingEmailValidationListeners, + Provider<InternalAccountQuery> accountQueryProvider, + OutgoingEmailValidator validator, + @GerritInstanceName Provider<String> instanceNameProvider, + @GerritServerConfig Config cfg) { + this.server = server; + this.projectCache = projectCache; + this.permissionBackend = permissionBackend; + this.groupBackend = groupBackend; + this.accountCache = accountCache; + this.patchListCache = patchListCache; + this.patchSetUtil = patchSetUtil; + this.approvalsUtil = approvalsUtil; + this.fromAddressGenerator = fromAddressGenerator; + this.emailSender = emailSender; + this.patchSetInfoFactory = patchSetInfoFactory; + this.identifiedUserFactory = identifiedUserFactory; + this.changeNotesFactory = changeNotesFactory; + this.anonymousUser = anonymousUser; + this.anonymousCowardName = anonymousCowardName; + this.gerritPersonIdent = gerritPersonIdentProvider.get(); + this.urlFormatter = urlFormatter; + this.allProjectsName = allProjectsName; + this.queryBuilder = queryBuilder; + this.db = db; + this.changeDataFactory = changeDataFactory; + this.soyTofu = soyTofu; + this.settings = settings; + this.sshAddresses = sshAddresses; + this.site = site; + this.outgoingEmailValidationListeners = outgoingEmailValidationListeners; + this.accountQueryProvider = accountQueryProvider; + this.validator = validator; + this.instanceNameProvider = instanceNameProvider; + + this.addInstanceNameInSubject = cfg.getBoolean("sendemail", "addInstanceNameInSubject", false); + } +} |