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/06/07 22:17:06 UTC

[ignite-teamcity-bot] branch master updated: TC Bot engine module introduced

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 55ca3f4  TC Bot engine module introduced
55ca3f4 is described below

commit 55ca3f4a88bd8274ffa272eca2e4ce8a1acbf272
Author: Dmitriy Pavlov <dp...@apache.org>
AuthorDate: Sat Jun 8 01:16:57 2019 +0300

    TC Bot engine module introduced
---
 ignite-tc-helper-web/build.gradle                    |  9 +--------
 .../org/apache/ignite/ci/issue/EventTemplates.java   |  7 +------
 .../ignite/ci/tcbot/builds/CompareBuildsService.java |  2 +-
 .../ignite/ci/tcbot/chain/BuildChainProcessor.java   | 12 ++++++------
 .../ignite/ci/tcbot/chain/PrChainsProcessor.java     |  8 ++++----
 .../ci/tcbot/chain/TrackedBranchChainsProcessor.java |  6 +++---
 .../ignite/ci/tcbot/trends/MasterTrendsService.java  |  2 +-
 .../model/current/ChainAtServerCurrentStatus.java    |  8 ++++----
 .../ci/web/model/current/SuiteCurrentStatus.java     |  4 ++--
 .../ignite/ci/web/model/current/TestFailure.java     |  4 ++--
 .../ignite/ci/web/rest/GetChainResultsAsHtml.java    |  8 ++++----
 .../ci/web/rest/build/GetBuildTestFailures.java      |  6 +++---
 .../ci/tcbot/chain/BuildChainProcessorTest.java      | 10 +++++-----
 settings.gradle                                      |  1 +
 .../ignite/tcbot/common}/util/CollectionUtil.java    |  2 +-
 .../apache/ignite/tcbot/common}/util/FutureUtil.java |  9 +++++----
 .../build.gradle                                     | 20 +++++++++-----------
 .../ignite/tcbot/engine/chain}/FullChainRunCtx.java  |  9 +++++----
 .../tcbot/engine/chain}/IMultTestOccurrence.java     |  2 +-
 .../ignite/tcbot/engine/chain}/ISuiteResults.java    |  2 +-
 .../tcbot/engine/chain}/LatestRebuildMode.java       |  2 +-
 .../ignite/tcbot/engine/chain}/MultBuildRunCtx.java  | 14 +++++++-------
 .../ignite/tcbot/engine/chain}/ProcessLogsMode.java  |  2 +-
 .../tcbot/engine/chain}/SingleBuildRunCtx.java       |  9 +++++----
 .../tcbot/engine/chain}/TestCompactedMult.java       |  2 +-
 .../ci/teamcity/ignited/mute/MuteInfoCompacted.java  |  9 ++++++++-
 .../ci/teamcity/ignited/mute/MuteScopeCompacted.java |  3 +++
 .../apache/ignite/tcignited/TeamcityIgnitedImpl.java |  4 ++--
 .../ignite/tcignited/TeamcityIgnitedModule.java      |  4 ++--
 .../teamcity/ignited => tcignited}/mute/MuteDao.java | 15 ++++++++-------
 .../ignited => tcignited}/mute/MuteSync.java         |  2 +-
 31 files changed, 99 insertions(+), 98 deletions(-)

