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 2018/11/10 21:57:52 UTC

[ignite-teamcity-bot] branch master updated: Usages of change and change list cache were removed, interface usage for compactor

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

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


The following commit(s) were added to refs/heads/master by this push:
     new f7fc6d3  Usages of change and change list cache were removed, interface usage for compactor
f7fc6d3 is described below

commit f7fc6d363b738aeb495a766336c0784c041dd51f
Author: Dmitriy Pavlov <dp...@apache.org>
AuthorDate: Sun Nov 11 00:57:47 2018 +0300

    Usages of change and change list cache were removed, interface usage for compactor
---
 .../main/java/org/apache/ignite/ci/ITeamcity.java  |  6 ---
 .../apache/ignite/ci/IgnitePersistentTeamcity.java | 45 --------------------
 .../apache/ignite/ci/IgniteTeamcityConnection.java | 13 ------
 .../java/org/apache/ignite/ci/db/DbMigrations.java |  7 ++++
 .../org/apache/ignite/ci/issue/EventTemplates.java | 21 ++++++----
 .../org/apache/ignite/ci/issue/IssueDetector.java  | 48 ++++++++++++----------
 .../org/apache/ignite/ci/observer/BuildsInfo.java  |  4 +-
 .../ignite/ci/observer/CompactBuildsInfo.java      |  7 ++--
 .../apache/ignite/ci/observer/ObserverTask.java    |  4 +-
 .../tcbot/visa/TcBotTriggerAndSignOffService.java  |  4 +-
 .../ci/web/model/CompactContributionKey.java       |  5 ++-
 .../apache/ignite/ci/web/model/CompactVisa.java    |  6 +--
 .../ignite/ci/web/model/CompactVisaRequest.java    |  6 +--
 .../org/apache/ignite/ci/web/model/Version.java    |  2 +-
 .../ci/web/model/hist/VisasHistoryStorage.java     |  4 +-
 15 files changed, 68 insertions(+), 114 deletions(-)

diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/ITeamcity.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/ITeamcity.java
index 6fe152c..59f8e82 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/ITeamcity.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/ITeamcity.java
@@ -138,12 +138,6 @@ public interface ITeamcity extends ITeamcityConn {
     CompletableFuture<TestOccurrenceFull> getTestFull(String href);
 
     @Deprecated
-    Change getChange(String href);
-
-    @Deprecated
-    ChangesList getChangesList(String href);
-
-    @Deprecated
     CompletableFuture<TestRef> getTestRef(FullQueryParams key);
 
     Configurations getConfigurations(FullQueryParams key);
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/IgnitePersistentTeamcity.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/IgnitePersistentTeamcity.java
index 42a1508..4d0db6e 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/IgnitePersistentTeamcity.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/IgnitePersistentTeamcity.java
@@ -101,8 +101,6 @@ public class IgnitePersistentTeamcity implements IAnalyticsEnabledTeamcity, ITea
     private static final String TESTS_RUN_STAT = "testsRunStat";
     private static final String CALCULATED_STATISTIC = "calculatedStatistic";
     private static final String LOG_CHECK_RESULT = "logCheckResult";
-    private static final String CHANGE_INFO_FULL = "changeInfoFull";
-    private static final String CHANGES_LIST = "changesList";
     private static final String ISSUES_USAGES_LIST = "issuesUsagesList";
     @Deprecated
     private static final String TEST_FULL = "testFull";
@@ -875,49 +873,6 @@ public class IgnitePersistentTeamcity implements IAnalyticsEnabledTeamcity, ITea
             k -> teamcity.getTestRef(key));
     }
 
