summaryrefslogtreecommitdiffstats
path: root/java/com/google/gerrit/server/mail/send/EmailArguments.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/google/gerrit/server/mail/send/EmailArguments.java')
-rw-r--r--java/com/google/gerrit/server/mail/send/EmailArguments.java152
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);
+ }
+}