This is an automated email from the ASF dual-hosted git repository.

dpavlov pushed a commit to branch ignite-11105-alias
in repository https://gitbox.apache.org/repos/asf/ignite-teamcity-bot.git


The following commit(s) were added to refs/heads/ignite-11105-alias by this 
push:
     new e720b20  IGNITE-11105 Support Teamcity servers aliases: JIRA ticket 
for comment and for branch detection separation
e720b20 is described below

commit e720b2025f3137e6587cedc6f136a67bce9742d2
Author: Dmitriy Pavlov <dpav...@apache.org>
AuthorDate: Tue Jan 29 22:14:43 2019 +0300

    IGNITE-11105 Support Teamcity servers aliases: JIRA ticket for comment and 
for branch detection separation
---
 .../src/main/java/org/apache/ignite/ci/HelperConfig.java   |  1 +
 .../org/apache/ignite/ci/jira/ignited/IJiraIgnited.java    |  5 +++--
 .../org/apache/ignite/ci/jira/ignited/JiraIgnited.java     |  6 +++---
 .../org/apache/ignite/ci/jira/ignited/JiraTicketDao.java   | 14 +++++++-------
 .../org/apache/ignite/ci/jira/ignited/JiraTicketSync.java  |  6 +++---
 .../org/apache/ignite/ci/jira/ignited/TicketCompacted.java | 13 +++++++------
 .../org/apache/ignite/ci/jira/pure/IJiraIntegration.java   |  5 ++---
 .../src/main/java/org/apache/ignite/ci/jira/pure/Jira.java |  6 ++++++
 .../main/java/org/apache/ignite/ci/jira/pure/Ticket.java   |  7 +++++--
 .../org/apache/ignite/ci/tcbot/conf/IJiraServerConfig.java |  5 +++++
 .../org/apache/ignite/ci/tcbot/conf/JiraServerConfig.java  | 11 +++++++++++
 .../ci/tcbot/visa/TcBotTriggerAndSignOffService.java       |  3 ++-
 12 files changed, 55 insertions(+), 27 deletions(-)