-    /** {@inheritDoc} */
-    @AutoProfiling
-    @Override public Change getChange(String href) {
-        return loadIfAbsentV2(CHANGE_INFO_FULL, href, href1 -> {
-            try {
-                return teamcity.getChange(href1);
-            }
-            catch (Exception e) {
-                if (Throwables.getRootCause(e) instanceof FileNotFoundException) {
-                    System.err.println("Change history not found for href : " + href);
-
-                    return new Change();
-                }
-                if (Throwables.getRootCause(e) instanceof SAXParseException) {
-                    System.err.println("Change data seems to be invalid: " + href);
-
-                    return new Change();
-                }
-                else
-                    throw e;
-            }
-        });
-    }
-
-    /** {@inheritDoc} */
-    @AutoProfiling
-    @Override public ChangesList getChangesList(String href) {
-        return loadIfAbsentV2(CHANGES_LIST, href, href1 -> {
-            try {
-                return teamcity.getChangesList(href1);
-            }
-            catch (Exception e) {
-                if (Throwables.getRootCause(e) instanceof FileNotFoundException) {
-                    System.err.println("Change List not found for href : " + href);
-
-                    return new ChangesList();
-                }
-                else
-                    throw e;
-            }
-        });
-    }
-
     @AutoProfiling
     @Override public IssuesUsagesList getIssuesUsagesList(String href) {
         IssuesUsagesList issuesUsages =  loadIfAbsentV2(ISSUES_USAGES_LIST, href, href1 -> {
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/IgniteTeamcityConnection.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/IgniteTeamcityConnection.java
index 4e99d4e..5f044c0 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/IgniteTeamcityConnection.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/IgniteTeamcityConnection.java
@@ -501,19 +501,6 @@ public class IgniteTeamcityConnection implements ITeamcity {
         return configurations.setBuild(key.getBuildId());
     }
 
-
-    /** {@inheritDoc} */
-    @AutoProfiling
-    @Override public Change getChange(String href) {
-        return getJaxbUsingHref(href, Change.class);
-    }
-
-    /** {@inheritDoc} */
-    @AutoProfiling
-    @Override public ChangesList getChangesList(String href) {
-        return getJaxbUsingHref(href, ChangesList.class);
-    }
-
     /** {@inheritDoc} */
     @AutoProfiling
     @Override public IssuesUsagesList getIssuesUsagesList(String href) { return getJaxbUsingHref(href, IssuesUsagesList.class); }
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/db/DbMigrations.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/db/DbMigrations.java
index 5b5eb21..fd5865f 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/db/DbMigrations.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/db/DbMigrations.java
@@ -95,6 +95,10 @@ public class DbMigrations {
     /** Cache name */
     public static final String TEAMCITY_BUILD_CACHE_NAME_OLD = "teamcityBuild";
 
+
+    private static final String CHANGE_INFO_FULL = "changeInfoFull";
+    private static final String CHANGES_LIST = "changesList";
+
     public static final int SUITES_CNT = 100;
 
     private final Ignite ignite;
@@ -411,6 +415,9 @@ public class DbMigrations {
         applyDestroyIgnCacheMigration(BUILD_STATISTICS);
         applyDestroyCacheMigration(BUILD_CONDITIONS_CACHE_NAME, BUILD_CONDITIONS_CACHE_NAME);
         applyDestroyCacheMigration(TEAMCITY_BUILD_CACHE_NAME_OLD, TEAMCITY_BUILD_CACHE_NAME_OLD);
+
+        applyDestroyIgnCacheMigration(CHANGE_INFO_FULL);
+        applyDestroyIgnCacheMigration(CHANGES_LIST);
     }
 
     private void applyDestroyIgnCacheMigration(String cacheName) {
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/issue/EventTemplates.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/issue/EventTemplates.java
index d62194a..66fd0c6 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/issue/EventTemplates.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/issue/EventTemplates.java
@@ -26,14 +26,17 @@ import static org.apache.ignite.ci.analysis.RunStat.RunStatus.RES_OK;
 import static org.apache.ignite.ci.analysis.RunStat.RunStatus.RES_OK_OR_FAILURE;
 
 public class EventTemplates {
+    private static final int OK = RES_OK.getCode();
+    private static final int FAIL = RES_FAILURE.getCode();
+
     public static final EventTemplate newFailure = new EventTemplate(
-            new int[]{RES_OK.getCode(), RES_OK.getCode(), RES_OK.getCode(), RES_OK.getCode(), RES_OK.getCode()},
-            new int[]{RES_FAILURE.getCode(), RES_FAILURE.getCode(), RES_FAILURE.getCode(), RES_FAILURE.getCode()}
+            new int[]{OK, OK, OK, OK, OK},
+            new int[]{FAIL, FAIL, FAIL, FAIL}
     );
 
     public static final EventTemplate fixOfFailure = new EventTemplate(
-            new int[]{RES_FAILURE.getCode(), RES_FAILURE.getCode(), RES_FAILURE.getCode()},
-            new int[]{RES_OK.getCode(), RES_OK.getCode(), RES_OK.getCode(), RES_OK.getCode(), RES_OK.getCode()}
+            new int[]{FAIL, FAIL, FAIL},
+            new int[]{OK, OK, OK, OK, OK}
     );
 
     public static final EventTemplate newCriticalFailure = new EventTemplate(
@@ -43,14 +46,14 @@ public class EventTemplates {
 
     public static final EventTemplate newContributedTestFailure = new EventTemplate(
             new int[]{},
-            new int[]{RES_FAILURE.getCode(), RES_FAILURE.getCode(), RES_FAILURE.getCode(), RES_FAILURE.getCode()}
+            new int[]{FAIL, FAIL, FAIL, FAIL}
     ).setShouldBeFirst(true);
 
     public static final EventTemplate newFailureForFlakyTest = new EventTemplate(
-            new int[]{RES_OK.getCode(), RES_OK.getCode(), RES_OK.getCode(), RES_OK.getCode(), RES_OK.getCode()},
-            new int[]{RES_FAILURE.getCode(), RES_FAILURE.getCode(), RES_FAILURE.getCode(),
-                    RES_FAILURE.getCode(), RES_FAILURE.getCode(), RES_FAILURE.getCode(),
-                    RES_FAILURE.getCode(), RES_FAILURE.getCode()}
+            new int[]{OK, OK, OK, OK, OK},
+            new int[]{FAIL, FAIL, FAIL,
+                    FAIL, FAIL, FAIL,
+                    FAIL, FAIL}
     );
 
     public static ArrayList<EventTemplate> templates;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/issue/IssueDetector.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/issue/IssueDetector.java
index a918fe1..7027a20 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/issue/IssueDetector.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/issue/IssueDetector.java
@@ -35,8 +35,12 @@ import javax.inject.Provider;
 import org.apache.ignite.ci.HelperConfig;
 import org.apache.ignite.ci.IAnalyticsEnabledTeamcity;
 import org.apache.ignite.ci.ITcHelper;
+import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
+import org.apache.ignite.ci.teamcity.ignited.ITeamcityIgnited;
+import org.apache.ignite.ci.teamcity.ignited.ITeamcityIgnitedProvider;
+import org.apache.ignite.ci.teamcity.ignited.change.ChangeCompacted;
+import org.apache.ignite.ci.teamcity.ignited.fatbuild.FatBuildCompacted;
 import org.apache.ignite.ci.teamcity.restcached.ITcServerProvider;
-import org.apache.ignite.ci.ITeamcity;
 import org.apache.ignite.ci.analysis.RunStat;
 import org.apache.ignite.ci.analysis.SuiteInBranch;
 import org.apache.ignite.ci.analysis.TestInBranch;
@@ -93,6 +97,11 @@ public class IssueDetector {
     /** Server provider. */
     @Inject private ITcServerProvider srvProvider;
 
+    /** Server provider. */
+    @Inject private ITeamcityIgnitedProvider tcProv;
+
+    @Inject private IStringCompactor compactor;
+
     /** Send notification guard. */
     private final AtomicBoolean sndNotificationGuard = new AtomicBoolean();
 
@@ -152,7 +161,7 @@ public class IssueDetector {
 
             List<String> addrs = new ArrayList<>();
 
-            if (slackCh != null && issue.trackedBranchName.equals(FullQueryParams.DEFAULT_TRACKED_BRANCH_NAME))
+            if (slackCh != null && FullQueryParams.DEFAULT_TRACKED_BRANCH_NAME.equals(issue.trackedBranchName))
                 addrs.add(SLACK + "#" + slackCh);
 
             for (TcHelperUser next : userForPossibleNotifications) {
@@ -225,6 +234,8 @@ public class IssueDetector {
 
             IAnalyticsEnabledTeamcity teamcity = srvProvider.server(next.serverId, creds);
 
+            ITeamcityIgnited tcIgnited = tcProv.server(next.serverId, creds);
+
             for (SuiteCurrentStatus suiteCurrentStatus : next.suites) {
 
                 String normalizeBranch = normalizeBranch(suiteCurrentStatus.branchName());
@@ -232,11 +243,11 @@ public class IssueDetector {
                 final String trackedBranch = res.getTrackedBranch();
 
                 for (TestFailure testFailure : suiteCurrentStatus.testFailures) {
-                    if(registerTestFailIssues(teamcity, next.serverId, normalizeBranch, testFailure, trackedBranch))
+                    if(registerTestFailIssues(tcIgnited, teamcity, next.serverId, normalizeBranch, testFailure, trackedBranch))
                         newIssues++;
                 }
 
-                if(registerSuiteFailIssues(teamcity, next.serverId, normalizeBranch, suiteCurrentStatus, trackedBranch))
+                if(registerSuiteFailIssues(tcIgnited, teamcity, next.serverId, normalizeBranch, suiteCurrentStatus, trackedBranch))
                     newIssues++;
             }
         }
@@ -244,7 +255,7 @@ public class IssueDetector {
         return "New issues found " + newIssues;
     }
 
-    private boolean registerSuiteFailIssues(IAnalyticsEnabledTeamcity teamcity,
+    private boolean registerSuiteFailIssues(ITeamcityIgnited tcIgnited, IAnalyticsEnabledTeamcity teamcity,
                                             String srvId,
                                             String normalizeBranch,
                                             SuiteCurrentStatus suiteFailure,
@@ -276,7 +287,7 @@ public class IssueDetector {
             issue.webUrl = suiteFailure.webToHist;
             issue.displayType = "New Critical Failure";
 
-            locateChanges(teamcity, firstFailedBuildId, issue);
+            locateChanges(tcIgnited, firstFailedBuildId, issue);
 
             logger.info("Register new issue for suite fail: " + issue);
 
@@ -288,24 +299,19 @@ public class IssueDetector {
         return issueFound;
     }
 
-    private void locateChanges(ITeamcity teamcity, int buildId, Issue issue) {
-        Build build = teamcity.getBuild(buildId);
+    private void locateChanges(ITeamcityIgnited teamcity, int buildId, Issue issue) {
+        final FatBuildCompacted fatBuild = teamcity.getFatBuild(buildId);
+        final int[] changes = fatBuild.changes();
+        final Collection<ChangeCompacted> allChanges = teamcity.getAllChanges(changes);
 
-        if (build.changesRef != null) {
-            ChangesList changeList = teamcity.getChangesList(build.changesRef.href);
-
-            for (ChangeRef next : changeList.changes()) {
-                if (!isNullOrEmpty(next.href)) {
-                    // just to cache this change
-                    Change change = teamcity.getChange(next.href);
-
-                    issue.addChange(change.username, change.webUrl);
-                }
-            }
+        for (ChangeCompacted next : allChanges) {
+            issue.addChange(next.vcsUsername(compactor),
+                    teamcity.host() + "/viewModification.html?modId=" + next.id());
         }
     }
 
-    private boolean registerTestFailIssues(IAnalyticsEnabledTeamcity teamcity,
+    private boolean registerTestFailIssues(ITeamcityIgnited tcIgnited,
+                                           IAnalyticsEnabledTeamcity teamcity,
                                            String srvId,
                                            String normalizeBranch,
                                            TestFailure testFailure,
@@ -362,7 +368,7 @@ public class IssueDetector {
         issue.webUrl = testFailure.webUrl;
         issue.displayType = displayType;
 
-        locateChanges(teamcity, buildId, issue);
+        locateChanges(tcIgnited, buildId, issue);
 
         logger.info("Register new issue for test fail: " + issue);
 
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/observer/BuildsInfo.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/observer/BuildsInfo.java
index d3b17c0..4366fd4 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/observer/BuildsInfo.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/observer/BuildsInfo.java
@@ -25,7 +25,7 @@ import java.util.Map;
 import java.util.Objects;
 import org.apache.ignite.ci.IAnalyticsEnabledTeamcity;
 import org.apache.ignite.ci.tcmodel.result.Build;
-import org.apache.ignite.ci.teamcity.ignited.IgniteStringCompactor;
+import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
 import org.apache.ignite.ci.user.ICredentialsProv;
 import org.apache.ignite.ci.web.model.ContributionKey;
 
@@ -64,7 +64,7 @@ public class BuildsInfo {
     private final Map<Integer, Boolean> finishedBuilds = new HashMap<>();
 
     /** */
-    public BuildsInfo(CompactBuildsInfo buildsInfo, IgniteStringCompactor strCompactor) {
+    public BuildsInfo(CompactBuildsInfo buildsInfo, IStringCompactor strCompactor) {
         this.userName = strCompactor.getStringFromId(buildsInfo.userName);
         this.date = buildsInfo.date;
         this.srvId = strCompactor.getStringFromId(buildsInfo.srvId);
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/observer/CompactBuildsInfo.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/observer/CompactBuildsInfo.java
index 6bab08d..863ce23 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/observer/CompactBuildsInfo.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/observer/CompactBuildsInfo.java
@@ -22,7 +22,8 @@ import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Objects;
-import org.apache.ignite.ci.teamcity.ignited.IgniteStringCompactor;
+
+import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
 
 /**
  *
@@ -50,7 +51,7 @@ public class CompactBuildsInfo {
     private final Map<Integer, Boolean> finishedBuilds = new HashMap<>();
 
     /** */
-    public CompactBuildsInfo(BuildsInfo buildsInfo, IgniteStringCompactor strCompactor) {
+    public CompactBuildsInfo(BuildsInfo buildsInfo, IStringCompactor strCompactor) {
         this.userName = strCompactor.getStringId(buildsInfo.userName);
         this.date = buildsInfo.date;
         this.srvId = strCompactor.getStringId(buildsInfo.srvId);
@@ -66,7 +67,7 @@ public class CompactBuildsInfo {
     }
 
     /** */
-    public BuildsInfo toBuildInfo(IgniteStringCompactor compactor) {
+    public BuildsInfo toBuildInfo(IStringCompactor compactor) {
         return new BuildsInfo(this, compactor);
     }
 
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/observer/ObserverTask.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/observer/ObserverTask.java
index 22f00e7..7716ba1 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/observer/ObserverTask.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/observer/ObserverTask.java
@@ -33,7 +33,7 @@ import org.apache.ignite.ci.db.TcHelperDb;
 import org.apache.ignite.ci.di.AutoProfiling;
 import org.apache.ignite.ci.di.MonitoredTask;
 import org.apache.ignite.ci.jira.IJiraIntegration;
-import org.apache.ignite.ci.teamcity.ignited.IgniteStringCompactor;
+import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
 import org.apache.ignite.ci.user.ICredentialsProv;
 import org.apache.ignite.ci.web.model.Visa;
 import org.apache.ignite.ci.web.model.hist.VisasHistoryStorage;
@@ -63,7 +63,7 @@ public class ObserverTask extends TimerTask {
     @Inject private VisasHistoryStorage visasHistoryStorage;
 
     /** */
-    @Inject private IgniteStringCompactor strCompactor;
+    @Inject private IStringCompactor strCompactor;
 
     /**
      */
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 33ed6a0..8de540d 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
@@ -41,9 +41,9 @@ import org.apache.ignite.ci.observer.BuildObserver;
 import org.apache.ignite.ci.tcmodel.hist.BuildRef;
 import org.apache.ignite.ci.observer.BuildsInfo;
 import org.apache.ignite.ci.tcmodel.result.Build;
+import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
 import org.apache.ignite.ci.teamcity.ignited.ITeamcityIgnited;
 import org.apache.ignite.ci.teamcity.ignited.ITeamcityIgnitedProvider;
-import org.apache.ignite.ci.teamcity.ignited.IgniteStringCompactor;
 import org.apache.ignite.ci.web.model.VisaRequest;
 import org.apache.ignite.ci.web.model.Visa;
 import org.apache.ignite.ci.user.ICredentialsProv;
@@ -78,7 +78,7 @@ public class TcBotTriggerAndSignOffService {
     @Inject private VisasHistoryStorage visasHistoryStorage;
 
     /** */
-    @Inject IgniteStringCompactor strCompactor;
+    @Inject IStringCompactor strCompactor;
 
     /** Helper. */
     @Inject ITcHelper tcHelper;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/CompactContributionKey.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/CompactContributionKey.java
index 2d783fd..3c6a6f0 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/CompactContributionKey.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/CompactContributionKey.java
@@ -18,7 +18,8 @@
 package org.apache.ignite.ci.web.model;
 
 import java.util.Objects;
-import org.apache.ignite.ci.teamcity.ignited.IgniteStringCompactor;
+
+import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
 
 /**
  *
@@ -34,7 +35,7 @@ public class CompactContributionKey {
     public final int branchForTc;
 
     /** */
-    public CompactContributionKey(ContributionKey key, IgniteStringCompactor strCompactor) {
+    public CompactContributionKey(ContributionKey key, IStringCompactor strCompactor) {
         this.branchForTc = strCompactor.getStringId(key.branchForTc);
         this.srvId = strCompactor.getStringId(key.srvId);
         this.ticket = strCompactor.getStringId(key.ticket);
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/CompactVisa.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/CompactVisa.java
index 9d67f07..b739294 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/CompactVisa.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/CompactVisa.java
@@ -17,7 +17,7 @@
 
 package org.apache.ignite.ci.web.model;
 
-import org.apache.ignite.ci.teamcity.ignited.IgniteStringCompactor;
+import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
 import org.jetbrains.annotations.Nullable;
 
 /**
@@ -34,14 +34,14 @@ public class CompactVisa {
     public final int blockers;
 
     /** */
-    public CompactVisa(Visa visa, IgniteStringCompactor strCompactor) {
+    public CompactVisa(Visa visa, IStringCompactor strCompactor) {
         this.status = strCompactor.getStringId(visa.status);
         this.blockers = visa.blockers;
         this.jiraCommentRes = visa.getJiraCommentResponse();
     }
 
     /** */
-    public Visa toVisa(IgniteStringCompactor strCompactor) {
+    public Visa toVisa(IStringCompactor strCompactor) {
         return new Visa(strCompactor.getStringFromId(status), jiraCommentRes, blockers);
     }
 }
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/CompactVisaRequest.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/CompactVisaRequest.java
index 1fcc59f..993672c 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/CompactVisaRequest.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/CompactVisaRequest.java
@@ -18,7 +18,7 @@
 package org.apache.ignite.ci.web.model;
 
 import org.apache.ignite.ci.observer.CompactBuildsInfo;
-import org.apache.ignite.ci.teamcity.ignited.IgniteStringCompactor;
+import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
 
 /**
  *
@@ -31,14 +31,14 @@ public class CompactVisaRequest {
     public final CompactBuildsInfo compactInfo;
 
     /** */
-    public CompactVisaRequest(VisaRequest visaReq, IgniteStringCompactor strCompactor) {
+    public CompactVisaRequest(VisaRequest visaReq, IStringCompactor strCompactor) {
         compactInfo = new CompactBuildsInfo(visaReq.getInfo(), strCompactor);
 
         compactVisa = new CompactVisa(visaReq.getResult(), strCompactor);
     }
 
     /** */
-    public VisaRequest toVisaRequest(IgniteStringCompactor strCompactor) {
+    public VisaRequest toVisaRequest(IStringCompactor strCompactor) {
         return new VisaRequest(compactInfo.toBuildInfo(strCompactor)).setResult(compactVisa.toVisa(strCompactor));
     }
 
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/Version.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/Version.java
index 0b91e9c..3a5fa91 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/Version.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/Version.java
@@ -23,7 +23,7 @@ package org.apache.ignite.ci.web.model;
     public static final String GITHUB_REF = "https://github.com/apache/ignite-teamcity-bot";
 
     /** TC Bot Version. */
-    public static final String VERSION = "20181110";
+    public static final String VERSION = "20181111";
 
     /** TC Bot Version. */
     public String version = VERSION;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/hist/VisasHistoryStorage.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/hist/VisasHistoryStorage.java
index 842d86d..d211c40 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/hist/VisasHistoryStorage.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/hist/VisasHistoryStorage.java
@@ -30,7 +30,7 @@ import javax.cache.Cache;
 import javax.inject.Inject;
 import org.apache.ignite.Ignite;
 import org.apache.ignite.ci.db.TcHelperDb;
-import org.apache.ignite.ci.teamcity.ignited.IgniteStringCompactor;
+import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
 import org.apache.ignite.ci.web.model.CompactContributionKey;
 import org.apache.ignite.ci.web.model.CompactVisaRequest;
 import org.apache.ignite.ci.web.model.ContributionKey;
@@ -46,7 +46,7 @@ public class VisasHistoryStorage {
 
     /** */
     @Inject
-    private IgniteStringCompactor strCompactor;
+    private IStringCompactor strCompactor;
 
     /** */
     @Inject