You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by dp...@apache.org on 2019/01/15 13:12:16 UTC
[ignite-teamcity-bot] branch ignite-10930 updated: IGNITE-10930:
PR-less contributions: Removing hardcodes
This is an automated email from the ASF dual-hosted git repository.
dpavlov pushed a commit to branch ignite-10930
in repository https://gitbox.apache.org/repos/asf/ignite-teamcity-bot.git
The following commit(s) were added to refs/heads/ignite-10930 by this push:
new 6573750 IGNITE-10930: PR-less contributions: Removing hardcodes
6573750 is described below
commit 6573750d14b45add533e290a6e5429cb7923ecbf
Author: Dmitriy Pavlov <dp...@apache.org>
AuthorDate: Tue Jan 15 16:12:12 2019 +0300
IGNITE-10930: PR-less contributions: Removing hardcodes
---
.../apache/ignite/ci/jira/ignited/JiraIgnited.java | 11 ++---------
.../ignite/ci/jira/ignited/JiraTicketDao.java | 4 ++--
.../ignite/ci/jira/ignited/JiraTicketSync.java | 22 ++++++++++++++++++----
.../ignite/ci/jira/ignited/TicketCompacted.java | 21 +++++++++++++++++++++
.../tcbot/visa/TcBotTriggerAndSignOffService.java | 15 +++++++--------
5 files changed, 50 insertions(+), 23 deletions(-)
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/ignited/JiraIgnited.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/ignited/JiraIgnited.java
index 5a39821..334292a 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/ignited/JiraIgnited.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/ignited/JiraIgnited.java
@@ -65,19 +65,12 @@ class JiraIgnited implements IJiraIgnited {
/** {@inheritDoc} */
@Override public Set<Ticket> getTickets() {
- jiraTicketSync.ensureActualizeJiraTickets(taskName("actualizeJiraTickets"), srvId);
+ jiraTicketSync.ensureActualizeJiraTickets(srvId);
return jiraTicketDao.getTickets(srvIdMaskHigh, ticketPrefix());
}
- /**
- * @param taskName Task name.
- * @return Task name concatenated with server name.
- */
- @NotNull
- private String taskName(String taskName) {
- return ITeamcityIgnited.class.getSimpleName() + "." + taskName + "." + srvId;
- }
+
/** {@inheritDoc} */
@Override public String generateCommentUrl(String ticketFullName, int commentId) {
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/ignited/JiraTicketDao.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/ignited/JiraTicketDao.java
index fb97221..6502488 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/ignited/JiraTicketDao.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/ignited/JiraTicketDao.java
@@ -44,7 +44,7 @@ public class JiraTicketDao {
/** Ignite provider. */
@Inject private Provider<Ignite> igniteProvider;
- /** Builds cache. */
+ /** JIRA tickets cache : (srvId || ticketNuber) -> Ticket data compacted. */
private IgniteCache<Long, TicketCompacted> jiraCache;
/** Compactor. */
@@ -80,7 +80,7 @@ public class JiraTicketDao {
* Combine server and project into key for storage.
*
* @param srvIdMaskHigh Server id mask high.
- * @param igniteId Ticket.
+ * @param igniteId Ticket number without project name.
* @return Key from server-project pair.
*/
public static long ticketToCacheKey(int srvIdMaskHigh, int igniteId) {
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/ignited/JiraTicketSync.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/ignited/JiraTicketSync.java
index b69db1d..178ced6 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/ignited/JiraTicketSync.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/ignited/JiraTicketSync.java
@@ -28,6 +28,9 @@ import org.apache.ignite.ci.jira.Ticket;
import org.apache.ignite.ci.jira.Tickets;
import org.apache.ignite.ci.teamcity.ignited.ITeamcityIgnited;
import org.apache.ignite.internal.util.typedef.F;
+import org.jetbrains.annotations.NotNull;
+
+import static org.apache.ignite.ci.util.UrlUtil.escape;
/**
* Sync serving requests for all JIRA servers.
@@ -43,14 +46,23 @@ public class JiraTicketSync {
@Inject IJiraIntegrationProvider jiraIntegrationProvider;
/**
- * @param taskName Task name.
* @param srvId Server ID
*/
- public void ensureActualizeJiraTickets(String taskName, String srvId) {
- scheduler.sheduleNamed(taskName, () -> actualizeJiraTickets(srvId), 15, TimeUnit.MINUTES);
+ public void ensureActualizeJiraTickets(String srvId) {
+ scheduler.sheduleNamed(taskName("actualizeJiraTickets", srvId),
+ () -> actualizeJiraTickets(srvId), 15, TimeUnit.MINUTES);
}
/**
+ * @param taskName Task name.
+ * @param srvId Service ID
+ * @return Task name concatenated with server name.
+ */
+ @NotNull
+ private String taskName(String taskName, String srvId) {
+ return JiraTicketSync.class.getSimpleName() + "." + taskName + "." + srvId;
+ }
+ /**
* @param srvId Server internal identification.
*/
@MonitoredTask(name = "Actualize Jira", nameExtArgsIndexes = {0})
@@ -59,7 +71,9 @@ public class JiraTicketSync {
IJiraIntegration jira = jiraIntegrationProvider.server(srvId);
String projectName = jira.projectName();
- String baseUrl = "search?jql=project=" + projectName + "%20order%20by%20updated%20DESC&fields=status&maxResults=100";
+ String baseUrl = "search?jql=" + escape("project=" + projectName + " order by updated DESC")
+ + "&fields=status&maxResults=100";
+
String url = baseUrl;
Tickets tickets = jira.getTicketsPage(srvId, url);
Collection<Ticket> page = tickets.issuesNotNull();
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/ignited/TicketCompacted.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/ignited/TicketCompacted.java
index 5876641..d1a22f9 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/ignited/TicketCompacted.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/ignited/TicketCompacted.java
@@ -17,6 +17,7 @@
package org.apache.ignite.ci.jira.ignited;
+import com.google.common.base.Objects;
import org.apache.ignite.ci.jira.Fields;
import org.apache.ignite.ci.jira.Status;
import org.apache.ignite.ci.jira.Ticket;
@@ -60,4 +61,24 @@ public class TicketCompacted {
return ticket;
}
+
+ /** {@inheritDoc} */
+ @Override public boolean equals(Object o) {
+ if (this == o)
+ return true;
+
+ if (o == null || getClass() != o.getClass())
+ return false;
+
+ TicketCompacted compacted = (TicketCompacted)o;
+
+ return id == compacted.id &&
+ igniteId == compacted.igniteId &&
+ status == compacted.status;
+ }
+
+ /** {@inheritDoc} */
+ @Override public int hashCode() {
+ return Objects.hashCode(id, igniteId, status);
+ }
}
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/visa/TcBotTriggerAndSignOffService.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/visa/TcBotTriggerAndSignOffService.java
index d7e919f..e4bd777 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/visa/TcBotTriggerAndSignOffService.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/visa/TcBotTriggerAndSignOffService.java
@@ -202,7 +202,9 @@ public class TcBotTriggerAndSignOffService {
IJiraIgnited jiraIgn = jiraIgnProv.server(srvId);
- insertTicketStatus(mutes, jiraIgn.getTickets());
+ String browseUrl = jiraIgn.generateTicketUrl("");
+
+ insertTicketStatus(mutes, jiraIgn.getTickets(), browseUrl);
for (MuteInfo info : mutes)
info.assignment.muteDate = THREAD_FORMATTER.get().format(new Date(info.assignment.timestamp()));
@@ -212,24 +214,22 @@ public class TcBotTriggerAndSignOffService {
/**
* Insert ticket status for all mutes, if they have ticket in description.
- *
- * @param mutes Mutes.
+ * @param mutes Mutes.
* @param tickets Tickets.
+ * @param browseUrl JIRA URL for browsing tickets, e.g. https://issues.apache.org/jira/browse/
*/
- private void insertTicketStatus(Set<MuteInfo> mutes, Collection<Ticket> tickets) {
+ private void insertTicketStatus(Set<MuteInfo> mutes, Collection<Ticket> tickets, String browseUrl) {
for (MuteInfo mute : mutes) {
if (F.isEmpty(mute.assignment.text))
continue;
- String browseUrl = "https://issues.apache.org/jira/browse/";
int pos = mute.assignment.text.indexOf(browseUrl);
if (pos == -1)
continue;
for (Ticket ticket : tickets) {
- String muteTicket = mute.assignment.text.substring(pos +
- browseUrl.length());
+ String muteTicket = mute.assignment.text.substring(pos + browseUrl.length());
if (ticket.key.equals(muteTicket)) {
mute.ticketStatus = ticket.status();
@@ -418,7 +418,6 @@ public class TcBotTriggerAndSignOffService {
ITeamcityIgnited tcIgn = tcIgnitedProv.server(srvId, credsProv);
- String prj = jiraIntegration.projectName();
Set<Ticket> tickets = jiraIntegration.getTickets();
List<Ticket> paTickets = tickets.stream().filter(Ticket::isActiveContribution).collect(Collectors.toList());