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/01 22:13:46 UTC

[ignite-teamcity-bot] branch master updated: TC Bot refactoring: deprecated class usages removal

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 78f1b7b  TC Bot refactoring: deprecated class usages removal
78f1b7b is described below

commit 78f1b7b87fb546dd5334a2f6198359b826ee1a47
Author: Dmitriy Pavlov <dp...@apache.org>
AuthorDate: Sun Jun 2 01:13:40 2019 +0300

    TC Bot refactoring: deprecated class usages removal
---
 .../apache/ignite/ci/IgnitePersistentTeamcity.java |  9 +---
 .../ignite/ci/jira/ignited/JiraIgnitedModule.java  |  4 ++
 .../org/apache/ignite/ci/jira/package-info.java    |  2 +-
 .../ignite/ci/tcbot/chain/BuildChainProcessor.java | 28 +++++-----
 .../ignite/ci/tcbot/chain/PrChainsProcessor.java   | 17 +++---
 .../tcbot/chain/TrackedBranchChainsProcessor.java  |  9 +---
 .../ci/teamcity/ignited/ITeamcityIgnited.java      |  9 +++-
 .../ci/teamcity/ignited/TeamcityIgnitedImpl.java   | 60 +++++++++++-----------
 .../ci/teamcity/ignited/TeamcityIgnitedModule.java |  2 -
 .../ci/teamcity/restcached/ITcServerProvider.java  |  3 +-
 .../restcached/TcServerCachingProvider.java        |  7 +--
 .../ci/web/model/current/SuiteCurrentStatus.java   |  4 +-
 .../ignite/ci/web/model/current/UpdateInfo.java    | 11 ++--
 .../org/apache/ignite/ci/web/rest/GetBuildLog.java | 47 +++++++----------
 .../ignite/ci/web/rest/GetChainResultsAsHtml.java  |  7 ++-
 .../ci/web/rest/build/GetBuildTestFailures.java    |  5 +-
 .../ci/tcbot/chain/BuildChainProcessorTest.java    | 10 ++--
 .../ci/tcbot/chain/MockBasedTcBotModule.java       |  3 --
 .../org/apache/ignite/tcservice/ITeamcity.java     |  4 +-
 .../ignite/tcservice/IgniteTeamcityConnection.java |  4 --
 20 files changed, 103 insertions(+), 142 deletions(-)

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 cd20e73..76c93d0 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
@@ -22,7 +22,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.SortedSet;
 import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.Executor;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.atomic.AtomicReference;
 import java.util.function.Function;
@@ -140,8 +139,8 @@ public class IgnitePersistentTeamcity implements IAnalyticsEnabledTeamcity, ITea
     }
 
     /** {@inheritDoc} */
-    @Override public CompletableFuture<File> downloadBuildLogZip(int id) {
-        return teamcity.downloadBuildLogZip(id);
+    @Override public CompletableFuture<File> downloadBuildLogZip(int buildId) {
+        return teamcity.downloadBuildLogZip(buildId);
     }
 
     /** {@inheritDoc} */
@@ -195,10 +194,6 @@ public class IgnitePersistentTeamcity implements IAnalyticsEnabledTeamcity, ITea
         });
     }
 