diff --git 
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/HelperConfig.java 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/HelperConfig.java
index 11501e5..b0f7e63 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/HelperConfig.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/HelperConfig.java
@@ -63,6 +63,7 @@ public class HelperConfig {
     public static final String JIRA_URL = "jira.url";
 
     /** Prefix for JIRA ticket names. */
+    @Deprecated
     public static final String JIRA_TICKET_TEMPLATE = "jira.ticket_template";
 
     /** Slack authorization token property name. */
diff --git 
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/ignited/IJiraIgnited.java
 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/ignited/IJiraIgnited.java
index fa88d26..27af6cf 100644
--- 
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/ignited/IJiraIgnited.java
+++ 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/ignited/IJiraIgnited.java
@@ -28,12 +28,13 @@ public interface IJiraIgnited {
     /**
      *
      */
+    @Deprecated
     @NotNull public String ticketPrefix();
 
     /**
-     *
+     * JIRA project code for filtering out tickets and for adding VISA (JIRA 
comments).
      */
-    @NotNull public String projectName();
+    @NotNull public String projectCodeForVisa();
 
 
     /**
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 2a84f36..3477346 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
@@ -62,15 +62,15 @@ class JiraIgnited implements IJiraIgnited {
     }
 
     /** {@inheritDoc} */
-    @NotNull @Override public String projectName() {
-        return jira.projectName();
+    @NotNull @Override public String projectCodeForVisa() {
+        return jira.projectCodeForVisa();
     }
 
     /** {@inheritDoc} */
     @Override public Set<Ticket> getTickets() {
         jiraTicketSync.ensureActualizeJiraTickets(srvId);
 
-        return jiraTicketDao.getTickets(srvIdMaskHigh, ticketPrefix());
+        return jiraTicketDao.getTickets(srvIdMaskHigh, projectCodeForVisa());
     }
 
     /** {@inheritDoc} */
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 7d87f5b..ce93f96 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
@@ -60,10 +60,10 @@ public class JiraTicketDao {
 
     /**
      * @param srvIdMaskHigh Server id mask high.
-     * @param ticketPrefix Fixed prefix for JIRA tickets.
+     * @param projectCode project code. WIth delim gives Fixed prefix for JIRA 
tickets.
      * @return Jira tickets.
      */
-    public Set<Ticket> getTickets(int srvIdMaskHigh, String ticketPrefix) {
+    public Set<Ticket> getTickets(int srvIdMaskHigh, String projectCode) {
         Preconditions.checkNotNull(jiraCache, "init() was not called");
         long srvId = (long) srvIdMaskHigh << 32;
 
@@ -71,7 +71,7 @@ public class JiraTicketDao {
 
         for (Cache.Entry<Long, TicketCompacted> entry : jiraCache) {
             if ((entry.getKey() & srvId) == srvId)
-                res.add(entry.getValue().toTicket(compactor, ticketPrefix));
+                res.add(entry.getValue().toTicket(compactor, projectCode));
         }
 
         return res;
@@ -92,11 +92,11 @@ public class JiraTicketDao {
      * Save small part of loaded mutes.
      * @param srvIdMaskHigh Server id mask high.
      * @param chunk Chunk.
-     * @param ticketPrefix Ticket name template.
+     * @param projectCode Project code for contributions listing and for 
comments.
      * @return number of tickets totally saved.
      */
     @AutoProfiling
-    public int saveChunk(int srvIdMaskHigh, Collection<Ticket> chunk, String 
ticketPrefix) {
+    public int saveChunk(int srvIdMaskHigh, Collection<Ticket> chunk, String 
projectCode) {
         Preconditions.checkNotNull(jiraCache, "init() was not called");
 
         if (F.isEmpty(chunk))
@@ -105,8 +105,8 @@ public class JiraTicketDao {
         Map<Long, TicketCompacted> compactedTickets = new 
HashMap<>(U.capacity(chunk.size()));
 
         for (Ticket ticket : chunk) {
-            long key = ticketToCacheKey(srvIdMaskHigh, 
ticket.igniteId(ticketPrefix));
-            TicketCompacted val = new TicketCompacted(ticket, compactor, 
ticketPrefix);
+            long key = ticketToCacheKey(srvIdMaskHigh, 
ticket.keyWithoutProject(projectCode));
+            TicketCompacted val = new TicketCompacted(ticket, compactor, 
projectCode);
 
             compactedTickets.put(key, val);
         }
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 d2cb246..ae70dc1 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
@@ -94,7 +94,7 @@ public class JiraTicketSync {
             .map(Field::getName)
             .collect(Collectors.joining(","));
 
-        String projectName = jira.projectName();
+        String projectName = jira.projectCodeForVisa();
         String baseUrl = "search?jql=" + escape("project=" + projectName + " 
order by updated DESC")
             + "&" +
             "fields=" + reqFields +
@@ -107,7 +107,7 @@ public class JiraTicketSync {
         if (F.isEmpty(page))
             return "Something went wrong - no tickets found. Check jira 
availability.";
 
-        int ticketsSaved = jiraDao.saveChunk(srvIdMaskHigh, page, 
jira.ticketPrefix());
+        int ticketsSaved = jiraDao.saveChunk(srvIdMaskHigh, page, 
jira.projectCodeForVisa());
 
         int ticketsProcessed = page.size();
 
@@ -122,7 +122,7 @@ public class JiraTicketSync {
                 if (F.isEmpty(page))
                     break;
 
-                int savedNow = jiraDao.saveChunk(srvIdMaskHigh, page, 
jira.ticketPrefix());
+                int savedNow = jiraDao.saveChunk(srvIdMaskHigh, page, 
jira.projectCodeForVisa());
 
                 ticketsSaved += savedNow;
                 ticketsProcessed += page.size();
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 a0da352..a62099c 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
@@ -29,6 +29,7 @@ import org.jetbrains.annotations.Nullable;
  *
  */
 public class TicketCompacted {
+    public static final String PROJECT_DELIM = "-";
     /** Id. */
     public long id;
 
@@ -50,11 +51,11 @@ public class TicketCompacted {
     /**
      * @param ticket Jira ticket.
      * @param comp Compactor.
-     * @param ticketForCommentPrefix Ticket name prefix.
+     * @param projectCode project name for commenting jira.
      */
-    public TicketCompacted(Ticket ticket, IStringCompactor comp, String 
ticketForCommentPrefix) {
+    public TicketCompacted(Ticket ticket, IStringCompactor comp, String 
projectCode) {
         id = ticket.id;
-        igniteId = 
Integer.valueOf(ticket.key.substring(ticketForCommentPrefix.length()));
+        igniteId = ticket.keyWithoutProject(projectCode);
         status = comp.getStringId(ticket.fields.status.name);
         summary.setValue(ticket.fields.summary);
         customfield_11050.setValue(ticket.fields.customfield_11050);
@@ -63,13 +64,13 @@ public class TicketCompacted {
 
     /**
      * @param comp Compactor.
-     * @param ticketPrefix Ticket name fixed prefix for the project.
+     * @param projectCode project code for VISA and filtering tasks.
      */
-    public Ticket toTicket(IStringCompactor comp, String ticketPrefix) {
+    public Ticket toTicket(IStringCompactor comp, String projectCode) {
         Ticket ticket = new Ticket();
 
         ticket.id = id;
-        ticket.key = ticketPrefix + igniteId;
+        ticket.key = projectCode + PROJECT_DELIM + igniteId;
         ticket.fields = new Fields();
         ticket.fields.status = new Status(comp.getStringFromId(status));
         ticket.fields.summary = summary != null ? summary.getValue() : null;
diff --git 
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/pure/IJiraIntegration.java
 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/pure/IJiraIntegration.java
index 3a0d356..d78f5a7 100644
--- 
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/pure/IJiraIntegration.java
+++ 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/pure/IJiraIntegration.java
@@ -26,15 +26,14 @@ import org.jetbrains.annotations.NotNull;
  */
 public interface IJiraIntegration {
 
+    @Deprecated
     /** @return JIRA ticket prefix. */
     @NotNull public String ticketPrefix();
 
     /**
      *
      */
-    @NotNull public default String projectName() {
-        return ticketPrefix().replaceAll("-", "");
-    }
+    @NotNull public String projectCodeForVisa();
 
     /**
      * @return Internal identified service ID.
diff --git 
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/pure/Jira.java 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/pure/Jira.java
index f7af47f..d8ef219 100644
--- 
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/pure/Jira.java
+++ 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/pure/Jira.java
@@ -45,6 +45,7 @@ class Jira implements IJiraIntegration {
     private static final Logger logger = LoggerFactory.getLogger(Jira.class);
 
     /** JIRA ticket prefix. */
+    @Deprecated
     @NotNull private String jiraTicketPrefix;
 
     /** JIRA authorization token. */
@@ -79,6 +80,11 @@ class Jira implements IJiraIntegration {
     }
 
     /** {@inheritDoc} */
+    @Override public String projectCodeForVisa() {
+        return cfg.getJiraConfig(srvId).projectCodeForVisa();
+    }
+
+    /** {@inheritDoc} */
     @Override public String ticketPrefix() {
         return jiraTicketPrefix;
     }
diff --git 
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/pure/Ticket.java 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/pure/Ticket.java
index b8b16b2..4d5c514 100644
--- 
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/pure/Ticket.java
+++ 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/pure/Ticket.java
@@ -18,6 +18,7 @@
 package org.apache.ignite.ci.jira.pure;
 
 import com.google.common.base.MoreObjects;
+import org.apache.ignite.ci.jira.ignited.TicketCompacted;
 
 /**
  * See example of GSON here
@@ -34,10 +35,12 @@ public class Ticket {
     public Fields fields;
 
     /**
-     * @param ticketPrefix Ticket name fixed prefix.
+     * @param projectCode JIRA project code to be removed from ticket key.
      * @return Ignite ticket Number ignoring project code (like 123 in 
IGNITE-123).
      */
-    public int igniteId(String ticketPrefix) {
+    public int keyWithoutProject(String projectCode) {
+        String ticketPrefix = projectCode + TicketCompacted.PROJECT_DELIM;
+
         return Integer.valueOf(key.substring(ticketPrefix.length()));
     }
 
diff --git 
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/IJiraServerConfig.java
 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/IJiraServerConfig.java
index 36f6551..a0ab846 100644
--- 
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/IJiraServerConfig.java
+++ 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/IJiraServerConfig.java
@@ -24,4 +24,9 @@ public interface IJiraServerConfig {
      * Return JIRA URL, e.g. https://issues.apache.org/jira/
      */
     public String getUrl();
+
+    /**
+     * JIRA project code for filtering out tickets and for adding VISA (JIRA 
comments).
+     */
+    public String projectCodeForVisa();
 }
diff --git 
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/JiraServerConfig.java
 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/JiraServerConfig.java
index 946f252..7e14781 100644
--- 
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/JiraServerConfig.java
+++ 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/JiraServerConfig.java
@@ -83,4 +83,15 @@ public class JiraServerConfig implements IJiraServerConfig {
 
         return url;
     }
+
+    /** {@inheritDoc} */
+    @Override public String projectCodeForVisa() {
+        if(Strings.isNullOrEmpty(projectCode) && props!=null) {
+            String ticketPref = 
props.getProperty(HelperConfig.JIRA_TICKET_TEMPLATE, "IGNITE-");
+
+            return ticketPref.replaceAll("-", "");
+        }
+
+        return projectCode;
+    }
 }
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 c5d192e..5652d38 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
@@ -510,7 +510,8 @@ public class TcBotTriggerAndSignOffService {
         ITeamcityIgnited tcIgn = tcIgnitedProv.server(srvId, credsProv);
 
         paTickets.forEach(ticket -> {
-            int ticketId = ticket.igniteId(jiraIntegration.ticketPrefix());
+            //todo multiple identification ways.
+            int ticketId = 
ticket.keyWithoutProject(jiraIntegration.ticketPrefix().replace("-", ""));
             String branch = gitHubConnIgnited.gitBranchPrefix() + ticketId;
 
             String defBtForMaster = 
findDefaultBranchBuildType(tcIgn.serverId());

Reply via email to