diff --git a/ignite-tc-helper-web/build.gradle b/ignite-tc-helper-web/build.gradle
index 27fe1a7..9f5c512 100644
--- a/ignite-tc-helper-web/build.gradle
+++ b/ignite-tc-helper-web/build.gradle
@@ -31,8 +31,7 @@ dependencies {
     compile (project(":tcbot-common"));
     compile (project(":tcbot-teamcity"));
     compile (project(":tcbot-teamcity-ignited"));
-
-    compile group: 'com.google.guava', name: 'guava', version: guavaVer
+    compile (project(":tcbot-engine"));
 
     compile group: 'org.apache.ignite', name: 'ignite-core', version: ignVer
     compile group: 'org.apache.ignite', name: 'ignite-slf4j', version: ignVer
@@ -41,13 +40,9 @@ dependencies {
     compile group: 'org.slf4j', name: 'slf4j-api', version: slf4jVer
     compile group: 'org.slf4j', name: 'jul-to-slf4j', version: slf4jVer
 
-
     compile group: 'ch.qos.logback', name: 'logback-core', version: logbackVer
     compile group: 'ch.qos.logback', name: 'logback-classic', version: logbackVer
 
-    //Apache License Version 2.0
-    compile group: 'com.google.code.gson', name: 'gson', version: '2.8.2'
-
     compile group: 'org.eclipse.jetty', name: 'jetty-util', version: jettyVer
     compile group: 'org.eclipse.jetty', name: 'jetty-server', version: jettyVer
     compile group: 'org.eclipse.jetty', name: 'jetty-webapp', version: jettyVer
@@ -71,8 +66,6 @@ dependencies {
 
     compile group: 'com.ullink.slack', name: 'simpleslackapi', version: '1.2.0'
 
-    compile group: 'com.google.inject', name: 'guice', version: '4.2.0'
-
     compile group: 'org.xerial.snappy', name: 'snappy-java', version: '1.1.7.2'
 
 
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 e76b5ba..d824ef1 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
@@ -34,11 +34,6 @@ public class EventTemplates {
             new int[]{FAIL, FAIL, FAIL, FAIL}
     );
 
-    public static final EventTemplate fixOfFailure = new EventTemplate(
-            new int[]{FAIL, FAIL, FAIL},
-            new int[]{OK, OK, OK, OK, OK}
-    );
-
     public static final EventTemplate newCriticalFailure = new EventTemplate(
             new int[]{RES_OK_OR_FAILURE.getCode(), RES_OK_OR_FAILURE.getCode(), RES_OK_OR_FAILURE.getCode(), RES_OK_OR_FAILURE.getCode(), RES_OK_OR_FAILURE.getCode()},
             new int[]{RES_CRITICAL_FAILURE.getCode(), RES_CRITICAL_FAILURE.getCode(), RES_CRITICAL_FAILURE.getCode(), RES_CRITICAL_FAILURE.getCode()}
@@ -59,7 +54,7 @@ public class EventTemplates {
     public static ArrayList<EventTemplate> templates;
 
     static {
-        templates = Lists.newArrayList(newFailure, newCriticalFailure, fixOfFailure,
+        templates = Lists.newArrayList(newFailure, newCriticalFailure,
             newContributedTestFailure, newFailureForFlakyTest);
     }
 }
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/builds/CompareBuildsService.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/builds/CompareBuildsService.java
index 95c1fa1..2fe7752 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/builds/CompareBuildsService.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/builds/CompareBuildsService.java
@@ -20,7 +20,7 @@ package org.apache.ignite.ci.tcbot.builds;
 import java.util.ArrayList;
 import java.util.List;
 import javax.inject.Inject;
-import org.apache.ignite.ci.analysis.MultBuildRunCtx;
+import org.apache.ignite.tcbot.engine.chain.MultBuildRunCtx;
 import org.apache.ignite.ci.tcbot.chain.BuildChainProcessor;
 import org.apache.ignite.tcbot.persistence.IStringCompactor;
 import org.apache.ignite.tcignited.ITeamcityIgnited;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/chain/BuildChainProcessor.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/chain/BuildChainProcessor.java
index 8d0bfbb..2f69f69 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/chain/BuildChainProcessor.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/chain/BuildChainProcessor.java
@@ -19,15 +19,15 @@ package org.apache.ignite.ci.tcbot.chain;
 
 import com.google.common.base.Preconditions;
 import com.google.common.util.concurrent.Futures;
-import org.apache.ignite.ci.analysis.FullChainRunCtx;
-import org.apache.ignite.ci.analysis.MultBuildRunCtx;
-import org.apache.ignite.ci.analysis.SingleBuildRunCtx;
-import org.apache.ignite.ci.analysis.mode.LatestRebuildMode;
-import org.apache.ignite.ci.analysis.mode.ProcessLogsMode;
+import org.apache.ignite.tcbot.engine.chain.FullChainRunCtx;
+import org.apache.ignite.tcbot.engine.chain.MultBuildRunCtx;
+import org.apache.ignite.tcbot.engine.chain.SingleBuildRunCtx;
+import org.apache.ignite.tcbot.engine.chain.LatestRebuildMode;
+import org.apache.ignite.tcbot.engine.chain.ProcessLogsMode;
 import org.apache.ignite.ci.teamcity.ignited.BuildRefCompacted;
 import org.apache.ignite.ci.teamcity.ignited.buildtype.ParametersCompacted;
 import org.apache.ignite.ci.teamcity.ignited.fatbuild.FatBuildCompacted;
-import org.apache.ignite.ci.util.FutureUtil;
+import org.apache.ignite.tcbot.common.util.FutureUtil;
 import org.apache.ignite.ci.web.TcUpdatePool;
 import org.apache.ignite.ci.web.model.long_running.LRTest;
 import org.apache.ignite.ci.web.model.long_running.SuiteLRTestsSummary;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/chain/PrChainsProcessor.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/chain/PrChainsProcessor.java
index eaf0b7a..369fb2b 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/chain/PrChainsProcessor.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/chain/PrChainsProcessor.java
@@ -22,10 +22,10 @@ import java.util.Objects;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
 import javax.inject.Inject;
-import org.apache.ignite.ci.analysis.FullChainRunCtx;
-import org.apache.ignite.ci.analysis.TestCompactedMult;
-import org.apache.ignite.ci.analysis.mode.LatestRebuildMode;
-import org.apache.ignite.ci.analysis.mode.ProcessLogsMode;
+import org.apache.ignite.tcbot.engine.chain.FullChainRunCtx;
+import org.apache.ignite.tcbot.engine.chain.TestCompactedMult;
+import org.apache.ignite.tcbot.engine.chain.LatestRebuildMode;
+import org.apache.ignite.tcbot.engine.chain.ProcessLogsMode;
 import org.apache.ignite.ci.github.ignited.IGitHubConnIgnited;
 import org.apache.ignite.ci.github.ignited.IGitHubConnIgnitedProvider;
 import org.apache.ignite.ci.jira.ignited.IJiraIgnited;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/chain/TrackedBranchChainsProcessor.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/chain/TrackedBranchChainsProcessor.java
index 4283bdf..1f1c8b4 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/chain/TrackedBranchChainsProcessor.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/chain/TrackedBranchChainsProcessor.java
@@ -21,9 +21,9 @@ import java.util.List;
 import java.util.concurrent.atomic.AtomicInteger;
 import javax.inject.Inject;
 
-import org.apache.ignite.ci.analysis.FullChainRunCtx;
-import org.apache.ignite.ci.analysis.mode.LatestRebuildMode;
-import org.apache.ignite.ci.analysis.mode.ProcessLogsMode;
+import org.apache.ignite.tcbot.engine.chain.FullChainRunCtx;
+import org.apache.ignite.tcbot.engine.chain.LatestRebuildMode;
+import org.apache.ignite.tcbot.engine.chain.ProcessLogsMode;
 import org.apache.ignite.ci.tcbot.conf.BranchTracked;
 import org.apache.ignite.tcbot.common.interceptor.AutoProfiling;
 import org.apache.ignite.ci.tcbot.conf.ITcBotConfig;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/trends/MasterTrendsService.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/trends/MasterTrendsService.java
index 71c32a6..599c2a4 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/trends/MasterTrendsService.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/trends/MasterTrendsService.java
@@ -53,7 +53,7 @@ import org.apache.ignite.tcignited.SyncMode;
 import org.apache.ignite.ci.teamcity.ignited.fatbuild.FatBuildCompacted;
 import org.apache.ignite.ci.teamcity.ignited.fatbuild.ProblemCompacted;
 import org.apache.ignite.ci.user.ITcBotUserCreds;
-import org.apache.ignite.ci.util.FutureUtil;
+import org.apache.ignite.tcbot.common.util.FutureUtil;
 import org.apache.ignite.ci.web.model.trends.BuildStatisticsSummary;
 import org.apache.ignite.ci.web.model.trends.BuildsHistory;
 import org.apache.ignite.internal.util.typedef.T2;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/current/ChainAtServerCurrentStatus.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/current/ChainAtServerCurrentStatus.java
index 1e62199..a2763f2 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/current/ChainAtServerCurrentStatus.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/current/ChainAtServerCurrentStatus.java
@@ -25,15 +25,15 @@ import java.util.Map;
 import java.util.Objects;
 import java.util.stream.Stream;
 import javax.annotation.Nullable;
-import org.apache.ignite.ci.analysis.FullChainRunCtx;
-import org.apache.ignite.ci.analysis.IMultTestOccurrence;
-import org.apache.ignite.ci.analysis.MultBuildRunCtx;
+import org.apache.ignite.tcbot.engine.chain.FullChainRunCtx;
+import org.apache.ignite.tcbot.engine.chain.IMultTestOccurrence;
+import org.apache.ignite.tcbot.engine.chain.MultBuildRunCtx;
 import org.apache.ignite.ci.github.PullRequest;
 import org.apache.ignite.ci.github.ignited.IGitHubConnIgnited;
 import org.apache.ignite.ci.github.pure.IGitHubConnection;
 import org.apache.ignite.ci.jira.ignited.IJiraIgnited;
 import org.apache.ignite.ci.tcbot.visa.BranchTicketMatcher;
-import org.apache.ignite.ci.util.CollectionUtil;
+import org.apache.ignite.tcbot.common.util.CollectionUtil;
 import org.apache.ignite.internal.util.typedef.T2;
 import org.apache.ignite.tcbot.persistence.IStringCompactor;
 import org.apache.ignite.tcignited.ITeamcityIgnited;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/current/SuiteCurrentStatus.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/current/SuiteCurrentStatus.java
index dc04d07..b03e2a2 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/current/SuiteCurrentStatus.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/current/SuiteCurrentStatus.java
@@ -29,8 +29,8 @@ import java.util.function.Function;
 import java.util.stream.Collectors;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
-import org.apache.ignite.ci.analysis.IMultTestOccurrence;
-import org.apache.ignite.ci.analysis.MultBuildRunCtx;
+import org.apache.ignite.tcbot.engine.chain.IMultTestOccurrence;
+import org.apache.ignite.tcbot.engine.chain.MultBuildRunCtx;
 import org.apache.ignite.ci.issue.EventTemplates;
 import org.apache.ignite.ci.issue.ProblemRef;
 import org.apache.ignite.tcignited.buildlog.ITestLogCheckResult;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/current/TestFailure.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/current/TestFailure.java
index 2e6f269..01464e8 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/current/TestFailure.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/current/TestFailure.java
@@ -25,8 +25,8 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
-import org.apache.ignite.ci.analysis.IMultTestOccurrence;
-import org.apache.ignite.ci.analysis.TestCompactedMult;
+import org.apache.ignite.tcbot.engine.chain.IMultTestOccurrence;
+import org.apache.ignite.tcbot.engine.chain.TestCompactedMult;
 import org.apache.ignite.ci.issue.EventTemplates;
 import org.apache.ignite.ci.issue.ProblemRef;
 import org.apache.ignite.tcignited.buildlog.LogMsgToWarn;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/GetChainResultsAsHtml.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/GetChainResultsAsHtml.java
index 43c2b5c..727d793 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/GetChainResultsAsHtml.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/GetChainResultsAsHtml.java
@@ -31,15 +31,15 @@ import javax.ws.rs.core.Context;
 import com.google.inject.Injector;
 import org.apache.ignite.ci.tcbot.chain.BuildChainProcessor;
 import org.apache.ignite.tcservice.ITeamcity;
-import org.apache.ignite.ci.analysis.FullChainRunCtx;
-import org.apache.ignite.ci.analysis.mode.LatestRebuildMode;
-import org.apache.ignite.ci.analysis.mode.ProcessLogsMode;
+import org.apache.ignite.tcbot.engine.chain.FullChainRunCtx;
+import org.apache.ignite.tcbot.engine.chain.LatestRebuildMode;
+import org.apache.ignite.tcbot.engine.chain.ProcessLogsMode;
 import org.apache.ignite.tcbot.persistence.IStringCompactor;
 import org.apache.ignite.tcignited.ITeamcityIgnited;
 import org.apache.ignite.tcignited.ITeamcityIgnitedProvider;
 import org.apache.ignite.tcignited.SyncMode;
 import org.apache.ignite.ci.user.ITcBotUserCreds;
-import org.apache.ignite.ci.util.FutureUtil;
+import org.apache.ignite.tcbot.common.util.FutureUtil;
 import org.apache.ignite.ci.web.CtxListener;
 import org.apache.ignite.ci.web.model.current.ChainAtServerCurrentStatus;
 import org.apache.ignite.ci.web.model.current.SuiteCurrentStatus;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/build/GetBuildTestFailures.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/build/GetBuildTestFailures.java
index 6525ba1..4d57e58 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/build/GetBuildTestFailures.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/build/GetBuildTestFailures.java
@@ -30,9 +30,9 @@ import javax.ws.rs.Produces;
 import javax.ws.rs.QueryParam;
 import javax.ws.rs.core.Context;
 import javax.ws.rs.core.MediaType;
-import org.apache.ignite.ci.analysis.FullChainRunCtx;
-import org.apache.ignite.ci.analysis.mode.LatestRebuildMode;
-import org.apache.ignite.ci.analysis.mode.ProcessLogsMode;
+import org.apache.ignite.tcbot.engine.chain.FullChainRunCtx;
+import org.apache.ignite.tcbot.engine.chain.LatestRebuildMode;
+import org.apache.ignite.tcbot.engine.chain.ProcessLogsMode;
 import org.apache.ignite.ci.tcbot.chain.BuildChainProcessor;
 import org.apache.ignite.ci.tcbot.conf.ITcBotConfig;
 import org.apache.ignite.ci.tcbot.trends.MasterTrendsService;
diff --git a/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/tcbot/chain/BuildChainProcessorTest.java b/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/tcbot/chain/BuildChainProcessorTest.java
index 2538985..72ca8f6 100644
--- a/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/tcbot/chain/BuildChainProcessorTest.java
+++ b/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/tcbot/chain/BuildChainProcessorTest.java
@@ -28,11 +28,11 @@ import java.util.stream.Collectors;
 
 import org.apache.ignite.tcignited.buildlog.IBuildLogProcessor;
 import org.apache.ignite.tcservice.ITeamcity;
-import org.apache.ignite.ci.analysis.FullChainRunCtx;
-import org.apache.ignite.ci.analysis.IMultTestOccurrence;
-import org.apache.ignite.ci.analysis.MultBuildRunCtx;
-import org.apache.ignite.ci.analysis.mode.LatestRebuildMode;
-import org.apache.ignite.ci.analysis.mode.ProcessLogsMode;
+import org.apache.ignite.tcbot.engine.chain.FullChainRunCtx;
+import org.apache.ignite.tcbot.engine.chain.IMultTestOccurrence;
+import org.apache.ignite.tcbot.engine.chain.MultBuildRunCtx;
+import org.apache.ignite.tcbot.engine.chain.LatestRebuildMode;
+import org.apache.ignite.tcbot.engine.chain.ProcessLogsMode;
 import org.apache.ignite.tcservice.model.hist.BuildRef;
 import org.apache.ignite.tcservice.model.result.tests.TestOccurrence;
 import org.apache.ignite.tcservice.model.result.tests.TestOccurrenceFull;
diff --git a/settings.gradle b/settings.gradle
index 9e31c91..240b0c5 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -5,4 +5,5 @@ include 'tcbot-common'
 include 'tcbot-persistence'
 include 'tcbot-teamcity'
 include 'tcbot-teamcity-ignited'
+include 'tcbot-engine'
 
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/util/CollectionUtil.java b/tcbot-common/src/main/java/org/apache/ignite/tcbot/common/util/CollectionUtil.java
similarity index 96%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/util/CollectionUtil.java
rename to tcbot-common/src/main/java/org/apache/ignite/tcbot/common/util/CollectionUtil.java
index 95b9f4f..f2c8a93 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/util/CollectionUtil.java
+++ b/tcbot-common/src/main/java/org/apache/ignite/tcbot/common/util/CollectionUtil.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.ignite.ci.util;
+package org.apache.ignite.tcbot.common.util;
 
 import java.util.Comparator;
 import java.util.List;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/util/FutureUtil.java b/tcbot-common/src/main/java/org/apache/ignite/tcbot/common/util/FutureUtil.java
similarity index 93%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/util/FutureUtil.java
rename to tcbot-common/src/main/java/org/apache/ignite/tcbot/common/util/FutureUtil.java
index ef490f0..c4a8c72 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/util/FutureUtil.java
+++ b/tcbot-common/src/main/java/org/apache/ignite/tcbot/common/util/FutureUtil.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.ignite.ci.util;
+package org.apache.ignite.tcbot.common.util;
 
 import java.util.Collection;
 import java.util.concurrent.ExecutionException;
@@ -23,11 +23,12 @@ import java.util.concurrent.Future;
 import java.util.stream.Stream;
 
 import org.apache.ignite.tcbot.common.exeption.ExceptionUtil;
-import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 /**
  * Async computation util.
  */
@@ -89,7 +90,7 @@ public class FutureUtil {
      * @param listBuilds Futures to get builds.
      * @return Stream with builds.
      */
-    @NotNull public static <V> Stream<V> getResults(Collection<Future<V>> listBuilds) {
+    @Nonnull public static <V> Stream<V> getResults(Collection<Future<V>> listBuilds) {
         return listBuilds.stream().map(FutureUtil::getResult);
     }
 }
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/mode/ProcessLogsMode.java b/tcbot-engine/build.gradle
similarity index 77%
copy from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/mode/ProcessLogsMode.java
copy to tcbot-engine/build.gradle
index 9cf080a..411db8d 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/mode/ProcessLogsMode.java
+++ b/tcbot-engine/build.gradle
@@ -15,17 +15,15 @@
  * limitations under the License.
  */
 
-package org.apache.ignite.ci.analysis.mode;
+apply plugin: 'java'
 
-/**
- */
-public enum ProcessLogsMode {
-    /** Don't parse build logs. */
-    DISABLED,
-
-    /** Parse logs if suite not completed. */
-    SUITE_NOT_COMPLETE,
+repositories {
+    mavenCentral()
+    mavenLocal()
+}
 
-    /** Always parse logs. */
-    ALL
+dependencies {
+    compile (project(":tcbot-persistence"));
+    compile (project(":tcbot-teamcity-ignited")); 
 }
+ 
\ No newline at end of file
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/FullChainRunCtx.java b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/chain/FullChainRunCtx.java
similarity index 95%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/FullChainRunCtx.java
rename to tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/chain/FullChainRunCtx.java
index 56395db..b6a2eaf 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/FullChainRunCtx.java
+++ b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/chain/FullChainRunCtx.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.ignite.ci.analysis;
+package org.apache.ignite.tcbot.engine.chain;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -24,7 +24,8 @@ import java.util.concurrent.Future;
 import java.util.stream.Stream;
 import org.apache.ignite.tcservice.model.result.Build;
 import org.apache.ignite.tcbot.common.util.TimeUtil;
-import org.jetbrains.annotations.NotNull;
+
+import javax.annotation.Nonnull;
 
 /**
  *
@@ -85,7 +86,7 @@ public class FullChainRunCtx {
     /**
      * @return sum of durations of all suites printable.
      */
-    @NotNull public String getDurationPrintable() {
+    @Nonnull public String getDurationPrintable() {
         return (TimeUtil.millisToDurationPrintable(getTotalDuration()))
             + (hasFullDurationInfo() ? "" : "+");
     }
@@ -112,7 +113,7 @@ public class FullChainRunCtx {
         return (TimeUtil.millisToDurationPrintable(tests));
     }
 
-    @NotNull public Stream<MultBuildRunCtx> suitesNonComposite() {
+    @Nonnull public Stream<MultBuildRunCtx> suitesNonComposite() {
         return suites().filter(ctx -> !ctx.isComposite());
     }
 
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/IMultTestOccurrence.java b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/chain/IMultTestOccurrence.java
similarity index 96%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/IMultTestOccurrence.java
rename to tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/chain/IMultTestOccurrence.java
index a403219..2348d0f 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/IMultTestOccurrence.java
+++ b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/chain/IMultTestOccurrence.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.ignite.ci.analysis;
+package org.apache.ignite.tcbot.engine.chain;
 
 import org.apache.ignite.tcservice.model.result.tests.TestOccurrenceFull;
 import org.apache.ignite.tcignited.history.IRunHistory;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/ISuiteResults.java b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/chain/ISuiteResults.java
similarity index 96%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/ISuiteResults.java
rename to tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/chain/ISuiteResults.java
index d981ff7..569b6be 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/ISuiteResults.java
+++ b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/chain/ISuiteResults.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.ignite.ci.analysis;
+package org.apache.ignite.tcbot.engine.chain;
 
 /**
  * Results from one or several builds for specific build type.
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/mode/LatestRebuildMode.java b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/chain/LatestRebuildMode.java
similarity index 95%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/mode/LatestRebuildMode.java
rename to tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/chain/LatestRebuildMode.java
index 9583f5a..69fcfb4 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/mode/LatestRebuildMode.java
+++ b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/chain/LatestRebuildMode.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.ignite.ci.analysis.mode;
+package org.apache.ignite.tcbot.engine.chain;
 
 public enum LatestRebuildMode {
     /** None rebuilds are applied. */
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/MultBuildRunCtx.java b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/chain/MultBuildRunCtx.java
similarity index 98%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/MultBuildRunCtx.java
rename to tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/chain/MultBuildRunCtx.java
index 5fdfb8e..a794110 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/MultBuildRunCtx.java
+++ b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/chain/MultBuildRunCtx.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.ignite.ci.analysis;
+package org.apache.ignite.tcbot.engine.chain;
 
 import com.google.common.base.Strings;
 import java.util.ArrayList;
@@ -33,11 +33,13 @@ import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.apache.ignite.ci.teamcity.ignited.change.ChangeCompacted;
 import org.apache.ignite.ci.teamcity.ignited.fatbuild.ProblemCompacted;
 import org.apache.ignite.ci.teamcity.ignited.fatbuild.TestCompacted;
-import org.apache.ignite.ci.util.CollectionUtil;
 import org.apache.ignite.tcbot.common.conf.ITcServerConfig;
+import org.apache.ignite.tcbot.common.util.CollectionUtil;
 import org.apache.ignite.tcbot.persistence.IStringCompactor;
 import org.apache.ignite.tcignited.ITeamcityIgnited;
 import org.apache.ignite.tcignited.buildlog.ILogCheckResult;
@@ -46,8 +48,6 @@ import org.apache.ignite.tcignited.history.IRunHistory;
 import org.apache.ignite.tcservice.model.hist.BuildRef;
 import org.apache.ignite.tcservice.model.result.problems.ProblemOccurrence;
 import org.apache.ignite.tcservice.model.result.stat.Statistics;
-import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
 
 /**
  * Run configuration execution results loaded from different API URLs. Includes tests and problem occurrences; if logs
@@ -120,7 +120,7 @@ public class MultBuildRunCtx implements ISuiteResults {
         return buildsStream().allMatch(bCtx -> !bCtx.isComposite() && bCtx.isCancelled());
     }
 
-    @NotNull public Stream<ProblemCompacted> allProblemsInAllBuilds() {
+    @Nonnull public Stream<ProblemCompacted> allProblemsInAllBuilds() {
         return buildsStream().flatMap(SingleBuildRunCtx::getProblemsStream);
     }
 
@@ -206,7 +206,7 @@ public class MultBuildRunCtx implements ISuiteResults {
         return (int)getFailedTestsNames().count();
     }
 
-    @NotNull public Stream<String> getFailedTestsNames() {
+    @Nonnull public Stream<String> getFailedTestsNames() {
         return buildsStream().flatMap(SingleBuildRunCtx::getFailedNotMutedTestNames).distinct();
     }
 
@@ -505,7 +505,7 @@ public class MultBuildRunCtx implements ISuiteResults {
      * @param baseBranchHist Base branch history for suite.
      * @param tcSrvCfg
      */
-    @NotNull public String getPossibleBlockerComment(@Nonnull IStringCompactor compactor,
+    @Nonnull public String getPossibleBlockerComment(@Nonnull IStringCompactor compactor,
         @Nullable IRunHistory baseBranchHist,
         @Nonnull ITcServerConfig tcSrvCfg) {
         StringBuilder res = new StringBuilder();
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/mode/ProcessLogsMode.java b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/chain/ProcessLogsMode.java
similarity index 95%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/mode/ProcessLogsMode.java
rename to tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/chain/ProcessLogsMode.java
index 9cf080a..5203ba0 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/mode/ProcessLogsMode.java
+++ b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/chain/ProcessLogsMode.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.ignite.ci.analysis.mode;
+package org.apache.ignite.tcbot.engine.chain;
 
 /**
  */
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/SingleBuildRunCtx.java b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/chain/SingleBuildRunCtx.java
similarity index 98%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/SingleBuildRunCtx.java
rename to tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/chain/SingleBuildRunCtx.java
index 6854920..dab646e 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/SingleBuildRunCtx.java
+++ b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/chain/SingleBuildRunCtx.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.ignite.ci.analysis;
+package org.apache.ignite.tcbot.engine.chain;
 
 import com.google.common.base.Preconditions;
 import com.google.common.base.Strings;
@@ -32,23 +32,24 @@ import java.util.concurrent.Future;
 import java.util.regex.Pattern;
 import java.util.stream.Stream;
 import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.apache.ignite.ci.teamcity.ignited.buildtype.ParametersCompacted;
 import org.apache.ignite.ci.teamcity.ignited.change.ChangeCompacted;
 import org.apache.ignite.ci.teamcity.ignited.fatbuild.FatBuildCompacted;
 import org.apache.ignite.ci.teamcity.ignited.fatbuild.ProblemCompacted;
 import org.apache.ignite.ci.teamcity.ignited.fatbuild.TestCompacted;
-import org.apache.ignite.ci.util.FutureUtil;
 import org.apache.ignite.tcbot.common.conf.IBuildParameterSpec;
 import org.apache.ignite.tcbot.common.conf.ITcServerConfig;
+import org.apache.ignite.tcbot.common.util.FutureUtil;
 import org.apache.ignite.tcbot.persistence.IStringCompactor;
 import org.apache.ignite.tcignited.buildlog.ILogCheckResult;
 import org.apache.ignite.tcignited.buildlog.ITestLogCheckResult;
 import org.apache.ignite.tcservice.ITeamcity;
 import org.apache.ignite.tcservice.model.result.tests.TestOccurrenceFull;
-import org.jetbrains.annotations.Nullable;
 
 /**
- * Single build ocurrence,
+ * Single build occurrence with changes, tag and log results.
  */
 public class SingleBuildRunCtx implements ISuiteResults {
     /** Build compacted. */
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/TestCompactedMult.java b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/chain/TestCompactedMult.java
similarity index 98%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/TestCompactedMult.java
rename to tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/chain/TestCompactedMult.java
index 45b548f..908bc5f 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/TestCompactedMult.java
+++ b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/chain/TestCompactedMult.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.ignite.ci.analysis;
+package org.apache.ignite.tcbot.engine.chain;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/tcbot-teamcity-ignited/src/main/java/org/apache/ignite/ci/teamcity/ignited/mute/MuteInfoCompacted.java b/tcbot-teamcity-ignited/src/main/java/org/apache/ignite/ci/teamcity/ignited/mute/MuteInfoCompacted.java
index 82e2703..630f9e6 100644
--- a/tcbot-teamcity-ignited/src/main/java/org/apache/ignite/ci/teamcity/ignited/mute/MuteInfoCompacted.java
+++ b/tcbot-teamcity-ignited/src/main/java/org/apache/ignite/ci/teamcity/ignited/mute/MuteInfoCompacted.java
@@ -20,6 +20,8 @@ package org.apache.ignite.ci.teamcity.ignited.mute;
 import com.google.common.base.Objects;
 import java.util.ArrayList;
 import java.util.List;
+
+import org.apache.ignite.tcbot.persistence.Persisted;
 import org.apache.ignite.tcservice.model.mute.MuteAssignment;
 import org.apache.ignite.tcservice.model.mute.MuteInfo;
 import org.apache.ignite.tcservice.model.mute.MuteTarget;
@@ -31,6 +33,7 @@ import org.apache.ignite.internal.util.typedef.F;
 /**
  * @see MuteInfo
  */
+@Persisted
 public class MuteInfoCompacted {
     /** Mute id. */
     int id;
@@ -54,7 +57,7 @@ public class MuteInfoCompacted {
      * @param mute Mute to compact.
      * @param comp Compactor.
      */
-    MuteInfoCompacted(MuteInfo mute, IStringCompactor comp) {
+    public MuteInfoCompacted(MuteInfo mute, IStringCompactor comp) {
         id = mute.id;
 
         muteDate = TimeUtil.tcSimpleDateToTimestamp(mute.assignment.muteDate);
@@ -126,4 +129,8 @@ public class MuteInfoCompacted {
     @Override public int hashCode() {
         return Objects.hashCode(id);
     }
+
+    public int id() {
+        return id;
+    }
 }
diff --git a/tcbot-teamcity-ignited/src/main/java/org/apache/ignite/ci/teamcity/ignited/mute/MuteScopeCompacted.java b/tcbot-teamcity-ignited/src/main/java/org/apache/ignite/ci/teamcity/ignited/mute/MuteScopeCompacted.java
index ffaf473..945f252 100644
--- a/tcbot-teamcity-ignited/src/main/java/org/apache/ignite/ci/teamcity/ignited/mute/MuteScopeCompacted.java
+++ b/tcbot-teamcity-ignited/src/main/java/org/apache/ignite/ci/teamcity/ignited/mute/MuteScopeCompacted.java
@@ -19,6 +19,8 @@ package org.apache.ignite.ci.teamcity.ignited.mute;
 
 import java.util.ArrayList;
 import java.util.List;
+
+import org.apache.ignite.tcbot.persistence.Persisted;
 import org.apache.ignite.tcservice.model.conf.BuildType;
 import org.apache.ignite.tcservice.model.conf.Project;
 import org.apache.ignite.tcservice.model.mute.MuteScope;
@@ -29,6 +31,7 @@ import org.apache.ignite.internal.util.typedef.F;
 /**
  *
  */
+@Persisted
 public class MuteScopeCompacted {
     /** Project. Project id. */
     int projectId;
diff --git a/tcbot-teamcity-ignited/src/main/java/org/apache/ignite/tcignited/TeamcityIgnitedImpl.java b/tcbot-teamcity-ignited/src/main/java/org/apache/ignite/tcignited/TeamcityIgnitedImpl.java
index b35db62..7ff11a4 100644
--- a/tcbot-teamcity-ignited/src/main/java/org/apache/ignite/tcignited/TeamcityIgnitedImpl.java
+++ b/tcbot-teamcity-ignited/src/main/java/org/apache/ignite/tcignited/TeamcityIgnitedImpl.java
@@ -52,8 +52,8 @@ import org.apache.ignite.ci.teamcity.ignited.change.ChangeCompacted;
 import org.apache.ignite.ci.teamcity.ignited.change.ChangeDao;
 import org.apache.ignite.ci.teamcity.ignited.change.ChangeSync;
 import org.apache.ignite.ci.teamcity.ignited.fatbuild.FatBuildCompacted;
-import org.apache.ignite.ci.teamcity.ignited.mute.MuteDao;
-import org.apache.ignite.ci.teamcity.ignited.mute.MuteSync;
+import org.apache.ignite.tcignited.mute.MuteDao;
+import org.apache.ignite.tcignited.mute.MuteSync;
 import org.apache.ignite.ci.teamcity.ignited.runhist.InvocationData;
 import org.apache.ignite.tcbot.common.conf.ITcServerConfig;
 import org.apache.ignite.tcbot.common.interceptor.AutoProfiling;
diff --git a/tcbot-teamcity-ignited/src/main/java/org/apache/ignite/tcignited/TeamcityIgnitedModule.java b/tcbot-teamcity-ignited/src/main/java/org/apache/ignite/tcignited/TeamcityIgnitedModule.java
index 66fbf78..707cab8 100644
--- a/tcbot-teamcity-ignited/src/main/java/org/apache/ignite/tcignited/TeamcityIgnitedModule.java
+++ b/tcbot-teamcity-ignited/src/main/java/org/apache/ignite/tcignited/TeamcityIgnitedModule.java
@@ -29,8 +29,8 @@ import org.apache.ignite.ci.teamcity.ignited.change.ChangeDao;
 import org.apache.ignite.ci.teamcity.ignited.change.ChangeSync;
 import org.apache.ignite.tcignited.build.FatBuildDao;
 import org.apache.ignite.tcignited.build.ProactiveFatBuildSync;
-import org.apache.ignite.ci.teamcity.ignited.mute.MuteDao;
-import org.apache.ignite.ci.teamcity.ignited.mute.MuteSync;
+import org.apache.ignite.tcignited.mute.MuteDao;
+import org.apache.ignite.tcignited.mute.MuteSync;
 import org.apache.ignite.tcignited.buildlog.BuildLogProcessorModule;
 import org.apache.ignite.tcignited.history.RunHistCompactedDao;
 import org.apache.ignite.tcignited.history.RunHistSync;
diff --git a/tcbot-teamcity-ignited/src/main/java/org/apache/ignite/ci/teamcity/ignited/mute/MuteDao.java b/tcbot-teamcity-ignited/src/main/java/org/apache/ignite/tcignited/mute/MuteDao.java
similarity index 89%
rename from tcbot-teamcity-ignited/src/main/java/org/apache/ignite/ci/teamcity/ignited/mute/MuteDao.java
rename to tcbot-teamcity-ignited/src/main/java/org/apache/ignite/tcignited/mute/MuteDao.java
index e8c2401..9fc71ed 100644
--- a/tcbot-teamcity-ignited/src/main/java/org/apache/ignite/ci/teamcity/ignited/mute/MuteDao.java
+++ b/tcbot-teamcity-ignited/src/main/java/org/apache/ignite/tcignited/mute/MuteDao.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.ignite.ci.teamcity.ignited.mute;
+package org.apache.ignite.tcignited.mute;
 
 import com.google.common.base.Preconditions;
 import java.util.HashMap;
@@ -27,6 +27,7 @@ import javax.inject.Inject;
 import javax.inject.Provider;
 import org.apache.ignite.Ignite;
 import org.apache.ignite.IgniteCache;
+import org.apache.ignite.ci.teamcity.ignited.mute.MuteInfoCompacted;
 import org.apache.ignite.tcbot.common.interceptor.AutoProfiling;
 import org.apache.ignite.tcbot.persistence.CacheConfigs;
 import org.apache.ignite.tcservice.model.mute.MuteInfo;
@@ -39,7 +40,7 @@ import org.apache.ignite.internal.util.typedef.internal.U;
  */
 public class MuteDao {
     /** Cache name. */
-    public static final String TEAMCITY_MUTE_CACHE_NAME = "teamcityMute";
+    private static final String TEAMCITY_MUTE_CACHE_NAME = "teamcityMute";
 
     /** Ignite provider. */
     @Inject private Provider<Ignite> igniteProvider;
@@ -83,18 +84,18 @@ public class MuteDao {
      * @param muteId Mute id.
      * @return Key from server-project pair.
      */
-    public static long muteIdToCacheKey(int srvIdMaskHigh, int muteId) {
+    private static long muteIdToCacheKey(int srvIdMaskHigh, int muteId) {
         return (long) muteId | (long) srvIdMaskHigh << 32;
     }
 
     /**
      * Save small part of loaded mutes.
-     *
-     * @param srvIdMaskHigh Server id mask high.
+     *  @param srvIdMaskHigh Server id mask high.
      * @param chunk Chunk.
      */
+    @SuppressWarnings("WeakerAccess")
     @AutoProfiling
-    public void saveChunk(int srvIdMaskHigh, Set<MuteInfo> chunk) {
+    protected void saveChunk(int srvIdMaskHigh, Set<MuteInfo> chunk) {
         Preconditions.checkNotNull(muteCache, "init() was not called");
 
         if (F.isEmpty(chunk))
@@ -132,7 +133,7 @@ public class MuteDao {
             if ((srvId & entry.getKey()) != srvId)
                 continue;
 
-            if (entry.getValue().id > startId) {
+            if (entry.getValue().id() > startId) {
                 if (muteCache.remove(entry.getKey()))
                     rmv++;
             }
diff --git a/tcbot-teamcity-ignited/src/main/java/org/apache/ignite/ci/teamcity/ignited/mute/MuteSync.java b/tcbot-teamcity-ignited/src/main/java/org/apache/ignite/tcignited/mute/MuteSync.java
similarity index 98%
rename from tcbot-teamcity-ignited/src/main/java/org/apache/ignite/ci/teamcity/ignited/mute/MuteSync.java
rename to tcbot-teamcity-ignited/src/main/java/org/apache/ignite/tcignited/mute/MuteSync.java
index df4ed73..70ad7b5 100644
--- a/tcbot-teamcity-ignited/src/main/java/org/apache/ignite/ci/teamcity/ignited/mute/MuteSync.java
+++ b/tcbot-teamcity-ignited/src/main/java/org/apache/ignite/tcignited/mute/MuteSync.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.ignite.ci.teamcity.ignited.mute;
+package org.apache.ignite.tcignited.mute;
 
 import java.util.SortedSet;
 import java.util.concurrent.TimeUnit;