-    public Executor getExecutor() {
-        return this.teamcity.getExecutor();
-    }
-
     /** {@inheritDoc} */
     @Override public void setExecutor(ExecutorService executor) {
         this.teamcity.setExecutor(executor);
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/ignited/JiraIgnitedModule.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/ignited/JiraIgnitedModule.java
index ef237d4..4126b58 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/ignited/JiraIgnitedModule.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/ignited/JiraIgnitedModule.java
@@ -17,6 +17,7 @@
 package org.apache.ignite.ci.jira.ignited;
 
 import com.google.inject.AbstractModule;
+import com.google.inject.internal.SingletonScope;
 import org.apache.ignite.ci.jira.pure.JiraIntegrationModule;
 
 /**
@@ -27,6 +28,9 @@ public class JiraIgnitedModule extends AbstractModule {
     @Override protected void configure() {
         bind(IJiraIgnitedProvider.class).to(JiraIgnitedProvider.class);
 
+        bind(JiraTicketDao.class).in(new SingletonScope());
+        bind(JiraTicketSync.class).in(new SingletonScope());
+
         install(new JiraIntegrationModule());
     }
 }
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/package-info.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/package-info.java
index 4a7ae03..f7c4ecf 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/package-info.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/package-info.java
@@ -16,7 +16,7 @@
  */
 
 /**
- * This package is inteneded for interacting with Jira servers. It contains classes which is needed for injection Jira
+ * This package is intended for interacting with Jira servers. It contains classes which is needed for injection Jira
  * integration service instance via Guice. And interfaces and classes which provide specified functionality.
  */
 package org.apache.ignite.ci.jira;
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 4c0c342..40c4f15 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
@@ -134,7 +134,6 @@ public class BuildChainProcessor {
     }
 
     /**
-     * @param teamcity Teamcity.
      * @param tcIgn Teamcity Ignited.
      * @param entryPoints Entry point(s): Build(s) to start scan from.
      * @param includeLatestRebuild Include latest rebuild.
@@ -145,14 +144,13 @@ public class BuildChainProcessor {
      */
     @AutoProfiling
     public FullChainRunCtx loadFullChainContext(
-        IAnalyticsEnabledTeamcity teamcity,
-        ITeamcityIgnited tcIgn,
-        Collection<Integer> entryPoints,
-        LatestRebuildMode includeLatestRebuild,
-        ProcessLogsMode procLog,
-        boolean includeScheduledInfo,
-        @Nullable String failRateBranch,
-        SyncMode mode) {
+            ITeamcityIgnited tcIgn,
+            Collection<Integer> entryPoints,
+            LatestRebuildMode includeLatestRebuild,
+            ProcessLogsMode procLog,
+            boolean includeScheduledInfo,
+            @Nullable String failRateBranch,
+            SyncMode mode) {
 
         if (entryPoints.isEmpty())
             return new FullChainRunCtx(Build.createFakeStub());
@@ -190,7 +188,7 @@ public class BuildChainProcessor {
 
             buildsForSuite.forEach(buildCompacted -> ctx.addBuild(loadChanges(buildCompacted, tcIgn)));
 
-            analyzeTests(ctx, teamcity, procLog);
+            analyzeTests(ctx, tcIgn, procLog);
 
             fillBuildCounts(ctx, tcIgn, includeScheduledInfo);
 
@@ -364,8 +362,8 @@ public class BuildChainProcessor {
 
     @SuppressWarnings("WeakerAccess")
     @AutoProfiling
-    protected void analyzeTests(MultBuildRunCtx outCtx, ITeamcity teamcity,
-        ProcessLogsMode procLog) {
+    protected void analyzeTests(MultBuildRunCtx outCtx, ITeamcityIgnited teamcity,
+                                ProcessLogsMode procLog) {
         for (SingleBuildRunCtx ctx : outCtx.getBuilds()) {
             if ((procLog == ProcessLogsMode.SUITE_NOT_COMPLETE && ctx.hasSuiteIncompleteFailure())
                 || procLog == ProcessLogsMode.ALL)
@@ -373,7 +371,7 @@ public class BuildChainProcessor {
         }
     }
 
-    private CompletableFuture<LogCheckTask> checkBuildLogNoCache(ITeamcity teamcity, int buildId, ISuiteResults ctx) {
+    private CompletableFuture<LogCheckTask> checkBuildLogNoCache(ITeamcityIgnited teamcity, int buildId, ISuiteResults ctx) {
         final CompletableFuture<File> zipFut = teamcity.downloadBuildLogZip(buildId);
         boolean dumpLastTest = ctx.hasSuiteIncompleteFailure();
 
@@ -381,7 +379,7 @@ public class BuildChainProcessor {
             return null;
 
         return zipFut.thenApplyAsync(zipFile -> runCheckForZippedLog(dumpLastTest, zipFile),
-                teamcity.getExecutor());
+                tcUpdatePool.getService());
     }
 
 
@@ -419,7 +417,7 @@ public class BuildChainProcessor {
 
     //todo implement persistent cache for build results
     @AutoProfiling
-    public CompletableFuture<LogCheckResult> analyzeBuildLog(ITeamcity teamcity, Integer buildId, SingleBuildRunCtx ctx) {
+    public CompletableFuture<LogCheckResult> analyzeBuildLog(ITeamcityIgnited teamcity, Integer buildId, SingleBuildRunCtx ctx) {
         final Stopwatch started = Stopwatch.createStarted();
 
         CompletableFuture<LogCheckTask> fut = buildLogProcessingRunning.computeIfAbsent(buildId,
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 2e183b0..1e5f8e1 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
@@ -58,9 +58,6 @@ public class PrChainsProcessor {
     @Inject private BuildChainProcessor buildChainProcessor;
 
     /** Tc server provider. */
-    @Inject private ITcServerProvider tcSrvProvider;
-
-    /** Tc server provider. */
     @Inject private ITeamcityIgnitedProvider tcIgnitedProvider;
 
     /** */
@@ -100,14 +97,13 @@ public class PrChainsProcessor {
         final AtomicInteger runningUpdates = new AtomicInteger();
 
         //using here non persistent TC allows to skip update statistic
-        IAnalyticsEnabledTeamcity teamcity = tcSrvProvider.server(srvCode, creds);
         ITeamcityIgnited tcIgnited = tcIgnitedProvider.server(srvCode, creds);
 
         IGitHubConnIgnited gitHubConnIgnited = gitHubConnIgnitedProvider.server(srvCode);
 
         IJiraIgnited jiraIntegration = jiraIgnProv.server(srvCode);
 
-        res.setJavaFlags(teamcity, gitHubConnIgnited, jiraIntegration);
+        res.setJavaFlags(gitHubConnIgnited, jiraIntegration);
 
         LatestRebuildMode rebuild;
         if (FullQueryParams.HISTORY.equals(act))
@@ -135,8 +131,8 @@ public class PrChainsProcessor {
 
         String baseBranch = Strings.isNullOrEmpty(baseBranchForTc) ? ITeamcity.DEFAULT : baseBranchForTc;
 
-        final FullChainRunCtx ctx = buildChainProcessor.loadFullChainContext(teamcity,
-            tcIgnited,
+        final FullChainRunCtx ctx = buildChainProcessor.loadFullChainContext(
+                tcIgnited,
             hist,
             rebuild,
             logs,
@@ -144,7 +140,7 @@ public class PrChainsProcessor {
             baseBranch,
             mode);
 
-        final ChainAtServerCurrentStatus chainStatus = new ChainAtServerCurrentStatus(teamcity.serverCode(), branchForTc);
+        final ChainAtServerCurrentStatus chainStatus = new ChainAtServerCurrentStatus(tcIgnited.serverCode(), branchForTc);
 
         chainStatus.baseBranchForTc = baseBranch;
 
@@ -187,15 +183,14 @@ public class PrChainsProcessor {
     public List<SuiteCurrentStatus> getBlockersSuitesStatuses(String buildTypeId, String branchForTc, String srvId,
         ICredentialsProv prov, SyncMode syncMode) {
         //using here non persistent TC allows to skip update statistic
-        IAnalyticsEnabledTeamcity teamcity = tcSrvProvider.server(srvId, prov);
         ITeamcityIgnited tcIgnited = tcIgnitedProvider.server(srvId, prov);
 
         List<Integer> hist = tcIgnited.getLastNBuildsFromHistory(buildTypeId, branchForTc, 1);
 
         String baseBranch = ITeamcity.DEFAULT;
 
-        final FullChainRunCtx ctx = buildChainProcessor.loadFullChainContext(teamcity,
-            tcIgnited,
+        final FullChainRunCtx ctx = buildChainProcessor.loadFullChainContext(
+                tcIgnited,
             hist,
             LatestRebuildMode.LATEST,
             ProcessLogsMode.SUITE_NOT_COMPLETE,
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 b1b2693..d0ad75f 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
@@ -46,9 +46,6 @@ import static com.google.common.base.Strings.isNullOrEmpty;
  * Process failures for some setup tracked branch, which may be triggered/monitored by TC Bot.
  */
 public class TrackedBranchChainsProcessor {
-    /** TC Server prov. */
-    @Inject private ITcServerProvider srvProv;
-
     /** TC ignited server provider. */
     @Inject private ITeamcityIgnitedProvider tcIgnitedProv;
 
@@ -90,8 +87,6 @@ public class TrackedBranchChainsProcessor {
 
                 chainStatus.baseBranchForTc = baseBranchTc;
 
-                IAnalyticsEnabledTeamcity teamcity = srvProv.server(srvId, creds);
-
                 ITeamcityIgnited tcIgnited = tcIgnitedProv.server(srvId, creds);
 
                 String suiteIdMandatory = chainTracked.getSuiteIdMandatory();
@@ -108,8 +103,8 @@ public class TrackedBranchChainsProcessor {
 
                 boolean includeScheduled = buildResMergeCnt == 1;
 
-                final FullChainRunCtx ctx = chainProc.loadFullChainContext(teamcity,
-                    tcIgnited,
+                final FullChainRunCtx ctx = chainProc.loadFullChainContext(
+                        tcIgnited,
                     chains,
                     rebuild,
                     logs,
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/ITeamcityIgnited.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/ITeamcityIgnited.java
index c76279f..e9d0c7c 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/ITeamcityIgnited.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/ITeamcityIgnited.java
@@ -17,12 +17,15 @@
 package org.apache.ignite.ci.teamcity.ignited;
 
 import com.google.common.base.Strings;
+
+import java.io.File;
 import java.util.Collection;
 import java.util.Date;
 import java.util.Map;
 import java.util.List;
 import java.util.Optional;
 import java.util.Set;
+import java.util.concurrent.CompletableFuture;
 import javax.annotation.Nullable;
 import org.apache.ignite.ci.analysis.SuiteInBranch;
 import org.apache.ignite.ci.analysis.TestInBranch;
@@ -44,9 +47,9 @@ import org.jetbrains.annotations.NotNull;
  */
 public interface ITeamcityIgnited {
     /**
-     * @return Internal server ID as string
+     * @return Internal serverID (Code) as string
      */
-    public String serverId();
+    public String serverCode();
 
     /**
      * @return TeamCity configuration.
@@ -250,4 +253,6 @@ public interface ITeamcityIgnited {
 
         return null;
     }
+
+    CompletableFuture<File> downloadBuildLogZip(int buildId);
 }
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/TeamcityIgnitedImpl.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/TeamcityIgnitedImpl.java
index 3cde6b8..162f6dd 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/TeamcityIgnitedImpl.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/TeamcityIgnitedImpl.java
@@ -18,45 +18,17 @@ package org.apache.ignite.ci.teamcity.ignited;
 
 import com.google.common.collect.Lists;
 import com.google.common.collect.Sets;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.OptionalInt;
-import java.util.Set;
-import java.util.SortedSet;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.stream.Collectors;
-import javax.annotation.Nullable;
-import javax.inject.Inject;
-import org.apache.ignite.tcservice.ITeamcity;
 import org.apache.ignite.ci.analysis.SuiteInBranch;
 import org.apache.ignite.ci.analysis.TestInBranch;
-import org.apache.ignite.tcbot.common.interceptor.AutoProfiling;
 import org.apache.ignite.ci.di.MonitoredTask;
 import org.apache.ignite.ci.di.cache.GuavaCached;
 import org.apache.ignite.ci.di.scheduler.IScheduler;
-import org.apache.ignite.tcbot.common.conf.ITcServerConfig;
 import org.apache.ignite.ci.tcbot.trends.MasterTrendsService;
-import org.apache.ignite.tcservice.model.agent.Agent;
-import org.apache.ignite.tcservice.model.conf.Project;
-import org.apache.ignite.tcservice.model.hist.BuildRef;
-import org.apache.ignite.tcservice.model.mute.MuteInfo;
-import org.apache.ignite.tcservice.model.result.Build;
 import org.apache.ignite.ci.teamcity.ignited.buildcondition.BuildCondition;
 import org.apache.ignite.ci.teamcity.ignited.buildcondition.BuildConditionDao;
 import org.apache.ignite.ci.teamcity.ignited.buildref.BuildRefDao;
 import org.apache.ignite.ci.teamcity.ignited.buildref.BuildRefSync;
-import org.apache.ignite.ci.teamcity.ignited.buildtype.BuildTypeCompacted;
-import org.apache.ignite.ci.teamcity.ignited.buildtype.BuildTypeDao;
-import org.apache.ignite.ci.teamcity.ignited.buildtype.BuildTypeRefCompacted;
-import org.apache.ignite.ci.teamcity.ignited.buildtype.BuildTypeRefDao;
-import org.apache.ignite.ci.teamcity.ignited.buildtype.BuildTypeSync;
+import org.apache.ignite.ci.teamcity.ignited.buildtype.*;
 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;
@@ -67,12 +39,29 @@ import org.apache.ignite.ci.teamcity.ignited.mute.MuteDao;
 import org.apache.ignite.ci.teamcity.ignited.mute.MuteSync;
 import org.apache.ignite.ci.teamcity.ignited.runhist.RunHistCompactedDao;
 import org.apache.ignite.ci.teamcity.ignited.runhist.RunHistSync;
-import org.apache.ignite.tcservice.ITeamcityConn;
 import org.apache.ignite.ci.user.ICredentialsProv;
+import org.apache.ignite.tcbot.common.conf.ITcServerConfig;
+import org.apache.ignite.tcbot.common.interceptor.AutoProfiling;
+import org.apache.ignite.tcservice.ITeamcity;
+import org.apache.ignite.tcservice.ITeamcityConn;
+import org.apache.ignite.tcservice.model.agent.Agent;
+import org.apache.ignite.tcservice.model.conf.Project;
+import org.apache.ignite.tcservice.model.hist.BuildRef;
+import org.apache.ignite.tcservice.model.mute.MuteInfo;
+import org.apache.ignite.tcservice.model.result.Build;
 import org.jetbrains.annotations.NotNull;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import javax.annotation.Nullable;
+import javax.inject.Inject;
+import java.io.File;
+import java.util.*;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.stream.Collectors;
+
 import static org.apache.ignite.tcservice.model.hist.BuildRef.STATUS_UNKNOWN;
 
 /**
@@ -175,7 +164,7 @@ public class TeamcityIgnitedImpl implements ITeamcityIgnited {
     }
 
     /** {@inheritDoc} */
-    @Override public String serverId() {
+    @Override public String serverCode() {
         return srvCode;
     }
 
@@ -430,6 +419,15 @@ public class TeamcityIgnitedImpl implements ITeamcityIgnited {
         return conn.agents(connected, authorized);
     }
 
+    @Override
+    @Deprecated
+    public CompletableFuture<File> downloadBuildLogZip(int buildId) {
+        if (conn instanceof ITeamcity)
+            return ((ITeamcity) conn).downloadBuildLogZip(buildId);
+
+        return null;
+    }
+
     /** {@inheritDoc} */
     @Override public List<String> getCompositeBuildTypesIdsSortedByBuildNumberCounter(String projectId) {
         return buildTypeSync.getCompositeBuildTypesIdsSortedByBuildNumberCounter(srvIdMaskHigh, projectId, conn);
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/TeamcityIgnitedModule.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/TeamcityIgnitedModule.java
index 281dc0b..1c0e2f8 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/TeamcityIgnitedModule.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/TeamcityIgnitedModule.java
@@ -62,8 +62,6 @@ public class TeamcityIgnitedModule extends AbstractModule {
         bind(RunHistSync.class).in(new SingletonScope());
         bind(MuteDao.class).in(new SingletonScope());
         bind(MuteSync.class).in(new SingletonScope());
-        bind(JiraTicketDao.class).in(new SingletonScope());
-        bind(JiraTicketSync.class).in(new SingletonScope());
 
         bind(IStringCompactor.class).to(IgniteStringCompactor.class).in(new SingletonScope());
 
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/restcached/ITcServerProvider.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/restcached/ITcServerProvider.java
index 9b8cbe0..4b785b7 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/restcached/ITcServerProvider.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/restcached/ITcServerProvider.java
@@ -18,6 +18,7 @@ package org.apache.ignite.ci.teamcity.restcached;
 
 import org.apache.ignite.ci.IAnalyticsEnabledTeamcity;
 import org.apache.ignite.ci.user.ICredentialsProv;
+import org.apache.ignite.tcservice.ITeamcity;
 
 import javax.annotation.Nullable;
 
@@ -29,5 +30,5 @@ public interface ITcServerProvider {
      * @param srvId Server id.
      * @param prov Prov.
      */
-    public IAnalyticsEnabledTeamcity server(String srvId, @Nullable ICredentialsProv prov);
+    public ITeamcity server(String srvId, @Nullable ICredentialsProv prov);
 }
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/restcached/TcServerCachingProvider.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/restcached/TcServerCachingProvider.java
index e4c1715..c36debb 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/restcached/TcServerCachingProvider.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/restcached/TcServerCachingProvider.java
@@ -22,6 +22,7 @@ import com.google.common.cache.CacheBuilder;
 import org.apache.ignite.ci.IAnalyticsEnabledTeamcity;
 import org.apache.ignite.ci.user.ICredentialsProv;
 import org.apache.ignite.tcbot.common.exeption.ExceptionUtil;
+import org.apache.ignite.tcservice.ITeamcity;
 
 import javax.annotation.Nullable;
 import javax.inject.Inject;
@@ -37,7 +38,7 @@ class TcServerCachingProvider implements ITcServerProvider {
     private ITcServerFactory srvFactory;
 
     /** Servers. */
-    private final Cache<String, IAnalyticsEnabledTeamcity> srvs
+    private final Cache<String, ITeamcity> srvs
         = CacheBuilder.newBuilder()
         .maximumSize(100)
         .expireAfterAccess(16, TimeUnit.MINUTES)
@@ -45,12 +46,12 @@ class TcServerCachingProvider implements ITcServerProvider {
         .build();
 
     /** {@inheritDoc} */
-    @Override public IAnalyticsEnabledTeamcity server(String srvId, @Nullable ICredentialsProv prov) {
+    @Override public ITeamcity server(String srvId, @Nullable ICredentialsProv prov) {
         String fullKey = Strings.nullToEmpty(prov == null ? null : prov.getUser(srvId)) + ":" + Strings.nullToEmpty(srvId);
 
         try {
             return srvs.get(fullKey, () -> {
-                IAnalyticsEnabledTeamcity teamcity = srvFactory.createServer(srvId);
+                ITeamcity teamcity = srvFactory.createServer(srvId);
 
                 if (prov != null) {
                     final String user = prov.getUser(srvId);
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 6998a80..876cddb 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
@@ -217,14 +217,14 @@ import static org.apache.ignite.ci.util.UrlUtil.escape;
 
         suite.getBuildsWithThreadDump().forEach(buildId -> {
             webUrlThreadDump = "/rest/" + GetBuildLog.GET_BUILD_LOG + "/" + GetBuildLog.THREAD_DUMP
-                + "?" + GetBuildLog.SERVER_ID + "=" + tcIgnited.serverId()
+                + "?" + GetBuildLog.SERVER_ID + "=" + tcIgnited.serverCode()
                 + "&" + GetBuildLog.BUILD_NO + "=" + buildId
                 + "&" + GetBuildLog.FILE_IDX + "=" + -1;
         });
 
         runningBuildCount = suite.runningBuildCount();
         queuedBuildCount = suite.queuedBuildCount();
-        serverId = tcIgnited.serverId();
+        serverId = tcIgnited.serverCode();
         this.suiteId = suite.suiteId();
         branchName = branchForLink(suite.branchName());
 
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/current/UpdateInfo.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/current/UpdateInfo.java
index 2df1fd1..240e704 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/current/UpdateInfo.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/current/UpdateInfo.java
@@ -17,7 +17,6 @@
 
 package org.apache.ignite.ci.web.model.current;
 
-import org.apache.ignite.ci.IAnalyticsEnabledTeamcity;
 import org.apache.ignite.ci.github.ignited.IGitHubConnIgnited;
 import org.apache.ignite.ci.jira.ignited.IJiraIgnited;
 
@@ -52,15 +51,13 @@ import org.apache.ignite.ci.jira.ignited.IJiraIgnited;
     }
 
     /**
-     * @param teamcity TeamCity to get info about tokens.
      * @param gitHubConn GitHub integration associated with this server.
      * @param jiraIntegration JIRA Integration
      */
-    public void setJavaFlags(IAnalyticsEnabledTeamcity teamcity,
-        IGitHubConnIgnited gitHubConn,
-        IJiraIgnited jiraIntegration) {
-        if (teamcity.isTeamCityTokenAvailable())
-            javaFlags |= TEAMCITY_FLAG;
+    public void setJavaFlags(IGitHubConnIgnited gitHubConn,
+                             IJiraIgnited jiraIntegration) {
+        //since user has logged in, TC flag should be set
+        javaFlags |= TEAMCITY_FLAG;
 
         if (gitHubConn.config().isGitTokenAvailable())
             javaFlags |= GITHUB_FLAG;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/GetBuildLog.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/GetBuildLog.java
index 03e00fb..232ba22 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/GetBuildLog.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/GetBuildLog.java
@@ -17,13 +17,11 @@
 
 package org.apache.ignite.ci.web.rest;
 
-import java.io.BufferedReader;
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.OutputStreamWriter;
-import java.io.Writer;
-import java.nio.charset.StandardCharsets;
-import java.nio.file.Files;
+import org.apache.ignite.ci.ITcAnalytics;
+import org.apache.ignite.ci.teamcity.restcached.ITcServerProvider;
+import org.apache.ignite.ci.web.CtxListener;
+import org.apache.ignite.tcservice.ITeamcity;
+
 import javax.annotation.security.PermitAll;
 import javax.servlet.ServletContext;
 import javax.servlet.http.HttpServletRequest;
@@ -35,9 +33,9 @@ import javax.ws.rs.core.Context;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 import javax.ws.rs.core.StreamingOutput;
-import org.apache.ignite.ci.ITcAnalytics;
-import org.apache.ignite.ci.teamcity.restcached.ITcServerProvider;
-import org.apache.ignite.ci.web.CtxListener;
+import java.io.BufferedWriter;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
 
 /**
  * Build log download, now provides thread dumps
@@ -67,10 +65,17 @@ public class GetBuildLog {
         @QueryParam(BUILD_NO) Integer buildNo) {
 
         ITcServerProvider helper = CtxListener.getInjector(ctx).getInstance(ITcServerProvider.class);
-        ITcAnalytics srv = helper.server(srvId, null);
-        String cached = srv.getThreadDumpCached(buildNo);
+        final ITeamcity server = helper.server(srvId, null);
+
+        //todo bad code
+        if(server instanceof ITcAnalytics) {
+            ITcAnalytics srv = (ITcAnalytics) server;
+            String cached = srv.getThreadDumpCached(buildNo);
+            return sendString(cached);
+        }
+
+        return sendString("Invalid class" + server.getClass());
 
-        return sendString(cached);
     }
 
     private Response sendString(String data) {
@@ -82,20 +87,4 @@ public class GetBuildLog {
         return Response.ok(stream).build();
     }
 
-    private Response sendFile(File file) {
-        final StreamingOutput stream = os -> {
-            Writer writer = new BufferedWriter(new OutputStreamWriter(os));
-
-            try (BufferedReader reader = Files.newBufferedReader(file.toPath(), StandardCharsets.UTF_8)){
-                String line;
-                while ((line = reader.readLine()) != null) {
-                    writer.write(line);
-                    writer.write("\n");
-                }
-                writer.flush();
-            }
-        };
-        return Response.ok(stream).build();
-    }
-
 }
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 58ea700..9a8acd6 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
@@ -75,11 +75,10 @@ public class GetChainResultsAsHtml {
 
         ITcServerProvider tcHelper = injector.getInstance(ITcServerProvider.class);
         final ICredentialsProv creds = ICredentialsProv.get(req);
-        IAnalyticsEnabledTeamcity teamcity = tcHelper.server(srvId, creds);
         ITeamcityIgnited tcIgn = injector.getInstance(ITeamcityIgnitedProvider.class).server(srvId, creds);
 
-        final FullChainRunCtx ctx = buildChainProcessor.loadFullChainContext(teamcity,
-            tcIgn,
+        final FullChainRunCtx ctx = buildChainProcessor.loadFullChainContext(
+                tcIgn,
             Collections.singletonList(buildId),
             LatestRebuildMode.NONE,
             ProcessLogsMode.SUITE_NOT_COMPLETE,
@@ -87,7 +86,7 @@ public class GetChainResultsAsHtml {
             failRateBranch,
             SyncMode.RELOAD_QUEUED);
 
-        ChainAtServerCurrentStatus status = new ChainAtServerCurrentStatus(tcIgn.serverId(), ctx.branchName());
+        ChainAtServerCurrentStatus status = new ChainAtServerCurrentStatus(tcIgn.serverCode(), ctx.branchName());
 
         ctx.getRunningUpdates().forEach(FutureUtil::getResultSilent);
 
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 7d3f55d..2afb63d 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
@@ -123,15 +123,14 @@ public class GetBuildTestFailures {
 
         tcIgnitedProv.checkAccess(srvCode, prov);
 
-        IAnalyticsEnabledTeamcity teamcity = tcSrvProvider.server(srvCode, prov);
         ITeamcityIgnited tcIgnited = tcIgnitedProv.server(srvCode, prov);
 
         String failRateBranch = ITeamcity.DEFAULT;
 
         ProcessLogsMode procLogs = (checkAllLogs != null && checkAllLogs) ? ProcessLogsMode.ALL : ProcessLogsMode.SUITE_NOT_COMPLETE;
 
-        final FullChainRunCtx ctx = buildChainProcessor.loadFullChainContext(teamcity,
-            tcIgnited,
+        final FullChainRunCtx ctx = buildChainProcessor.loadFullChainContext(
+                tcIgnited,
             Collections.singletonList(buildId),
             LatestRebuildMode.NONE,
             procLogs,
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 75cb7e3..324bc90 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
@@ -87,7 +87,7 @@ public class BuildChainProcessorTest {
 
         ITeamcityIgnited tcIgnited = tcIgnitedMock(builds);
 
-        FullChainRunCtx ctx = bcp.loadFullChainContext(tcOldMock(), tcIgnited,
+        FullChainRunCtx ctx = bcp.loadFullChainContext(tcIgnited,
             entry,
             LatestRebuildMode.ALL, ProcessLogsMode.SUITE_NOT_COMPLETE, false, ITeamcity.DEFAULT, SyncMode.NONE);
         List<MultBuildRunCtx> suites = ctx.failedChildSuites().collect(Collectors.toList());
@@ -123,7 +123,7 @@ public class BuildChainProcessorTest {
             builds.put(pds1.id(), pds1);
         }
 
-        FullChainRunCtx ctx2 = bcp.loadFullChainContext(tcOldMock(), tcIgnited,
+        FullChainRunCtx ctx2 = bcp.loadFullChainContext(tcIgnited,
             entry,
             LatestRebuildMode.ALL, ProcessLogsMode.SUITE_NOT_COMPLETE, false, ITeamcity.DEFAULT, SyncMode.NONE);
         List<MultBuildRunCtx> suites2 = ctx2.failedChildSuites().collect(Collectors.toList());
@@ -153,7 +153,7 @@ public class BuildChainProcessorTest {
         List<Integer> entry = Lists.newArrayList();
         addTestBuild(c, builds, entry, 0);
 
-        FullChainRunCtx ctx = bcp.loadFullChainContext(tcOldMock(), tcIgnitedMock(builds),
+        FullChainRunCtx ctx = bcp.loadFullChainContext(tcIgnitedMock(builds),
             entry,
             LatestRebuildMode.LATEST, ProcessLogsMode.SUITE_NOT_COMPLETE, false, ITeamcity.DEFAULT, SyncMode.NONE);
         List<MultBuildRunCtx> suites = ctx.failedChildSuites().collect(Collectors.toList());
@@ -196,10 +196,6 @@ public class BuildChainProcessorTest {
         builds.put(pds2.id(), pds2);
     }
 
-    @NotNull public static IAnalyticsEnabledTeamcity tcOldMock() {
-        return Mockito.mock(IAnalyticsEnabledTeamcity.class);
-    }
-
     @NotNull public ITeamcityIgnited tcIgnitedMock(Map<Integer, FatBuildCompacted> builds) {
         return TeamcityIgnitedMock.getMutableMapTeamcityIgnited(builds,
             injector.getInstance(IStringCompactor.class));
diff --git a/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/tcbot/chain/MockBasedTcBotModule.java b/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/tcbot/chain/MockBasedTcBotModule.java
index a9147d7..8bb49f7 100644
--- a/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/tcbot/chain/MockBasedTcBotModule.java
+++ b/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/tcbot/chain/MockBasedTcBotModule.java
@@ -89,9 +89,6 @@ public class MockBasedTcBotModule extends AbstractModule {
 
         final ITcServerProvider tcSrvOldProv = Mockito.mock(ITcServerProvider.class);
 
-        final IAnalyticsEnabledTeamcity tcOld = BuildChainProcessorTest.tcOldMock();
-        when(tcSrvOldProv.server(anyString(), any(ICredentialsProv.class))).thenReturn(tcOld);
-
         bind(ITcServerProvider.class).toInstance(tcSrvOldProv);
 
         final ITcBotConfig cfg = new ITcBotConfig() {
diff --git a/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/ITeamcity.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/ITeamcity.java
index 787b257..a7cdd42 100644
--- a/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/ITeamcity.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/ITeamcity.java
@@ -53,12 +53,10 @@ public interface ITeamcity extends ITeamcityConn {
     /** Fake property for addressing 'Suite Name'. */
     public String SUITE_NAME_PROPERTY = "_suiteName";
 
-    CompletableFuture<File> downloadBuildLogZip(int id);
+    CompletableFuture<File> downloadBuildLogZip(int buildId);
 
     void setExecutor(ExecutorService pool);
 
-    Executor getExecutor();
-
 
     /**
      * @param tok TeamCity authorization token.
diff --git a/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/IgniteTeamcityConnection.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/IgniteTeamcityConnection.java
index af8cbac..3fe1e9b 100644
--- a/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/IgniteTeamcityConnection.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/IgniteTeamcityConnection.java
@@ -88,10 +88,6 @@ public class IgniteTeamcityConnection implements ITeamcity {
 
     private String srvCode;
 
-    public Executor getExecutor() {
-        return executor;
-    }
-
     public void init(@Nullable String srvCode) {
         this.srvCode = srvCode;