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 21:45:40 UTC
[ignite-teamcity-bot] branch master updated: TC Bot refactoring:
tcbot-common and -teamcity modules extracted
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 dc45d34 TC Bot refactoring: tcbot-common and -teamcity modules extracted
dc45d34 is described below
commit dc45d34da1b02e02e312737953ebd1b8e8c05572
Author: Dmitriy Pavlov <dp...@apache.org>
AuthorDate: Sun Jun 2 00:45:10 2019 +0300
TC Bot refactoring: tcbot-common and -teamcity modules extracted
---
README.md | 2 +-
build.gradle | 6 +
ignite-tc-helper-web/build.gradle | 3 +
.../java/org/apache/ignite/ci/HelperConfig.java | 38 +---
.../ignite/ci/IAnalyticsEnabledTeamcity.java | 2 +
.../apache/ignite/ci/IgnitePersistentTeamcity.java | 47 +++--
.../apache/ignite/ci/analysis/FullChainRunCtx.java | 4 +-
.../ignite/ci/analysis/IMultTestOccurrence.java | 2 +-
.../apache/ignite/ci/analysis/LogCheckTask.java | 2 +-
.../apache/ignite/ci/analysis/MultBuildRunCtx.java | 8 +-
.../ignite/ci/analysis/SingleBuildRunCtx.java | 17 +-
.../ignite/ci/analysis/TestCompactedMult.java | 2 +-
.../java/org/apache/ignite/ci/db/DbMigrations.java | 2 +-
.../java/org/apache/ignite/ci/db/Ignite1Init.java | 6 +-
.../org/apache/ignite/ci/db/Ignite2Configurer.java | 7 +-
.../org/apache/ignite/ci/di/IgniteTcBotModule.java | 3 +-
.../ignite/ci/di/MonitoredTaskInterceptor.java | 2 +-
.../ci/github/ignited/GitHubConnIgnitedImpl.java | 2 +-
.../ci/github/ignited/GitHubIgnitedProvImpl.java | 2 +-
.../ci/github/pure/GitHubCachingProvider.java | 2 +-
.../ci/github/pure/GitHubConnectionImpl.java | 4 +-
.../java/org/apache/ignite/ci/issue/Issue.java | 2 +-
.../ci/jira/ignited/JiraIgnitedProvider.java | 2 +-
.../ignite/ci/jira/ignited/JiraTicketDao.java | 2 +-
.../java/org/apache/ignite/ci/jira/pure/Jira.java | 4 +-
.../ci/jira/pure/JiraIntegrationProvider.java | 2 +-
.../org/apache/ignite/ci/jobs/CheckQueueJob.java | 12 +-
.../org/apache/ignite/ci/logs/LogMsgToWarn.java | 2 +-
.../apache/ignite/ci/observer/BuildObserver.java | 2 +-
.../org/apache/ignite/ci/observer/BuildsInfo.java | 2 +-
.../apache/ignite/ci/observer/ObserverTask.java | 2 +-
.../runners/IgniteTeamcityHelperRunnerExample.java | 12 +-
.../ignite/ci/runners/RemoteClientTmpHelper.java | 6 +-
.../ci/tcbot/TcBotBusinessServicesModule.java | 5 +
.../ignite/ci/tcbot/chain/BuildChainProcessor.java | 137 ++++++++++----
.../ignite/ci/tcbot/chain/PrChainsProcessor.java | 8 +-
.../tcbot/chain/TrackedBranchChainsProcessor.java | 2 +-
.../ignite/ci/tcbot/conf/BuildParameterSpec.java | 6 +-
.../apache/ignite/ci/tcbot/conf/ITcBotConfig.java | 7 +-
.../ci/tcbot/conf/LocalFilesBasedConfig.java | 4 +-
.../ignite/ci/tcbot/conf/ParameterValueSpec.java | 4 +-
.../ignite/ci/tcbot/conf/TcServerConfig.java | 4 +-
.../ignite/ci/tcbot/issue/IssueDetector.java | 4 +-
.../apache/ignite/ci/tcbot/issue/Notification.java | 2 +-
.../ci/tcbot/trends/MasterTrendsService.java | 6 +-
.../tcbot/visa/TcBotTriggerAndSignOffService.java | 10 +-
.../ci/teamcity/ignited/BuildRefCompacted.java | 4 +-
.../ci/teamcity/ignited/ITeamcityIgnited.java | 8 +-
.../teamcity/ignited/ITeamcityIgnitedProvider.java | 2 +-
.../ci/teamcity/ignited/IgniteStringCompactor.java | 6 +-
.../teamcity/ignited/TcIgnitedCachingProvider.java | 6 +-
.../ci/teamcity/ignited/TeamcityIgnitedImpl.java | 20 +-
.../ci/teamcity/ignited/TeamcityIgnitedModule.java | 2 +-
.../ci/teamcity/ignited/buildref/BuildRefDao.java | 4 +-
.../ci/teamcity/ignited/buildref/BuildRefSync.java | 6 +-
.../ignited/buildtype/BuildTypeCompacted.java | 8 +-
.../teamcity/ignited/buildtype/BuildTypeDao.java | 4 +-
.../ignited/buildtype/BuildTypeRefCompacted.java | 2 +-
.../ignited/buildtype/BuildTypeRefDao.java | 2 +-
.../teamcity/ignited/buildtype/BuildTypeSync.java | 10 +-
.../ignited/buildtype/ParametersCompacted.java | 4 +-
.../buildtype/SnapshotDependencyCompacted.java | 2 +-
.../teamcity/ignited/change/ChangeCompacted.java | 2 +-
.../ci/teamcity/ignited/change/ChangeDao.java | 2 +-
.../ci/teamcity/ignited/change/ChangeSync.java | 8 +-
.../teamcity/ignited/change/RevisionCompacted.java | 4 +-
.../ignited/fatbuild/FatBuildCompacted.java | 32 ++--
.../ci/teamcity/ignited/fatbuild/FatBuildDao.java | 12 +-
.../ignited/fatbuild/ProactiveFatBuildSync.java | 20 +-
.../ignited/fatbuild/ProblemCompacted.java | 4 +-
.../ignited/fatbuild/StatisticsCompacted.java | 4 +-
.../teamcity/ignited/fatbuild/TestCompacted.java | 9 +-
.../ignite/ci/teamcity/ignited/mute/MuteDao.java | 4 +-
.../teamcity/ignited/mute/MuteInfoCompacted.java | 10 +-
.../teamcity/ignited/mute/MuteScopeCompacted.java | 6 +-
.../ignite/ci/teamcity/ignited/mute/MuteSync.java | 4 +-
.../ignited/runhist/RunHistCompactedDao.java | 2 +-
.../ci/teamcity/ignited/runhist/RunHistSync.java | 10 +-
.../restcached/InitializingServerFactory.java | 2 +-
.../ci/teamcity/restcached/TcRestCachedModule.java | 4 +-
.../restcached/TcServerCachingProvider.java | 2 +-
.../org/apache/ignite/ci/user/TcHelperUser.java | 2 +-
.../java/org/apache/ignite/ci/util/FutureUtil.java | 2 +
.../java/org/apache/ignite/ci/util/ZipUtil.java | 5 +-
.../java/org/apache/ignite/ci/web/CtxListener.java | 2 +-
.../java/org/apache/ignite/ci/web/Launcher.java | 2 +-
.../apache/ignite/ci/web/TcApplicationResCfg.java | 2 +-
.../ignite/ci/web/auth/AuthenticationFilter.java | 6 +-
.../model/current/ChainAtServerCurrentStatus.java | 2 +-
.../ci/web/model/current/SuiteCurrentStatus.java | 2 +-
.../ignite/ci/web/model/current/TestFailure.java | 2 +-
.../ignite/ci/web/model/long_running/LRTest.java | 2 +-
.../model/long_running/SuiteLRTestsSummary.java | 2 +-
.../web/model/trends/BuildStatisticsSummary.java | 14 +-
.../ignite/ci/web/model/trends/BuildsHistory.java | 3 +-
.../ignite/ci/web/rest/GetChainResultsAsHtml.java | 2 +-
.../ignite/ci/web/rest/build/CompareBuilds.java | 2 +-
.../ci/web/rest/build/GetBuildTestFailures.java | 4 +-
.../web/rest/exception/ExeptionsTraceLogger.java | 2 +-
...ava => ServiceUnauthorizedExceptionMapper.java} | 15 +-
.../org/apache/ignite/ci/web/rest/login/Login.java | 6 +-
.../ignite/ci/web/rest/login/UserService.java | 4 +-
.../long_running/BuildsLongRunningTestsReport.java | 2 +-
.../ignite/ci/web/rest/monitoring/HotSpot.java | 2 +-
.../rest/tracked/GetTrackedBranchTestResults.java | 2 +-
.../ignite/ci/web/rest/visa/TcBotVisaService.java | 1 -
.../ci/tcbot/chain/BuildChainProcessorTest.java | 8 +-
.../ci/tcbot/chain/MockBasedTcBotModule.java | 30 ++-
.../ci/tcbot/chain/PrChainsProcessorTest.java | 16 +-
.../ci/tcbot/chain/TrackedBranchProcessorTest.java | 2 +-
.../ignite/ci/tcbot/issue/IssueDetectorTest.java | 4 +-
.../ignited/IgnitedTcInMemoryIntegrationTest.java | 44 ++---
.../ci/teamcity/ignited/TeamcityIgnitedMock.java | 3 +-
.../ci/teamcity/pure/BuildHistoryEmulator.java | 6 +-
.../org/apache/ignite/ci/user/LoginAuthTest.java | 6 +-
settings.gradle | 5 +-
tcbot-common/build.gradle | 45 +++++
{tc-bot-server => tcbot-common}/header.txt | 0
.../tcbot/common/conf/IBuildParameterSpec.java | 13 +-
.../tcbot/common/conf/IParameterValueSpec.java | 12 +-
.../ignite/tcbot/common}/conf/ITcServerConfig.java | 22 ++-
.../tcbot/common/conf/ITcServerConfigSupplier.java | 10 +-
.../tcbot/common/conf}/TcBotSystemProperties.java | 2 +-
.../ignite/tcbot/common/conf/TcBotWorkDir.java | 46 +++++
.../tcbot/common/exeption}/ExceptionUtil.java | 7 +-
.../exeption/ServiceBadRequestException.java | 8 +-
.../common/exeption/ServiceConflictException.java | 6 +-
.../exeption}/ServiceUnauthorizedException.java | 16 +-
.../tcbot/common/interceptor}/AutoProfiling.java | 2 +-
.../ignite/tcbot/common}/util/Base64Util.java | 9 +-
.../apache/ignite/tcbot/common}/util/HttpUtil.java | 19 +-
.../ignite/tcbot/common}/util/ObjectInterner.java | 4 +-
.../apache/ignite/tcbot/common}/util/TimeUtil.java | 4 +-
{tc-bot-server => tcbot-server}/build.gradle | 4 +
{tc-bot-server => tcbot-server}/header.txt | 0
.../ignite/ci/TcBotIgniteServerLauncher.java | 4 +-
.../build.gradle | 24 +--
{tc-bot-server => tcbot-teamcity}/header.txt | 0
.../org/apache/ignite/tcservice}/ITeamcity.java | 20 +-
.../apache/ignite/tcservice}/ITeamcityConn.java | 32 ++--
.../tcservice}/IgniteTeamcityConnection.java | 205 ++++++---------------
.../ignite/tcservice}/TcRealConnectionModule.java | 13 +-
.../tcservice/http}/FileRecordingInputStream.java | 6 +-
.../tcservice/http}/ITeamcityHttpConnection.java | 7 +-
.../ignite/tcservice/http}/TeamcityRecorder.java | 12 +-
.../http}/TeamcityRecordingConnection.java | 4 +-
.../apache/ignite/tcservice/login}/ITcLogin.java | 4 +-
.../ignite/tcservice/login}/TcLoginImpl.java | 11 +-
.../ignite/tcservice/model}/ParameterType.java | 2 +-
.../apache/ignite/tcservice/model}/Properties.java | 2 +-
.../apache/ignite/tcservice/model}/Property.java | 2 +-
.../ignite/tcservice/model}/agent/Agent.java | 6 +-
.../tcservice/model}/agent/AgentPoolRef.java | 2 +-
.../ignite/tcservice/model}/agent/AgentRef.java | 4 +-
.../ignite/tcservice/model}/agent/AgentsRef.java | 2 +-
.../ignite/tcservice/model}/changes/Change.java | 11 +-
.../ignite/tcservice/model}/changes/ChangeRef.java | 8 +-
.../tcservice/model}/changes/ChangesList.java | 4 +-
.../tcservice/model}/changes/ChangesListRef.java | 4 +-
.../ignite/tcservice/model}/conf/BuildType.java | 4 +-
.../ignite/tcservice/model}/conf/Project.java | 2 +-
.../ignite/tcservice/model}/conf/ProjectsList.java | 9 +-
.../tcservice/model}/conf/bt/BuildTypeFull.java | 6 +-
.../tcservice/model}/conf/bt/Parameters.java | 7 +-
.../ignite/tcservice/model}/conf/bt/Property.java | 4 +-
.../model}/conf/bt/SnapshotDependencies.java | 2 +-
.../model}/conf/bt/SnapshotDependency.java | 4 +-
.../ignite/tcservice/model}/hist/BuildRef.java | 4 +-
.../ignite/tcservice/model}/hist/Builds.java | 2 +-
.../tcservice/model}/mute/MuteAssignment.java | 4 +-
.../ignite/tcservice/model}/mute/MuteInfo.java | 7 +-
.../ignite/tcservice/model}/mute/MuteScope.java | 6 +-
.../ignite/tcservice/model}/mute/MuteTarget.java | 4 +-
.../apache/ignite/tcservice/model}/mute/Mutes.java | 4 +-
.../tcservice/model}/result/AbstractRef.java | 2 +-
.../ignite/tcservice/model}/result/Build.java | 25 +--
.../tcservice/model}/result/Configurations.java | 5 +-
.../model}/result/ProblemOccurrencesRef.java | 2 +-
.../tcservice/model}/result/RelatedIssuesRef.java | 2 +-
.../tcservice/model}/result/StatisticsRef.java | 2 +-
.../model}/result/TestOccurrencesRef.java | 2 +-
.../ignite/tcservice/model}/result/Triggered.java | 6 +-
.../model}/result/problems/ProblemOccurrence.java | 6 +-
.../model}/result/problems/ProblemOccurrences.java | 6 +-
.../tcservice/model}/result/stat/Statistics.java | 5 +-
.../model}/result/tests/TestOccurrence.java | 2 +-
.../model}/result/tests/TestOccurrenceFull.java | 4 +-
.../model}/result/tests/TestOccurrences.java | 4 +-
.../model}/result/tests/TestOccurrencesFull.java | 4 +-
.../tcservice/model}/result/tests/TestRef.java | 4 +-
.../apache/ignite/tcservice/model}/user/User.java | 6 +-
.../ignite/tcservice/model}/user/UserRef.java | 2 +-
.../apache/ignite/tcservice/model}/user/Users.java | 2 +-
.../ignite/tcservice/model}/vcs/Revision.java | 2 +-
.../ignite/tcservice/model}/vcs/Revisions.java | 2 +-
.../tcservice/model}/vcs/VcsRootInstance.java | 2 +-
.../tcservice/util}/TcConnectionStaticLinker.java | 5 +-
.../org/apache/ignite/tcservice}/util/XmlUtil.java | 5 +-
198 files changed, 854 insertions(+), 797 deletions(-)
diff --git a/README.md b/README.md
index 3a3edfe..7eadef2 100644
--- a/README.md
+++ b/README.md
@@ -20,7 +20,7 @@ Should you have any questions, please contact Ignite Developers at dev@ignite.ap
Locally code can be set up using IntelliJ idea and gradle project import.
Locally it can be run using org.apache.ignite.ci.web.Launcher.main() method.
The bot will create necessary configs in ~/.ignite-teamcity-helper - it is bot Home directory.
-In can be changed with org.apache.ignite.ci.tcbot.TcBotSystemProperties.TEAMCITY_HELPER_HOME system property.
+In can be changed with TcBotSystemProperties.TEAMCITY_HELPER_HOME system property.
Examples of configs can be found in [conf](conf) directory.
Main config file is [conf/branches.json](conf/branches.json). This file needs to be placed to work directory, (under user home by default).
diff --git a/build.gradle b/build.gradle
index d360d4b..79edd89 100644
--- a/build.gradle
+++ b/build.gradle
@@ -38,7 +38,11 @@ subprojects {
}
allprojects {
+
ext {
+ sourceCompatibility = '1.8'
+ targetCompatibility = '1.8'
+
jettyVer = '9.4.12.v20180830'
// ignVer = '2.7.0'
@@ -52,6 +56,8 @@ allprojects {
// MIT/X11 license, category A;
slf4jVer = '1.7.25'
+
+ gsonVer = '2.8.2'
}
repositories {
diff --git a/ignite-tc-helper-web/build.gradle b/ignite-tc-helper-web/build.gradle
index 2f25688..c89468e 100644
--- a/ignite-tc-helper-web/build.gradle
+++ b/ignite-tc-helper-web/build.gradle
@@ -28,6 +28,9 @@ repositories {
// https://www.apache.org/legal/resolved.html#category-a
dependencies {
+ compile (project(":tcbot-common"));
+ compile (project(":tcbot-teamcity"));
+
compile group: 'com.google.guava', name: 'guava', version: guavaVer
compile group: 'org.apache.ignite', name: 'ignite-core', version: ignVer
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/HelperConfig.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/HelperConfig.java
index ba9a6af..97085f9 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/HelperConfig.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/HelperConfig.java
@@ -24,10 +24,11 @@ import java.io.FileReader;
import java.io.IOException;
import java.io.UncheckedIOException;
import java.util.Properties;
-import org.apache.ignite.ci.tcbot.TcBotSystemProperties;
+
import org.apache.ignite.ci.tcbot.conf.BranchesTracked;
-import org.apache.ignite.ci.util.Base64Util;
-import org.apache.ignite.ci.util.ExceptionUtil;
+import org.apache.ignite.tcbot.common.util.Base64Util;
+import org.apache.ignite.tcbot.common.conf.TcBotWorkDir;
+import org.apache.ignite.tcbot.common.exeption.ExceptionUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -68,7 +69,6 @@ public class HelperConfig {
@Deprecated
public static final String SLACK_CHANNEL = "slack.channel";
public static final String LOGS = "logs";
- public static final String ENDL = String.format("%n");
public static Properties loadAuthProperties(File workDir, String cfgFileName) {
try {
@@ -107,28 +107,6 @@ public class HelperConfig {
return isNullOrEmpty(tcName) ? name : (tcName + "." + name);
}
- public static File ensureDirExist(File workDir) {
- if (!workDir.exists())
- checkState(workDir.mkdirs(), "Unable to make directory [" + workDir + "]");
-
- return workDir;
- }
-
- public static File resolveWorkDir() {
- File workDir = null;
- String property = System.getProperty(TcBotSystemProperties.TEAMCITY_HELPER_HOME);
- if (isNullOrEmpty(property)) {
- String conf = ".ignite-teamcity-helper";
- String prop = System.getProperty("user.home");
- //relative in work dir
- workDir = isNullOrEmpty(prop) ? new File(conf) : new File(prop, conf);
- }
- else
- workDir = new File(property);
-
- return ensureDirExist(workDir);
- }
-
@NotNull public static String userPwdToToken(String user, String pwd) {
return Base64Util.encodeUtf8String(user + ":" + pwd);
}
@@ -141,7 +119,7 @@ public class HelperConfig {
}
public static BranchesTracked getTrackedBranches() {
- final File workDir = resolveWorkDir();
+ final File workDir = TcBotWorkDir.resolveWorkDir();
final File file = new File(workDir, "branches.json");
try (FileReader json = new FileReader(file)) {
@@ -155,7 +133,7 @@ public class HelperConfig {
public static Properties loadEmailSettings() {
try {
String respConf = prefixedWithServerName(null, MAIL_PROPS);
- final File workDir = resolveWorkDir();
+ final File workDir = TcBotWorkDir.resolveWorkDir();
File file = new File(workDir, respConf);
return loadProps(file);
}
@@ -165,8 +143,4 @@ public class HelperConfig {
}
}
- @NotNull static File resolveLogs(File workDir, String logsProp) {
- final File logsDirFileConfigured = new File(logsProp);
- return logsDirFileConfigured.isAbsolute() ? logsDirFileConfigured : new File(workDir, logsProp);
- }
}
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/IAnalyticsEnabledTeamcity.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/IAnalyticsEnabledTeamcity.java
index 00e524b..47eda4d 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/IAnalyticsEnabledTeamcity.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/IAnalyticsEnabledTeamcity.java
@@ -17,6 +17,8 @@
package org.apache.ignite.ci;
+import org.apache.ignite.tcservice.ITeamcity;
+
/**
* Combination of REST data and persisted statistics.
*/
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 f83c455..cd20e73 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
@@ -32,25 +32,25 @@ import org.apache.ignite.Ignite;
import org.apache.ignite.IgniteCache;
import org.apache.ignite.ci.analysis.IVersionedEntity;
import org.apache.ignite.ci.analysis.LogCheckResult;
-import org.apache.ignite.ci.analysis.SingleBuildRunCtx;
import org.apache.ignite.ci.db.DbMigrations;
import org.apache.ignite.ci.db.TcHelperDb;
-import org.apache.ignite.ci.di.AutoProfiling;
-import org.apache.ignite.ci.tcbot.conf.ITcServerConfig;
-import org.apache.ignite.ci.tcmodel.agent.Agent;
-import org.apache.ignite.ci.tcmodel.changes.Change;
-import org.apache.ignite.ci.tcmodel.changes.ChangesList;
-import org.apache.ignite.ci.tcmodel.conf.BuildType;
-import org.apache.ignite.ci.tcmodel.conf.Project;
-import org.apache.ignite.ci.tcmodel.conf.bt.BuildTypeFull;
-import org.apache.ignite.ci.tcmodel.hist.BuildRef;
-import org.apache.ignite.ci.tcmodel.mute.MuteInfo;
-import org.apache.ignite.ci.tcmodel.result.Build;
-import org.apache.ignite.ci.tcmodel.result.problems.ProblemOccurrences;
-import org.apache.ignite.ci.tcmodel.result.stat.Statistics;
-import org.apache.ignite.ci.tcmodel.result.tests.TestOccurrencesFull;
-import org.apache.ignite.ci.tcmodel.user.User;
-import org.apache.ignite.ci.util.ObjectInterner;
+import org.apache.ignite.tcbot.common.interceptor.AutoProfiling;
+import org.apache.ignite.tcbot.common.conf.ITcServerConfig;
+import org.apache.ignite.tcservice.ITeamcity;
+import org.apache.ignite.tcservice.model.agent.Agent;
+import org.apache.ignite.tcservice.model.changes.Change;
+import org.apache.ignite.tcservice.model.changes.ChangesList;
+import org.apache.ignite.tcservice.model.conf.BuildType;
+import org.apache.ignite.tcservice.model.conf.Project;
+import org.apache.ignite.tcservice.model.conf.bt.BuildTypeFull;
+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.tcservice.model.result.problems.ProblemOccurrences;
+import org.apache.ignite.tcservice.model.result.stat.Statistics;
+import org.apache.ignite.tcservice.model.result.tests.TestOccurrencesFull;
+import org.apache.ignite.tcservice.model.user.User;
+import org.apache.ignite.tcbot.common.util.ObjectInterner;
import org.apache.ignite.ci.web.model.hist.VisasHistoryStorage;
import org.jetbrains.annotations.NotNull;
@@ -140,20 +140,15 @@ public class IgnitePersistentTeamcity implements IAnalyticsEnabledTeamcity, ITea
}
/** {@inheritDoc} */
- @Override public CompletableFuture<File> unzipFirstFile(CompletableFuture<File> fut) {
- return teamcity.unzipFirstFile(fut);
- }
-
- /** {@inheritDoc} */
@Override public CompletableFuture<File> downloadBuildLogZip(int id) {
return teamcity.downloadBuildLogZip(id);
}
/** {@inheritDoc} */
- @Override public CompletableFuture<LogCheckResult> analyzeBuildLog(Integer buildId, SingleBuildRunCtx ctx) {
- return loadFutureIfAbsentVers(logCheckResultCache(), buildId,
- k -> teamcity.analyzeBuildLog(buildId, ctx));
- }
+// @Override public CompletableFuture<LogCheckResult> analyzeBuildLog(Integer buildId, SingleBuildRunCtx ctx) {
+// return loadFutureIfAbsentVers(logCheckResultCache(), buildId,
+// k -> teamcity.analyzeBuildLog(buildId, ctx));
+// }
@AutoProfiling
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/FullChainRunCtx.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/FullChainRunCtx.java
index b298e6c..56395db 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/FullChainRunCtx.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/FullChainRunCtx.java
@@ -22,8 +22,8 @@ import java.util.List;
import java.util.Objects;
import java.util.concurrent.Future;
import java.util.stream.Stream;
-import org.apache.ignite.ci.tcmodel.result.Build;
-import org.apache.ignite.ci.util.TimeUtil;
+import org.apache.ignite.tcservice.model.result.Build;
+import org.apache.ignite.tcbot.common.util.TimeUtil;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/IMultTestOccurrence.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/IMultTestOccurrence.java
index 0a16487..ea39bad 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/IMultTestOccurrence.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/IMultTestOccurrence.java
@@ -17,7 +17,7 @@
package org.apache.ignite.ci.analysis;
-import org.apache.ignite.ci.tcmodel.result.tests.TestOccurrenceFull;
+import org.apache.ignite.tcservice.model.result.tests.TestOccurrenceFull;
import org.apache.ignite.ci.teamcity.ignited.IRunHistory;
/**
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/LogCheckTask.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/LogCheckTask.java
index a536444..eedb5d2 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/LogCheckTask.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/LogCheckTask.java
@@ -22,7 +22,7 @@ import org.apache.ignite.ci.logs.BuildLogStreamChecker;
import org.apache.ignite.ci.logs.handlers.TestLogHandler;
import org.apache.ignite.ci.logs.handlers.ThreadDumpInMemoryHandler;
-import static org.apache.ignite.ci.tcmodel.result.problems.ProblemOccurrence.JAVA_LEVEL_DEADLOCK;
+import static org.apache.ignite.tcservice.model.result.problems.ProblemOccurrence.JAVA_LEVEL_DEADLOCK;
/**
*
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/MultBuildRunCtx.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/MultBuildRunCtx.java
index da9af4e..2e8c8da 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/MultBuildRunCtx.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/MultBuildRunCtx.java
@@ -32,10 +32,10 @@ import java.util.concurrent.Future;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import javax.annotation.Nonnull;
-import org.apache.ignite.ci.tcbot.conf.ITcServerConfig;
-import org.apache.ignite.ci.tcmodel.hist.BuildRef;
-import org.apache.ignite.ci.tcmodel.result.problems.ProblemOccurrence;
-import org.apache.ignite.ci.tcmodel.result.stat.Statistics;
+import org.apache.ignite.tcbot.common.conf.ITcServerConfig;
+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.apache.ignite.ci.teamcity.ignited.IRunHistory;
import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
import org.apache.ignite.ci.teamcity.ignited.change.ChangeCompacted;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/SingleBuildRunCtx.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/SingleBuildRunCtx.java
index 7970606..348a817 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/SingleBuildRunCtx.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/SingleBuildRunCtx.java
@@ -32,10 +32,13 @@ import java.util.concurrent.Future;
import java.util.regex.Pattern;
import java.util.stream.Stream;
import javax.annotation.Nonnull;
-import org.apache.ignite.ci.ITeamcity;
+
+import org.apache.ignite.tcbot.common.conf.IParameterValueSpec;
+import org.apache.ignite.tcservice.ITeamcity;
import org.apache.ignite.ci.tcbot.conf.BuildParameterSpec;
-import org.apache.ignite.ci.tcbot.conf.ITcServerConfig;
-import org.apache.ignite.ci.tcmodel.result.tests.TestOccurrenceFull;
+import org.apache.ignite.tcbot.common.conf.IBuildParameterSpec;
+import org.apache.ignite.tcbot.common.conf.ITcServerConfig;
+import org.apache.ignite.tcservice.model.result.tests.TestOccurrenceFull;
import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
import org.apache.ignite.ci.teamcity.ignited.buildtype.ParametersCompacted;
import org.apache.ignite.ci.teamcity.ignited.change.ChangeCompacted;
@@ -275,16 +278,16 @@ public class SingleBuildRunCtx implements ISuiteResults {
public void addTagsFromParameters(ParametersCompacted parameters, ITcServerConfig tcCfg,
IStringCompactor compactor) {
- for (BuildParameterSpec parm : tcCfg.filteringParameters()) {
- if (!parm.isFilled())
+ for (IBuildParameterSpec parm0 : tcCfg.filteringParameters()) {
+ if (!parm0.isFilled())
continue;
- String propVal = getPropertyOrSpecialValue(parameters, compactor, parm.name());
+ String propVal = getPropertyOrSpecialValue(parameters, compactor, parm0.name());
if (Strings.isNullOrEmpty(propVal))
continue;
- parm.selection().stream()
+ parm0.selection().stream()
.filter(pvs -> {
String valRegExp = pvs.valueRegExp();
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/TestCompactedMult.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/TestCompactedMult.java
index 409d948..585c2c2 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/TestCompactedMult.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/TestCompactedMult.java
@@ -21,7 +21,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
-import org.apache.ignite.ci.tcmodel.result.tests.TestOccurrenceFull;
+import org.apache.ignite.tcservice.model.result.tests.TestOccurrenceFull;
import org.apache.ignite.ci.teamcity.ignited.IRunHistory;
import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
import org.apache.ignite.ci.teamcity.ignited.fatbuild.TestCompacted;
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 f7a154b..a907529 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
@@ -35,7 +35,7 @@ import org.apache.ignite.ci.issue.Issue;
import org.apache.ignite.ci.issue.IssueKey;
import org.apache.ignite.ci.issue.IssuesStorage;
import org.apache.ignite.ci.observer.CompactBuildsInfo;
-import org.apache.ignite.ci.tcmodel.result.Build;
+import org.apache.ignite.tcservice.model.result.Build;
import org.apache.ignite.ci.web.model.CompactContributionKey;
import org.apache.ignite.ci.web.model.CompactVisa;
import org.apache.ignite.ci.web.model.CompactVisaRequest;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/db/Ignite1Init.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/db/Ignite1Init.java
index 7fa2473..f4316d0 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/db/Ignite1Init.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/db/Ignite1Init.java
@@ -26,8 +26,8 @@ import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
import org.apache.ignite.Ignite;
import org.apache.ignite.Ignition;
-import org.apache.ignite.ci.HelperConfig;
-import org.apache.ignite.ci.di.AutoProfiling;
+import org.apache.ignite.tcbot.common.conf.TcBotWorkDir;
+import org.apache.ignite.tcbot.common.interceptor.AutoProfiling;
import org.apache.ignite.ci.di.MonitoredTask;
import org.apache.ignite.ci.web.model.Version;
import org.apache.ignite.cluster.BaselineNode;
@@ -101,7 +101,7 @@ public class Ignite1Init {
@NotNull
private IgniteConfiguration getIgniteConfiguration() {
- final File workDir = HelperConfig.resolveWorkDir();
+ final File workDir = TcBotWorkDir.resolveWorkDir();
Ignite2Configurer.configLogger(workDir, "tcbot_logs");
final IgniteConfiguration cfg = new IgniteConfiguration();
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/db/Ignite2Configurer.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/db/Ignite2Configurer.java
index 0091c59..6b0257c 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/db/Ignite2Configurer.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/db/Ignite2Configurer.java
@@ -24,12 +24,13 @@ import ch.qos.logback.core.rolling.RollingFileAppender;
import ch.qos.logback.core.rolling.TimeBasedRollingPolicy;
import java.io.File;
import java.io.IOException;
-import org.apache.ignite.ci.HelperConfig;
-import org.apache.ignite.ci.tcbot.TcBotSystemProperties;
+
+import org.apache.ignite.tcbot.common.conf.TcBotSystemProperties;
import org.apache.ignite.configuration.DataRegionConfiguration;
import org.apache.ignite.configuration.DataStorageConfiguration;
import org.apache.ignite.configuration.IgniteConfiguration;
import org.apache.ignite.configuration.WALMode;
+import org.apache.ignite.tcbot.common.conf.TcBotWorkDir;
import org.jetbrains.annotations.NotNull;
import org.slf4j.LoggerFactory;
@@ -49,7 +50,7 @@ public class Ignite2Configurer {
rollingFa.setAppend(true);
final File logs = new File(workDir, subdir);
- HelperConfig.ensureDirExist(logs);
+ TcBotWorkDir.ensureDirExist(logs);
TimeBasedRollingPolicy logFilePolicy = new TimeBasedRollingPolicy();
logFilePolicy.setContext(logCtx);
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/di/IgniteTcBotModule.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/di/IgniteTcBotModule.java
index f7004f4..29df2e1 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/di/IgniteTcBotModule.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/di/IgniteTcBotModule.java
@@ -36,10 +36,11 @@ import org.apache.ignite.ci.observer.ObserverTask;
import org.apache.ignite.ci.tcbot.TcBotBusinessServicesModule;
import org.apache.ignite.ci.tcbot.issue.IssueDetector;
import org.apache.ignite.ci.teamcity.ignited.TeamcityIgnitedModule;
-import org.apache.ignite.ci.util.ExceptionUtil;
+import org.apache.ignite.tcbot.common.exeption.ExceptionUtil;
import org.apache.ignite.ci.web.TcUpdatePool;
import org.apache.ignite.ci.web.model.hist.VisasHistoryStorage;
import org.apache.ignite.ci.web.rest.exception.ServiceStartingException;
+import org.apache.ignite.tcbot.common.interceptor.AutoProfiling;
/**
*
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/di/MonitoredTaskInterceptor.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/di/MonitoredTaskInterceptor.java
index 5e42f57..9940ab0 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/di/MonitoredTaskInterceptor.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/di/MonitoredTaskInterceptor.java
@@ -28,7 +28,7 @@ import java.util.concurrent.atomic.AtomicLong;
import java.util.concurrent.atomic.AtomicReference;
import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;
-import org.apache.ignite.ci.util.TimeUtil;
+import org.apache.ignite.tcbot.common.util.TimeUtil;
import org.jetbrains.annotations.NotNull;
public class MonitoredTaskInterceptor implements MethodInterceptor {
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/ignited/GitHubConnIgnitedImpl.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/ignited/GitHubConnIgnitedImpl.java
index f80d6b5..d6f2d24 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/ignited/GitHubConnIgnitedImpl.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/ignited/GitHubConnIgnitedImpl.java
@@ -31,7 +31,7 @@ import javax.inject.Provider;
import org.apache.ignite.Ignite;
import org.apache.ignite.IgniteCache;
import org.apache.ignite.ci.db.TcHelperDb;
-import org.apache.ignite.ci.di.AutoProfiling;
+import org.apache.ignite.tcbot.common.interceptor.AutoProfiling;
import org.apache.ignite.ci.di.MonitoredTask;
import org.apache.ignite.ci.di.scheduler.IScheduler;
import org.apache.ignite.ci.github.GitHubBranchKey;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/ignited/GitHubIgnitedProvImpl.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/ignited/GitHubIgnitedProvImpl.java
index fe23792..cf8fbb0 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/ignited/GitHubIgnitedProvImpl.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/ignited/GitHubIgnitedProvImpl.java
@@ -26,7 +26,7 @@ import javax.inject.Inject;
import javax.inject.Provider;
import org.apache.ignite.ci.github.pure.IGitHubConnection;
import org.apache.ignite.ci.github.pure.IGitHubConnectionProvider;
-import org.apache.ignite.ci.util.ExceptionUtil;
+import org.apache.ignite.tcbot.common.exeption.ExceptionUtil;
class GitHubIgnitedProvImpl implements IGitHubConnIgnitedProvider {
@Inject IGitHubConnectionProvider pureConnProv;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/pure/GitHubCachingProvider.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/pure/GitHubCachingProvider.java
index 2a082df..ea73be2 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/pure/GitHubCachingProvider.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/pure/GitHubCachingProvider.java
@@ -24,7 +24,7 @@ import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import javax.inject.Inject;
import javax.inject.Provider;
-import org.apache.ignite.ci.util.ExceptionUtil;
+import org.apache.ignite.tcbot.common.exeption.ExceptionUtil;
class GitHubCachingProvider implements IGitHubConnectionProvider {
@Inject private Provider<IGitHubConnection> factory;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/pure/GitHubConnectionImpl.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/pure/GitHubConnectionImpl.java
index 4cf6347..c3696f6 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/pure/GitHubConnectionImpl.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/pure/GitHubConnectionImpl.java
@@ -20,12 +20,12 @@ import com.google.common.base.Preconditions;
import com.google.common.base.Strings;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
-import org.apache.ignite.ci.di.AutoProfiling;
+import org.apache.ignite.tcbot.common.interceptor.AutoProfiling;
import org.apache.ignite.ci.github.GitHubBranchShort;
import org.apache.ignite.ci.github.PullRequest;
import org.apache.ignite.ci.tcbot.conf.IGitHubConfig;
import org.apache.ignite.ci.tcbot.conf.ITcBotConfig;
-import org.apache.ignite.ci.util.HttpUtil;
+import org.apache.ignite.tcbot.common.util.HttpUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.slf4j.Logger;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/issue/Issue.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/issue/Issue.java
index edddad8..00b0899 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/issue/Issue.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/issue/Issue.java
@@ -24,7 +24,7 @@ import java.util.List;
import java.util.Set;
import java.util.TreeSet;
import org.apache.ignite.ci.db.Persisted;
-import org.apache.ignite.ci.util.TimeUtil;
+import org.apache.ignite.tcbot.common.util.TimeUtil;
import org.jetbrains.annotations.Nullable;
/**
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/ignited/JiraIgnitedProvider.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/ignited/JiraIgnitedProvider.java
index b08d095..50852fe 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/ignited/JiraIgnitedProvider.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/ignited/JiraIgnitedProvider.java
@@ -25,7 +25,7 @@ import java.util.concurrent.TimeUnit;
import javax.inject.Inject;
import org.apache.ignite.ci.jira.pure.IJiraIntegration;
import org.apache.ignite.ci.jira.pure.IJiraIntegrationProvider;
-import org.apache.ignite.ci.util.ExceptionUtil;
+import org.apache.ignite.tcbot.common.exeption.ExceptionUtil;
/**
*
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/ignited/JiraTicketDao.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/ignited/JiraTicketDao.java
index 231efd8..62617d4 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/ignited/JiraTicketDao.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/ignited/JiraTicketDao.java
@@ -29,7 +29,7 @@ import javax.inject.Provider;
import org.apache.ignite.Ignite;
import org.apache.ignite.IgniteCache;
import org.apache.ignite.ci.db.TcHelperDb;
-import org.apache.ignite.ci.di.AutoProfiling;
+import org.apache.ignite.tcbot.common.interceptor.AutoProfiling;
import org.apache.ignite.ci.di.cache.GuavaCached;
import org.apache.ignite.ci.jira.pure.Ticket;
import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/pure/Jira.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/pure/Jira.java
index 8bc948c..5e80a9b 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/pure/Jira.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/pure/Jira.java
@@ -19,11 +19,11 @@ package org.apache.ignite.ci.jira.pure;
import com.google.common.base.Preconditions;
import com.google.gson.Gson;
-import org.apache.ignite.ci.di.AutoProfiling;
+import org.apache.ignite.tcbot.common.interceptor.AutoProfiling;
import org.apache.ignite.ci.jira.Tickets;
import org.apache.ignite.ci.tcbot.conf.IJiraServerConfig;
import org.apache.ignite.ci.tcbot.conf.ITcBotConfig;
-import org.apache.ignite.ci.util.HttpUtil;
+import org.apache.ignite.tcbot.common.util.HttpUtil;
import org.checkerframework.checker.nullness.qual.Nullable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/pure/JiraIntegrationProvider.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/pure/JiraIntegrationProvider.java
index 0aaac76..fcfd473 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/pure/JiraIntegrationProvider.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/pure/JiraIntegrationProvider.java
@@ -24,7 +24,7 @@ import com.google.inject.Provider;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import javax.inject.Inject;
-import org.apache.ignite.ci.util.ExceptionUtil;
+import org.apache.ignite.tcbot.common.exeption.ExceptionUtil;
/**
* Class for providing {@link IJiraIntegration} instance for specified Jira server. Instance for each server is cached
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jobs/CheckQueueJob.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jobs/CheckQueueJob.java
index d513e26..9d9fefe 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jobs/CheckQueueJob.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jobs/CheckQueueJob.java
@@ -28,20 +28,20 @@ import java.util.stream.Collectors;
import javax.inject.Inject;
import org.apache.ignite.ci.tcbot.conf.BranchTracked;
import org.apache.ignite.ci.tcbot.conf.ChainAtServerTracked;
-import org.apache.ignite.ci.di.AutoProfiling;
+import org.apache.ignite.tcbot.common.interceptor.AutoProfiling;
import org.apache.ignite.ci.di.MonitoredTask;
import org.apache.ignite.ci.tcbot.conf.ITcBotConfig;
-import org.apache.ignite.ci.tcmodel.agent.Agent;
-import org.apache.ignite.ci.tcmodel.result.Build;
-import org.apache.ignite.ci.tcmodel.result.Triggered;
-import org.apache.ignite.ci.tcmodel.user.User;
+import org.apache.ignite.tcservice.model.agent.Agent;
+import org.apache.ignite.tcservice.model.result.Build;
+import org.apache.ignite.tcservice.model.result.Triggered;
+import org.apache.ignite.tcservice.model.user.User;
import org.apache.ignite.ci.teamcity.ignited.BuildRefCompacted;
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.fatbuild.FatBuildCompacted;
import org.apache.ignite.ci.user.ICredentialsProv;
-import org.apache.ignite.ci.util.ExceptionUtil;
+import org.apache.ignite.tcbot.common.exeption.ExceptionUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/logs/LogMsgToWarn.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/logs/LogMsgToWarn.java
index 309e7e7..bd302df 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/logs/LogMsgToWarn.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/logs/LogMsgToWarn.java
@@ -18,7 +18,7 @@
package org.apache.ignite.ci.logs;
import javax.annotation.Nullable;
-import org.apache.ignite.ci.tcmodel.result.problems.ProblemOccurrence;
+import org.apache.ignite.tcservice.model.result.problems.ProblemOccurrence;
/**
*
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/observer/BuildObserver.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/observer/BuildObserver.java
index c1ee9b4..bb54c53 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/observer/BuildObserver.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/observer/BuildObserver.java
@@ -21,7 +21,7 @@ import java.util.Objects;
import java.util.Timer;
import javax.inject.Inject;
import org.apache.ignite.ci.tcbot.ITcBotBgAuth;
-import org.apache.ignite.ci.tcmodel.result.Build;
+import org.apache.ignite.tcservice.model.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;
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 82ef057..2b79935 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
@@ -24,7 +24,7 @@ import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.Objects;
-import org.apache.ignite.ci.tcmodel.result.Build;
+import org.apache.ignite.tcservice.model.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.fatbuild.FatBuildCompacted;
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 24bd6c7..1e5e927 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
@@ -27,7 +27,7 @@ import java.util.TimerTask;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.locks.ReentrantLock;
import javax.inject.Inject;
-import org.apache.ignite.ci.di.AutoProfiling;
+import org.apache.ignite.tcbot.common.interceptor.AutoProfiling;
import org.apache.ignite.ci.di.MonitoredTask;
import org.apache.ignite.ci.tcbot.ITcBotBgAuth;
import org.apache.ignite.ci.tcbot.visa.TcBotTriggerAndSignOffService;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/runners/IgniteTeamcityHelperRunnerExample.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/runners/IgniteTeamcityHelperRunnerExample.java
index 85118e0..9df64b7 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/runners/IgniteTeamcityHelperRunnerExample.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/runners/IgniteTeamcityHelperRunnerExample.java
@@ -17,20 +17,18 @@
package org.apache.ignite.ci.runners;
-import java.util.Collection;
import java.util.Collections;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.StringTokenizer;
import java.util.TreeMap;
import java.util.TreeSet;
-import org.apache.ignite.ci.IgniteTeamcityConnection;
-import org.apache.ignite.ci.tcmodel.conf.BuildType;
-import org.apache.ignite.ci.tcmodel.conf.bt.BuildTypeFull;
-import org.apache.ignite.ci.tcmodel.conf.bt.SnapshotDependency;
-import org.apache.ignite.ci.teamcity.pure.TcConnectionStaticLinker;
+import org.apache.ignite.tcservice.IgniteTeamcityConnection;
+import org.apache.ignite.tcservice.model.conf.BuildType;
+import org.apache.ignite.tcservice.model.conf.bt.BuildTypeFull;
+import org.apache.ignite.tcservice.model.conf.bt.SnapshotDependency;
+import org.apache.ignite.tcservice.util.TcConnectionStaticLinker;
/**
* Local class for running specific checks
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/runners/RemoteClientTmpHelper.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/runners/RemoteClientTmpHelper.java
index 032a496..67c4586 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/runners/RemoteClientTmpHelper.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/runners/RemoteClientTmpHelper.java
@@ -31,8 +31,8 @@ import org.apache.ignite.Ignite;
import org.apache.ignite.IgniteCache;
import org.apache.ignite.Ignition;
import org.apache.ignite.ci.tcbot.user.UserAndSessionsStorage;
-import org.apache.ignite.ci.tcmodel.hist.BuildRef;
-import org.apache.ignite.ci.tcmodel.result.Build;
+import org.apache.ignite.tcservice.model.hist.BuildRef;
+import org.apache.ignite.tcservice.model.result.Build;
import org.apache.ignite.ci.teamcity.ignited.BuildRefCompacted;
import org.apache.ignite.ci.teamcity.ignited.ITeamcityIgnited;
import org.apache.ignite.ci.teamcity.ignited.IgniteStringCompactor;
@@ -41,7 +41,7 @@ import org.apache.ignite.ci.teamcity.ignited.fatbuild.FatBuildCompacted;
import org.apache.ignite.ci.teamcity.ignited.fatbuild.FatBuildDao;
import org.apache.ignite.ci.teamcity.ignited.runhist.RunHistCompactedDao;
import org.apache.ignite.ci.user.TcHelperUser;
-import org.apache.ignite.ci.util.XmlUtil;
+import org.apache.ignite.tcservice.util.XmlUtil;
import org.apache.ignite.configuration.IgniteConfiguration;
import org.apache.ignite.logger.slf4j.Slf4jLogger;
import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/TcBotBusinessServicesModule.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/TcBotBusinessServicesModule.java
index 45076b6..dcd1252 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/TcBotBusinessServicesModule.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/TcBotBusinessServicesModule.java
@@ -19,12 +19,14 @@ package org.apache.ignite.ci.tcbot;
import com.google.inject.AbstractModule;
import com.google.inject.internal.SingletonScope;
import org.apache.ignite.ci.issue.IssuesStorage;
+import org.apache.ignite.ci.tcbot.chain.BuildChainProcessor;
import org.apache.ignite.ci.tcbot.conf.ITcBotConfig;
import org.apache.ignite.ci.tcbot.conf.LocalFilesBasedConfig;
import org.apache.ignite.ci.tcbot.issue.IIssuesStorage;
import org.apache.ignite.ci.tcbot.trends.MasterTrendsService;
import org.apache.ignite.ci.tcbot.user.IUserStorage;
import org.apache.ignite.ci.tcbot.user.UserAndSessionsStorage;
+import org.apache.ignite.tcbot.common.conf.ITcServerConfigSupplier;
/**
* TC Bot self services mapping (without 3rd party integrations configuration.
@@ -33,9 +35,12 @@ public class TcBotBusinessServicesModule extends AbstractModule {
/** {@inheritDoc} */
@Override protected void configure() {
bind(ITcBotConfig.class).to(LocalFilesBasedConfig.class).in(new SingletonScope());
+ //todo remove
+ bind(ITcServerConfigSupplier.class).to(LocalFilesBasedConfig.class).in(new SingletonScope());
bind(IUserStorage.class).to(UserAndSessionsStorage.class).in(new SingletonScope());
bind(IIssuesStorage.class).to(IssuesStorage.class).in(new SingletonScope());
bind(MasterTrendsService.class).in(new SingletonScope());
bind(ITcBotBgAuth.class).to(TcBotBgAuthImpl.class).in(new SingletonScope());
+ bind(BuildChainProcessor.class).in(new SingletonScope());
}
}
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 c876da4..4c0c342 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
@@ -18,40 +18,14 @@
package org.apache.ignite.ci.tcbot.chain;
import com.google.common.base.Preconditions;
+import com.google.common.base.Stopwatch;
import com.google.common.util.concurrent.Futures;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Optional;
-import java.util.Set;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.Future;
-import java.util.function.Function;
-import java.util.stream.Collectors;
-import java.util.stream.IntStream;
-import java.util.stream.Stream;
-import javax.annotation.Nonnull;
-import javax.inject.Inject;
import org.apache.ignite.ci.IAnalyticsEnabledTeamcity;
-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.SuiteInBranch;
+import org.apache.ignite.ci.analysis.*;
import org.apache.ignite.ci.analysis.mode.LatestRebuildMode;
import org.apache.ignite.ci.analysis.mode.ProcessLogsMode;
-import org.apache.ignite.ci.di.AutoProfiling;
-import org.apache.ignite.ci.tcmodel.hist.BuildRef;
-import org.apache.ignite.ci.tcmodel.result.Build;
-import org.apache.ignite.ci.teamcity.ignited.BuildRefCompacted;
-import org.apache.ignite.ci.teamcity.ignited.IRunHistory;
-import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
-import org.apache.ignite.ci.teamcity.ignited.ITeamcityIgnited;
-import org.apache.ignite.ci.teamcity.ignited.SyncMode;
+import org.apache.ignite.ci.logs.BuildLogStreamChecker;
+import org.apache.ignite.ci.teamcity.ignited.*;
import org.apache.ignite.ci.teamcity.ignited.buildtype.ParametersCompacted;
import org.apache.ignite.ci.teamcity.ignited.fatbuild.FatBuildCompacted;
import org.apache.ignite.ci.teamcity.ignited.runhist.RunHistSync;
@@ -59,11 +33,33 @@ import org.apache.ignite.ci.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;
+import org.apache.ignite.tcbot.common.interceptor.AutoProfiling;
+import org.apache.ignite.tcservice.ITeamcity;
+import org.apache.ignite.tcservice.model.hist.BuildRef;
+import org.apache.ignite.tcservice.model.result.Build;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import javax.annotation.Nonnull;
+import javax.inject.Inject;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.UncheckedIOException;
+import java.util.*;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.Future;
+import java.util.concurrent.TimeUnit;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+import java.util.stream.IntStream;
+import java.util.stream.Stream;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipInputStream;
+
/**
* Process whole Build Chain, E.g. runAll at particular server, including all builds involved
*/
@@ -77,6 +73,11 @@ public class BuildChainProcessor {
/** Compactor. */
@Inject private IStringCompactor compactor;
+
+ /** Build logger processing running. */
+ private ConcurrentHashMap<Integer, CompletableFuture<LogCheckTask>> buildLogProcessingRunning = new ConcurrentHashMap<>();
+
+
/**
* Collects data about all long-running tests (run time more than one minute) across all suites in RunAll chain in
* master branch.
@@ -363,13 +364,85 @@ public class BuildChainProcessor {
@SuppressWarnings("WeakerAccess")
@AutoProfiling
- protected void analyzeTests(MultBuildRunCtx outCtx, IAnalyticsEnabledTeamcity teamcity,
+ protected void analyzeTests(MultBuildRunCtx outCtx, ITeamcity teamcity,
ProcessLogsMode procLog) {
for (SingleBuildRunCtx ctx : outCtx.getBuilds()) {
if ((procLog == ProcessLogsMode.SUITE_NOT_COMPLETE && ctx.hasSuiteIncompleteFailure())
|| procLog == ProcessLogsMode.ALL)
- ctx.setLogCheckResFut(teamcity.analyzeBuildLog(ctx.buildId(), ctx));
+ ctx.setLogCheckResFut(analyzeBuildLog(teamcity, ctx.buildId(), ctx));
+ }
+ }
+
+ private CompletableFuture<LogCheckTask> checkBuildLogNoCache(ITeamcity teamcity, int buildId, ISuiteResults ctx) {
+ final CompletableFuture<File> zipFut = teamcity.downloadBuildLogZip(buildId);
+ boolean dumpLastTest = ctx.hasSuiteIncompleteFailure();
+
+ if (zipFut == null)
+ return null;
+
+ return zipFut.thenApplyAsync(zipFile -> runCheckForZippedLog(dumpLastTest, zipFile),
+ teamcity.getExecutor());
+ }
+
+
+ @SuppressWarnings("WeakerAccess")
+ @AutoProfiling
+ @NotNull protected LogCheckTask runCheckForZippedLog(boolean dumpLastTest, File zipFile) {
+ LogCheckTask task = new LogCheckTask(zipFile);
+
+ try {
+ //get the zip file content
+ try (ZipInputStream zis = new ZipInputStream(new FileInputStream(zipFile))) {
+ ZipEntry ze = zis.getNextEntry(); //get the zipped file list entry
+
+ while (ze != null) {
+ BuildLogStreamChecker checker = task.createChecker();
+ checker.apply(zis, zipFile);
+ task.finalize(dumpLastTest);
+
+ ze = zis.getNextEntry();
+ }
+ zis.closeEntry();
+ }
+ }
+ catch (IOException | UncheckedIOException e) {
+ final String msg = "Failed to process ZIPed entry " + zipFile;
+
+ System.err.println(msg);
+ e.printStackTrace();
+
+ logger.error(msg, e);
}
+
+ return task;
+ }
+
+ //todo implement persistent cache for build results
+ @AutoProfiling
+ public CompletableFuture<LogCheckResult> analyzeBuildLog(ITeamcity teamcity, Integer buildId, SingleBuildRunCtx ctx) {
+ final Stopwatch started = Stopwatch.createStarted();
+
+ CompletableFuture<LogCheckTask> fut = buildLogProcessingRunning.computeIfAbsent(buildId,
+ k -> checkBuildLogNoCache(teamcity, k, ctx)
+ );
+
+ if (fut == null)
+ return null;
+
+ return fut
+ .thenApply(task -> {
+ buildLogProcessingRunning.remove(buildId, fut);
+
+ return task;
+ })
+ .thenApply(task -> {
+ logger.info(Thread.currentThread().getName()
+ + ": processBuildLog required: " + started.elapsed(TimeUnit.MILLISECONDS)
+ + "ms for " + ctx.suiteId());
+
+ return task;
+ })
+ .thenApply(LogCheckTask::getResult);
}
/**
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 86a7641..2e183b0 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
@@ -23,16 +23,15 @@ import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
import javax.inject.Inject;
import org.apache.ignite.ci.IAnalyticsEnabledTeamcity;
-import org.apache.ignite.ci.ITeamcity;
+import org.apache.ignite.tcservice.ITeamcity;
import org.apache.ignite.ci.analysis.FullChainRunCtx;
import org.apache.ignite.ci.analysis.SuiteInBranch;
import org.apache.ignite.ci.analysis.TestInBranch;
import org.apache.ignite.ci.analysis.mode.LatestRebuildMode;
import org.apache.ignite.ci.analysis.mode.ProcessLogsMode;
-import org.apache.ignite.ci.di.AutoProfiling;
+import org.apache.ignite.tcbot.common.interceptor.AutoProfiling;
import org.apache.ignite.ci.github.ignited.IGitHubConnIgnited;
import org.apache.ignite.ci.github.ignited.IGitHubConnIgnitedProvider;
-import org.apache.ignite.ci.github.pure.IGitHubConnectionProvider;
import org.apache.ignite.ci.jira.ignited.IJiraIgnited;
import org.apache.ignite.ci.jira.ignited.IJiraIgnitedProvider;
import org.apache.ignite.ci.tcbot.visa.BranchTicketMatcher;
@@ -64,9 +63,6 @@ public class PrChainsProcessor {
/** Tc server provider. */
@Inject private ITeamcityIgnitedProvider tcIgnitedProvider;
- /** Git hub connection provider. */
- @Inject private IGitHubConnectionProvider gitHubConnProvider;
-
/** */
@Inject private IGitHubConnIgnitedProvider gitHubConnIgnitedProvider;
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 9e57a67..b1b2693 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
@@ -25,7 +25,7 @@ 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.ci.tcbot.conf.BranchTracked;
-import org.apache.ignite.ci.di.AutoProfiling;
+import org.apache.ignite.tcbot.common.interceptor.AutoProfiling;
import org.apache.ignite.ci.tcbot.conf.ITcBotConfig;
import org.apache.ignite.ci.tcbot.conf.TcServerConfig;
import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/BuildParameterSpec.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/BuildParameterSpec.java
index 1a8796a..a775e1d 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/BuildParameterSpec.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/BuildParameterSpec.java
@@ -18,11 +18,13 @@
package org.apache.ignite.ci.tcbot.conf;
import com.google.common.base.Strings;
+import org.apache.ignite.tcbot.common.conf.IBuildParameterSpec;
+import org.apache.ignite.tcbot.common.conf.IParameterValueSpec;
import org.jetbrains.annotations.Nullable;
import java.util.*;
-public class BuildParameterSpec {
+public class BuildParameterSpec implements IBuildParameterSpec {
/** Parameter (property) Name. */
private String name;
@@ -84,7 +86,7 @@ public class BuildParameterSpec {
return !Strings.isNullOrEmpty(name);
}
- public List<ParameterValueSpec> selection() {
+ public List<? extends IParameterValueSpec> selection() {
return (selection == null || selection.isEmpty())
? Collections.emptyList()
: Collections.unmodifiableList(selection);
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/ITcBotConfig.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/ITcBotConfig.java
index 7d8ea83..9703287 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/ITcBotConfig.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/ITcBotConfig.java
@@ -16,13 +16,16 @@
*/
package org.apache.ignite.ci.tcbot.conf;
+import org.apache.ignite.tcbot.common.conf.ITcServerConfig;
+import org.apache.ignite.tcbot.common.conf.ITcServerConfigSupplier;
+
import java.util.Collection;
import java.util.List;
/**
- * Teamcity Bot configuration access inteface.
+ * Teamcity Bot configuration access interface.
*/
-public interface ITcBotConfig {
+public interface ITcBotConfig extends ITcServerConfigSupplier {
/** Default server code. */
public String DEFAULT_SERVER_CODE = "apache";
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/LocalFilesBasedConfig.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/LocalFilesBasedConfig.java
index d20647b..56215b8 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/LocalFilesBasedConfig.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/LocalFilesBasedConfig.java
@@ -23,6 +23,8 @@ import java.util.Objects;
import java.util.Properties;
import org.apache.ignite.ci.HelperConfig;
import org.apache.ignite.ci.di.cache.GuavaCached;
+import org.apache.ignite.tcbot.common.conf.ITcServerConfig;
+import org.apache.ignite.tcbot.common.conf.TcBotWorkDir;
/**
*
@@ -88,7 +90,7 @@ public class LocalFilesBasedConfig implements ITcBotConfig {
@GuavaCached(softValues = true, expireAfterWriteSecs = 3 * 60)
protected Properties loadOldAuthProps(String srvCode) {
- File workDir = HelperConfig.resolveWorkDir();
+ File workDir = TcBotWorkDir.resolveWorkDir();
String cfgName = HelperConfig.prepareConfigName(srvCode);
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/ParameterValueSpec.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/ParameterValueSpec.java
index e5b1ee0..56ee5d3 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/ParameterValueSpec.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/ParameterValueSpec.java
@@ -17,12 +17,14 @@
package org.apache.ignite.ci.tcbot.conf;
+import org.apache.ignite.tcbot.common.conf.IParameterValueSpec;
+
import java.util.Objects;
/**
* Some parameter value, which label may be used in UI.
*/
-public class ParameterValueSpec {
+public class ParameterValueSpec implements IParameterValueSpec {
private String value;
private String label;
private String valueRegExp;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/TcServerConfig.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/TcServerConfig.java
index 118319d..a29e6ac 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/TcServerConfig.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/TcServerConfig.java
@@ -24,6 +24,8 @@ import java.util.List;
import java.util.Properties;
import javax.annotation.Nonnull;
import org.apache.ignite.ci.HelperConfig;
+import org.apache.ignite.tcbot.common.conf.IBuildParameterSpec;
+import org.apache.ignite.tcbot.common.conf.ITcServerConfig;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -114,7 +116,7 @@ public class TcServerConfig implements ITcServerConfig {
}
/** {@inheritDoc} */
- @NotNull @Override public Collection<BuildParameterSpec> filteringParameters() {
+ @NotNull @Override public Collection<? extends IBuildParameterSpec> filteringParameters() {
if (filteringParameters == null || filteringParameters.isEmpty())
return Collections.emptySet();
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/issue/IssueDetector.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/issue/IssueDetector.java
index 9c3a32b..681736d 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/issue/IssueDetector.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/issue/IssueDetector.java
@@ -34,7 +34,7 @@ import javax.inject.Inject;
import javax.inject.Provider;
import org.apache.ignite.ci.analysis.SuiteInBranch;
import org.apache.ignite.ci.analysis.TestInBranch;
-import org.apache.ignite.ci.di.AutoProfiling;
+import org.apache.ignite.tcbot.common.interceptor.AutoProfiling;
import org.apache.ignite.ci.di.MonitoredTask;
import org.apache.ignite.ci.issue.EventTemplate;
import org.apache.ignite.ci.issue.EventTemplates;
@@ -47,7 +47,7 @@ import org.apache.ignite.ci.mail.SlackSender;
import org.apache.ignite.ci.tcbot.chain.TrackedBranchChainsProcessor;
import org.apache.ignite.ci.tcbot.conf.INotificationChannel;
import org.apache.ignite.ci.tcbot.conf.ITcBotConfig;
-import org.apache.ignite.ci.tcbot.conf.ITcServerConfig;
+import org.apache.ignite.tcbot.common.conf.ITcServerConfig;
import org.apache.ignite.ci.tcbot.conf.NotificationsConfig;
import org.apache.ignite.ci.tcbot.user.IUserStorage;
import org.apache.ignite.ci.teamcity.ignited.IRunHistory;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/issue/Notification.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/issue/Notification.java
index 29e3162..2818799 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/issue/Notification.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/issue/Notification.java
@@ -24,7 +24,7 @@ import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import org.apache.ignite.ci.issue.Issue;
-import org.apache.ignite.ci.util.TimeUtil;
+import org.apache.ignite.tcbot.common.util.TimeUtil;
import org.apache.ignite.ci.web.model.Version;
import static org.apache.ignite.ci.web.model.Version.GITHUB_REF;
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 6f2dca1..99cf724 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
@@ -39,12 +39,12 @@ import java.util.stream.Stream;
import javax.annotation.Nonnull;
import javax.inject.Inject;
import javax.inject.Provider;
-import org.apache.ignite.ci.di.AutoProfiling;
+import org.apache.ignite.tcbot.common.interceptor.AutoProfiling;
import org.apache.ignite.ci.di.cache.GuavaCached;
import org.apache.ignite.ci.tcbot.chain.BuildChainProcessor;
import org.apache.ignite.ci.tcbot.conf.ITcBotConfig;
-import org.apache.ignite.ci.tcmodel.hist.BuildRef;
-import org.apache.ignite.ci.tcmodel.result.tests.TestOccurrence;
+import org.apache.ignite.tcservice.model.hist.BuildRef;
+import org.apache.ignite.tcservice.model.result.tests.TestOccurrence;
import org.apache.ignite.ci.teamcity.ignited.BuildRefCompacted;
import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
import org.apache.ignite.ci.teamcity.ignited.ITeamcityIgnited;
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 279fdce..eac7b66 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
@@ -37,7 +37,7 @@ import java.util.stream.Stream;
import javax.annotation.Nonnull;
import javax.inject.Inject;
import javax.ws.rs.QueryParam;
-import org.apache.ignite.ci.ITeamcity;
+import org.apache.ignite.tcservice.ITeamcity;
import org.apache.ignite.ci.github.GitHubBranch;
import org.apache.ignite.ci.github.GitHubUser;
import org.apache.ignite.ci.github.PullRequest;
@@ -53,9 +53,9 @@ import org.apache.ignite.ci.tcbot.chain.PrChainsProcessor;
import org.apache.ignite.ci.tcbot.conf.IGitHubConfig;
import org.apache.ignite.ci.tcbot.conf.IJiraServerConfig;
import org.apache.ignite.ci.tcbot.conf.ITcBotConfig;
-import org.apache.ignite.ci.tcbot.conf.ITcServerConfig;
-import org.apache.ignite.ci.tcmodel.mute.MuteInfo;
-import org.apache.ignite.ci.tcmodel.result.Build;
+import org.apache.ignite.tcbot.common.conf.ITcServerConfig;
+import org.apache.ignite.tcservice.model.mute.MuteInfo;
+import org.apache.ignite.tcservice.model.result.Build;
import org.apache.ignite.ci.teamcity.ignited.BuildRefCompacted;
import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
import org.apache.ignite.ci.teamcity.ignited.ITeamcityIgnited;
@@ -83,7 +83,7 @@ import org.slf4j.LoggerFactory;
import static org.apache.ignite.ci.observer.BuildsInfo.CANCELLED_STATUS;
import static org.apache.ignite.ci.observer.BuildsInfo.FINISHED_STATUS;
import static org.apache.ignite.ci.observer.BuildsInfo.RUNNING_STATUS;
-import static org.apache.ignite.ci.util.XmlUtil.xmlEscapeText;
+import static org.apache.ignite.tcservice.util.XmlUtil.xmlEscapeText;
/**
* TC Bot Visa Facade. Provides method for TC Bot Visa obtaining. Contains features for adding comment to the ticket
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/BuildRefCompacted.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/BuildRefCompacted.java
index 599a4cb..05db429 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/BuildRefCompacted.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/BuildRefCompacted.java
@@ -20,11 +20,11 @@ import com.google.common.base.MoreObjects;
import com.google.common.base.Objects;
import org.apache.ignite.cache.query.annotations.QuerySqlField;
import org.apache.ignite.ci.db.Persisted;
-import org.apache.ignite.ci.tcmodel.hist.BuildRef;
+import org.apache.ignite.tcservice.model.hist.BuildRef;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
-import static org.apache.ignite.ci.tcmodel.hist.BuildRef.*;
+import static org.apache.ignite.tcservice.model.hist.BuildRef.*;
@Persisted
public class BuildRefCompacted {
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 35e44a5..c76279f 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
@@ -26,10 +26,10 @@ import java.util.Set;
import javax.annotation.Nullable;
import org.apache.ignite.ci.analysis.SuiteInBranch;
import org.apache.ignite.ci.analysis.TestInBranch;
-import org.apache.ignite.ci.tcbot.conf.ITcServerConfig;
-import org.apache.ignite.ci.tcmodel.agent.Agent;
-import org.apache.ignite.ci.tcmodel.mute.MuteInfo;
-import org.apache.ignite.ci.tcmodel.result.Build;
+import org.apache.ignite.tcbot.common.conf.ITcServerConfig;
+import org.apache.ignite.tcservice.model.agent.Agent;
+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.buildtype.BuildTypeCompacted;
import org.apache.ignite.ci.teamcity.ignited.buildtype.BuildTypeRefCompacted;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/ITeamcityIgnitedProvider.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/ITeamcityIgnitedProvider.java
index f4c5920..52cd845 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/ITeamcityIgnitedProvider.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/ITeamcityIgnitedProvider.java
@@ -18,7 +18,7 @@ package org.apache.ignite.ci.teamcity.ignited;
import javax.annotation.Nullable;
import org.apache.ignite.ci.user.ICredentialsProv;
-import org.apache.ignite.ci.web.rest.exception.ServiceUnauthorizedException;
+import org.apache.ignite.tcbot.common.exeption.ServiceUnauthorizedException;
/**
* Provides instance of particular cache-based teamcity connection.
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/IgniteStringCompactor.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/IgniteStringCompactor.java
index 015ac50..0b26546 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/IgniteStringCompactor.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/IgniteStringCompactor.java
@@ -33,10 +33,10 @@ import org.apache.ignite.cache.query.QueryCursor;
import org.apache.ignite.cache.query.SqlQuery;
import org.apache.ignite.cache.query.annotations.QuerySqlField;
import org.apache.ignite.ci.db.Persisted;
-import org.apache.ignite.ci.di.AutoProfiling;
+import org.apache.ignite.tcbot.common.interceptor.AutoProfiling;
import org.apache.ignite.ci.di.cache.GuavaCached;
-import org.apache.ignite.ci.util.ExceptionUtil;
-import org.apache.ignite.ci.util.ObjectInterner;
+import org.apache.ignite.tcbot.common.exeption.ExceptionUtil;
+import org.apache.ignite.tcbot.common.util.ObjectInterner;
import org.apache.ignite.configuration.CacheConfiguration;
import org.jetbrains.annotations.NotNull;
import org.slf4j.Logger;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/TcIgnitedCachingProvider.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/TcIgnitedCachingProvider.java
index 6fe237e..dee0339 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/TcIgnitedCachingProvider.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/TcIgnitedCachingProvider.java
@@ -24,12 +24,12 @@ import java.util.concurrent.TimeUnit;
import javax.annotation.Nullable;
import javax.inject.Inject;
import javax.inject.Provider;
-import org.apache.ignite.ci.ITeamcity;
+import org.apache.ignite.tcservice.ITeamcity;
import org.apache.ignite.ci.tcbot.conf.ITcBotConfig;
-import org.apache.ignite.ci.tcbot.conf.ITcServerConfig;
+import org.apache.ignite.tcbot.common.conf.ITcServerConfig;
import org.apache.ignite.ci.teamcity.restcached.ITcServerProvider;
import org.apache.ignite.ci.user.ICredentialsProv;
-import org.apache.ignite.ci.util.ExceptionUtil;
+import org.apache.ignite.tcbot.common.exeption.ExceptionUtil;
/**
*
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 cabb443..3cde6b8 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
@@ -34,20 +34,20 @@ import java.util.concurrent.atomic.AtomicBoolean;
import java.util.stream.Collectors;
import javax.annotation.Nullable;
import javax.inject.Inject;
-import org.apache.ignite.ci.ITeamcity;
+import org.apache.ignite.tcservice.ITeamcity;
import org.apache.ignite.ci.analysis.SuiteInBranch;
import org.apache.ignite.ci.analysis.TestInBranch;
-import org.apache.ignite.ci.di.AutoProfiling;
+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.ci.tcbot.conf.ITcServerConfig;
+import org.apache.ignite.tcbot.common.conf.ITcServerConfig;
import org.apache.ignite.ci.tcbot.trends.MasterTrendsService;
-import org.apache.ignite.ci.tcmodel.agent.Agent;
-import org.apache.ignite.ci.tcmodel.conf.Project;
-import org.apache.ignite.ci.tcmodel.hist.BuildRef;
-import org.apache.ignite.ci.tcmodel.mute.MuteInfo;
-import org.apache.ignite.ci.tcmodel.result.Build;
+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;
@@ -67,13 +67,13 @@ 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.ci.teamcity.pure.ITeamcityConn;
+import org.apache.ignite.tcservice.ITeamcityConn;
import org.apache.ignite.ci.user.ICredentialsProv;
import org.jetbrains.annotations.NotNull;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import static org.apache.ignite.ci.tcmodel.hist.BuildRef.STATUS_UNKNOWN;
+import static org.apache.ignite.tcservice.model.hist.BuildRef.STATUS_UNKNOWN;
/**
*
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 1dd0fe5..281dc0b 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
@@ -34,7 +34,7 @@ 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.ci.teamcity.pure.ITeamcityHttpConnection;
+import org.apache.ignite.tcservice.http.ITeamcityHttpConnection;
import org.apache.ignite.ci.teamcity.restcached.TcRestCachedModule;
import org.jetbrains.annotations.Nullable;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/buildref/BuildRefDao.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/buildref/BuildRefDao.java
index 608bb48..51cfd36 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/buildref/BuildRefDao.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/buildref/BuildRefDao.java
@@ -31,9 +31,9 @@ import org.apache.ignite.cache.QueryEntity;
import org.apache.ignite.cache.query.QueryCursor;
import org.apache.ignite.cache.query.SqlQuery;
import org.apache.ignite.ci.db.TcHelperDb;
-import org.apache.ignite.ci.di.AutoProfiling;
+import org.apache.ignite.tcbot.common.interceptor.AutoProfiling;
import org.apache.ignite.ci.di.cache.GuavaCached;
-import org.apache.ignite.ci.tcmodel.hist.BuildRef;
+import org.apache.ignite.tcservice.model.hist.BuildRef;
import org.apache.ignite.ci.teamcity.ignited.BuildRefCompacted;
import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
import org.apache.ignite.configuration.CacheConfiguration;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/buildref/BuildRefSync.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/buildref/BuildRefSync.java
index 94a4d1a..f84d76e 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/buildref/BuildRefSync.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/buildref/BuildRefSync.java
@@ -16,12 +16,12 @@
*/
package org.apache.ignite.ci.teamcity.ignited.buildref;
-import org.apache.ignite.ci.di.AutoProfiling;
+import org.apache.ignite.tcbot.common.interceptor.AutoProfiling;
import org.apache.ignite.ci.di.MonitoredTask;
-import org.apache.ignite.ci.tcmodel.hist.BuildRef;
+import org.apache.ignite.tcservice.model.hist.BuildRef;
import org.apache.ignite.ci.teamcity.ignited.ITeamcityIgnited;
import org.apache.ignite.ci.teamcity.ignited.fatbuild.ProactiveFatBuildSync;
-import org.apache.ignite.ci.teamcity.pure.ITeamcityConn;
+import org.apache.ignite.tcservice.ITeamcityConn;
import org.jetbrains.annotations.NotNull;
import javax.annotation.Nullable;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/buildtype/BuildTypeCompacted.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/buildtype/BuildTypeCompacted.java
index 92e2d1f..9325b97 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/buildtype/BuildTypeCompacted.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/buildtype/BuildTypeCompacted.java
@@ -24,10 +24,10 @@ import java.util.List;
import java.util.Objects;
import org.apache.ignite.ci.analysis.IVersionedEntity;
import org.apache.ignite.ci.db.Persisted;
-import org.apache.ignite.ci.tcmodel.conf.bt.BuildTypeFull;
-import org.apache.ignite.ci.tcmodel.conf.bt.Parameters;
-import org.apache.ignite.ci.tcmodel.conf.bt.SnapshotDependencies;
-import org.apache.ignite.ci.tcmodel.conf.bt.SnapshotDependency;
+import org.apache.ignite.tcservice.model.conf.bt.BuildTypeFull;
+import org.apache.ignite.tcservice.model.conf.bt.Parameters;
+import org.apache.ignite.tcservice.model.conf.bt.SnapshotDependencies;
+import org.apache.ignite.tcservice.model.conf.bt.SnapshotDependency;
import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
import org.apache.ignite.ci.util.NumberUtil;
import org.jetbrains.annotations.Nullable;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/buildtype/BuildTypeDao.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/buildtype/BuildTypeDao.java
index 124a874..b4c298d 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/buildtype/BuildTypeDao.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/buildtype/BuildTypeDao.java
@@ -27,8 +27,8 @@ import java.util.stream.StreamSupport;
import javax.inject.Inject;
import org.apache.ignite.Ignite;
import org.apache.ignite.IgniteCache;
-import org.apache.ignite.ci.di.AutoProfiling;
-import org.apache.ignite.ci.tcmodel.conf.bt.BuildTypeFull;
+import org.apache.ignite.tcbot.common.interceptor.AutoProfiling;
+import org.apache.ignite.tcservice.model.conf.bt.BuildTypeFull;
import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
import javax.validation.constraints.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/buildtype/BuildTypeRefCompacted.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/buildtype/BuildTypeRefCompacted.java
index 05dbf82..da04bdc 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/buildtype/BuildTypeRefCompacted.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/buildtype/BuildTypeRefCompacted.java
@@ -20,7 +20,7 @@ package org.apache.ignite.ci.teamcity.ignited.buildtype;
import com.google.common.base.MoreObjects;
import java.util.Objects;
import org.apache.ignite.ci.db.Persisted;
-import org.apache.ignite.ci.tcmodel.conf.BuildType;
+import org.apache.ignite.tcservice.model.conf.BuildType;
import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/buildtype/BuildTypeRefDao.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/buildtype/BuildTypeRefDao.java
index 9929d71..98178b9 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/buildtype/BuildTypeRefDao.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/buildtype/BuildTypeRefDao.java
@@ -33,7 +33,7 @@ import javax.inject.Inject;
import javax.validation.constraints.NotNull;
import org.apache.ignite.Ignite;
import org.apache.ignite.IgniteCache;
-import org.apache.ignite.ci.tcmodel.conf.BuildType;
+import org.apache.ignite.tcservice.model.conf.BuildType;
import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
import org.jetbrains.annotations.Nullable;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/buildtype/BuildTypeSync.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/buildtype/BuildTypeSync.java
index 46ca440..3ab4545 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/buildtype/BuildTypeSync.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/buildtype/BuildTypeSync.java
@@ -26,13 +26,13 @@ import java.util.Set;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import javax.inject.Inject;
-import org.apache.ignite.ci.di.AutoProfiling;
+import org.apache.ignite.tcbot.common.interceptor.AutoProfiling;
import org.apache.ignite.ci.di.MonitoredTask;
import org.apache.ignite.ci.di.scheduler.IScheduler;
-import org.apache.ignite.ci.tcmodel.conf.BuildType;
-import org.apache.ignite.ci.tcmodel.conf.bt.BuildTypeFull;
-import org.apache.ignite.ci.teamcity.pure.ITeamcityConn;
-import org.apache.ignite.ci.util.ExceptionUtil;
+import org.apache.ignite.tcservice.model.conf.BuildType;
+import org.apache.ignite.tcservice.model.conf.bt.BuildTypeFull;
+import org.apache.ignite.tcservice.ITeamcityConn;
+import org.apache.ignite.tcbot.common.exeption.ExceptionUtil;
import org.jetbrains.annotations.NotNull;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/buildtype/ParametersCompacted.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/buildtype/ParametersCompacted.java
index e969fd5..0887bfb 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/buildtype/ParametersCompacted.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/buildtype/ParametersCompacted.java
@@ -25,8 +25,8 @@ import java.util.Objects;
import java.util.function.BiConsumer;
import javax.annotation.Nullable;
import org.apache.ignite.ci.db.Persisted;
-import org.apache.ignite.ci.tcmodel.conf.bt.Parameters;
-import org.apache.ignite.ci.tcmodel.conf.bt.Property;
+import org.apache.ignite.tcservice.model.conf.bt.Parameters;
+import org.apache.ignite.tcservice.model.conf.bt.Property;
import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
import org.apache.ignite.internal.util.GridIntList;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/buildtype/SnapshotDependencyCompacted.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/buildtype/SnapshotDependencyCompacted.java
index 085de7b..caaf9e4 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/buildtype/SnapshotDependencyCompacted.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/buildtype/SnapshotDependencyCompacted.java
@@ -19,7 +19,7 @@ package org.apache.ignite.ci.teamcity.ignited.buildtype;
import com.google.common.base.MoreObjects;
import java.util.Objects;
-import org.apache.ignite.ci.tcmodel.conf.bt.SnapshotDependency;
+import org.apache.ignite.tcservice.model.conf.bt.SnapshotDependency;
import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
public class SnapshotDependencyCompacted {
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/change/ChangeCompacted.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/change/ChangeCompacted.java
index 73a35a4..fad5f58 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/change/ChangeCompacted.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/change/ChangeCompacted.java
@@ -23,7 +23,7 @@ import javax.annotation.Nullable;
import javax.xml.bind.DatatypeConverter;
import org.apache.ignite.ci.analysis.IVersionedEntity;
import org.apache.ignite.ci.db.Persisted;
-import org.apache.ignite.ci.tcmodel.changes.Change;
+import org.apache.ignite.tcservice.model.changes.Change;
import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
import org.apache.ignite.ci.teamcity.ignited.fatbuild.FatBuildDao;
import org.slf4j.Logger;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/change/ChangeDao.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/change/ChangeDao.java
index 14040ca..d5cde84 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/change/ChangeDao.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/change/ChangeDao.java
@@ -25,7 +25,7 @@ import javax.inject.Provider;
import org.apache.ignite.Ignite;
import org.apache.ignite.IgniteCache;
import org.apache.ignite.ci.db.TcHelperDb;
-import org.apache.ignite.ci.di.AutoProfiling;
+import org.apache.ignite.tcbot.common.interceptor.AutoProfiling;
import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
import org.apache.ignite.configuration.CacheConfiguration;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/change/ChangeSync.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/change/ChangeSync.java
index 55f74a6..9ac9adf 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/change/ChangeSync.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/change/ChangeSync.java
@@ -17,11 +17,11 @@
package org.apache.ignite.ci.teamcity.ignited.change;
import com.google.common.base.Throwables;
-import org.apache.ignite.ci.di.AutoProfiling;
-import org.apache.ignite.ci.tcmodel.changes.Change;
+import org.apache.ignite.tcbot.common.interceptor.AutoProfiling;
+import org.apache.ignite.tcservice.model.changes.Change;
import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
-import org.apache.ignite.ci.teamcity.pure.ITeamcityConn;
-import org.apache.ignite.ci.util.ExceptionUtil;
+import org.apache.ignite.tcservice.ITeamcityConn;
+import org.apache.ignite.tcbot.common.exeption.ExceptionUtil;
import org.jetbrains.annotations.NotNull;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/change/RevisionCompacted.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/change/RevisionCompacted.java
index c7de5fc..a34f4f4 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/change/RevisionCompacted.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/change/RevisionCompacted.java
@@ -23,8 +23,8 @@ import javax.annotation.Nullable;
import javax.xml.bind.DatatypeConverter;
import org.apache.ignite.ci.analysis.IVersionedEntity;
import org.apache.ignite.ci.db.Persisted;
-import org.apache.ignite.ci.tcmodel.vcs.Revision;
-import org.apache.ignite.ci.tcmodel.vcs.VcsRootInstance;
+import org.apache.ignite.tcservice.model.vcs.Revision;
+import org.apache.ignite.tcservice.model.vcs.VcsRootInstance;
import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
import org.apache.ignite.ci.teamcity.ignited.fatbuild.FatBuildDao;
import org.slf4j.Logger;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/FatBuildCompacted.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/FatBuildCompacted.java
index 59feae2..329c93f 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/FatBuildCompacted.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/FatBuildCompacted.java
@@ -30,24 +30,24 @@ import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.BiPredicate;
import java.util.stream.Collectors;
import java.util.stream.Stream;
-import org.apache.ignite.ci.ITeamcity;
+import org.apache.ignite.tcservice.ITeamcity;
import org.apache.ignite.ci.analysis.IVersionedEntity;
import org.apache.ignite.ci.db.Persisted;
-import org.apache.ignite.ci.tcmodel.conf.BuildType;
-import org.apache.ignite.ci.tcmodel.conf.bt.Parameters;
-import org.apache.ignite.ci.tcmodel.conf.bt.Property;
-import org.apache.ignite.ci.tcmodel.hist.BuildRef;
-import org.apache.ignite.ci.tcmodel.result.Build;
-import org.apache.ignite.ci.tcmodel.result.TestOccurrencesRef;
-import org.apache.ignite.ci.tcmodel.result.Triggered;
-import org.apache.ignite.ci.tcmodel.result.problems.ProblemOccurrence;
-import org.apache.ignite.ci.tcmodel.result.stat.Statistics;
-import org.apache.ignite.ci.tcmodel.result.tests.TestOccurrenceFull;
-import org.apache.ignite.ci.tcmodel.result.tests.TestOccurrencesFull;
-import org.apache.ignite.ci.tcmodel.user.User;
-import org.apache.ignite.ci.tcmodel.vcs.Revision;
-import org.apache.ignite.ci.tcmodel.vcs.Revisions;
-import org.apache.ignite.ci.tcmodel.vcs.VcsRootInstance;
+import org.apache.ignite.tcservice.model.conf.BuildType;
+import org.apache.ignite.tcservice.model.conf.bt.Parameters;
+import org.apache.ignite.tcservice.model.conf.bt.Property;
+import org.apache.ignite.tcservice.model.hist.BuildRef;
+import org.apache.ignite.tcservice.model.result.Build;
+import org.apache.ignite.tcservice.model.result.TestOccurrencesRef;
+import org.apache.ignite.tcservice.model.result.Triggered;
+import org.apache.ignite.tcservice.model.result.problems.ProblemOccurrence;
+import org.apache.ignite.tcservice.model.result.stat.Statistics;
+import org.apache.ignite.tcservice.model.result.tests.TestOccurrenceFull;
+import org.apache.ignite.tcservice.model.result.tests.TestOccurrencesFull;
+import org.apache.ignite.tcservice.model.user.User;
+import org.apache.ignite.tcservice.model.vcs.Revision;
+import org.apache.ignite.tcservice.model.vcs.Revisions;
+import org.apache.ignite.tcservice.model.vcs.VcsRootInstance;
import org.apache.ignite.ci.teamcity.ignited.BuildRefCompacted;
import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
import org.apache.ignite.ci.teamcity.ignited.buildtype.ParametersCompacted;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/FatBuildDao.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/FatBuildDao.java
index 6a3381d..dc29eba 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/FatBuildDao.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/FatBuildDao.java
@@ -34,12 +34,12 @@ import javax.validation.constraints.NotNull;
import org.apache.ignite.Ignite;
import org.apache.ignite.IgniteCache;
import org.apache.ignite.ci.db.TcHelperDb;
-import org.apache.ignite.ci.di.AutoProfiling;
-import org.apache.ignite.ci.tcmodel.changes.ChangesList;
-import org.apache.ignite.ci.tcmodel.result.Build;
-import org.apache.ignite.ci.tcmodel.result.problems.ProblemOccurrence;
-import org.apache.ignite.ci.tcmodel.result.stat.Statistics;
-import org.apache.ignite.ci.tcmodel.result.tests.TestOccurrencesFull;
+import org.apache.ignite.tcbot.common.interceptor.AutoProfiling;
+import org.apache.ignite.tcservice.model.changes.ChangesList;
+import org.apache.ignite.tcservice.model.result.Build;
+import org.apache.ignite.tcservice.model.result.problems.ProblemOccurrence;
+import org.apache.ignite.tcservice.model.result.stat.Statistics;
+import org.apache.ignite.tcservice.model.result.tests.TestOccurrencesFull;
import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/ProactiveFatBuildSync.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/ProactiveFatBuildSync.java
index 8c72f3e..8739a62 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/ProactiveFatBuildSync.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/ProactiveFatBuildSync.java
@@ -19,14 +19,14 @@ package org.apache.ignite.ci.teamcity.ignited.fatbuild;
import com.google.common.base.Strings;
import com.google.common.base.Throwables;
import java.util.stream.Stream;
-import org.apache.ignite.ci.di.AutoProfiling;
+import org.apache.ignite.tcbot.common.interceptor.AutoProfiling;
import org.apache.ignite.ci.di.MonitoredTask;
import org.apache.ignite.ci.di.scheduler.IScheduler;
-import org.apache.ignite.ci.tcmodel.changes.ChangesList;
-import org.apache.ignite.ci.tcmodel.result.Build;
-import org.apache.ignite.ci.tcmodel.result.problems.ProblemOccurrence;
-import org.apache.ignite.ci.tcmodel.result.stat.Statistics;
-import org.apache.ignite.ci.tcmodel.result.tests.TestOccurrencesFull;
+import org.apache.ignite.tcservice.model.changes.ChangesList;
+import org.apache.ignite.tcservice.model.result.Build;
+import org.apache.ignite.tcservice.model.result.problems.ProblemOccurrence;
+import org.apache.ignite.tcservice.model.result.stat.Statistics;
+import org.apache.ignite.tcservice.model.result.tests.TestOccurrencesFull;
import org.apache.ignite.ci.teamcity.ignited.BuildRefCompacted;
import org.apache.ignite.ci.teamcity.ignited.buildref.BuildRefDao;
import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
@@ -34,9 +34,9 @@ import org.apache.ignite.ci.teamcity.ignited.ITeamcityIgnited;
import org.apache.ignite.ci.teamcity.ignited.SyncMode;
import org.apache.ignite.ci.teamcity.ignited.change.ChangeSync;
import org.apache.ignite.ci.teamcity.ignited.runhist.RunHistSync;
-import org.apache.ignite.ci.teamcity.pure.ITeamcityConn;
-import org.apache.ignite.ci.util.ExceptionUtil;
-import org.apache.ignite.ci.web.rest.exception.ConflictException;
+import org.apache.ignite.tcservice.ITeamcityConn;
+import org.apache.ignite.tcbot.common.exeption.ExceptionUtil;
+import org.apache.ignite.tcbot.common.exeption.ServiceConflictException;
import org.apache.ignite.internal.util.GridConcurrentHashSet;
import org.jetbrains.annotations.NotNull;
import org.slf4j.Logger;
@@ -385,7 +385,7 @@ public class ProactiveFatBuildSync {
catch (Exception e) {
Throwable cause = Throwables.getRootCause(e);
- if (cause instanceof FileNotFoundException || cause instanceof ConflictException) {
+ if (cause instanceof FileNotFoundException || cause instanceof ServiceConflictException) {
logger.info("Loading build [" + buildId + "] for server [" + srvName + "] failed:" + e.getMessage(), e);
if (existingBuild != null) {
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/ProblemCompacted.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/ProblemCompacted.java
index 5ea9994..fc1a73f 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/ProblemCompacted.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/ProblemCompacted.java
@@ -20,8 +20,8 @@ package org.apache.ignite.ci.teamcity.ignited.fatbuild;
import com.google.common.base.MoreObjects;
import com.google.common.base.Objects;
import com.google.common.base.Strings;
-import org.apache.ignite.ci.tcmodel.hist.BuildRef;
-import org.apache.ignite.ci.tcmodel.result.problems.ProblemOccurrence;
+import org.apache.ignite.tcservice.model.hist.BuildRef;
+import org.apache.ignite.tcservice.model.result.problems.ProblemOccurrence;
import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/StatisticsCompacted.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/StatisticsCompacted.java
index 1d66c5b..9388fc6 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/StatisticsCompacted.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/StatisticsCompacted.java
@@ -20,8 +20,8 @@ package org.apache.ignite.ci.teamcity.ignited.fatbuild;
import com.google.common.base.Strings;
import java.util.List;
import org.apache.ignite.ci.db.Persisted;
-import org.apache.ignite.ci.tcmodel.conf.bt.Property;
-import org.apache.ignite.ci.tcmodel.result.stat.Statistics;
+import org.apache.ignite.tcservice.model.conf.bt.Property;
+import org.apache.ignite.tcservice.model.result.stat.Statistics;
import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
import org.apache.ignite.internal.util.GridIntList;
import org.apache.ignite.internal.util.GridLongList;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/TestCompacted.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/TestCompacted.java
index d1eb5e9..633e2de 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/TestCompacted.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/TestCompacted.java
@@ -27,15 +27,14 @@ import java.util.Objects;
import java.util.TreeMap;
import java.util.function.BiPredicate;
import org.apache.ignite.ci.tcbot.common.StringFieldCompacted;
-import org.apache.ignite.ci.tcmodel.hist.BuildRef;
-import org.apache.ignite.ci.tcmodel.result.tests.TestOccurrence;
-import org.apache.ignite.ci.tcmodel.result.tests.TestOccurrenceFull;
-import org.apache.ignite.ci.tcmodel.result.tests.TestRef;
+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;
+import org.apache.ignite.tcservice.model.result.tests.TestRef;
import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
import org.apache.ignite.ci.teamcity.ignited.buildtype.ParametersCompacted;
import org.apache.ignite.ci.teamcity.ignited.runhist.Invocation;
import org.apache.ignite.ci.teamcity.ignited.runhist.InvocationData;
-import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/mute/MuteDao.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/mute/MuteDao.java
index 7dfb017..cceab39 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/mute/MuteDao.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/mute/MuteDao.java
@@ -28,8 +28,8 @@ import javax.inject.Provider;
import org.apache.ignite.Ignite;
import org.apache.ignite.IgniteCache;
import org.apache.ignite.ci.db.TcHelperDb;
-import org.apache.ignite.ci.di.AutoProfiling;
-import org.apache.ignite.ci.tcmodel.mute.MuteInfo;
+import org.apache.ignite.tcbot.common.interceptor.AutoProfiling;
+import org.apache.ignite.tcservice.model.mute.MuteInfo;
import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
import org.apache.ignite.internal.util.typedef.F;
import org.apache.ignite.internal.util.typedef.internal.U;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/mute/MuteInfoCompacted.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/mute/MuteInfoCompacted.java
index e0991b1..cfc3725 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/mute/MuteInfoCompacted.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/mute/MuteInfoCompacted.java
@@ -20,12 +20,12 @@ 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.ci.tcmodel.mute.MuteAssignment;
-import org.apache.ignite.ci.tcmodel.mute.MuteInfo;
-import org.apache.ignite.ci.tcmodel.mute.MuteTarget;
-import org.apache.ignite.ci.tcmodel.result.tests.TestRef;
+import org.apache.ignite.tcservice.model.mute.MuteAssignment;
+import org.apache.ignite.tcservice.model.mute.MuteInfo;
+import org.apache.ignite.tcservice.model.mute.MuteTarget;
+import org.apache.ignite.tcservice.model.result.tests.TestRef;
import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
-import org.apache.ignite.ci.util.TimeUtil;
+import org.apache.ignite.tcbot.common.util.TimeUtil;
import org.apache.ignite.internal.util.typedef.F;
/**
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/mute/MuteScopeCompacted.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/mute/MuteScopeCompacted.java
index 9f0067c..51ea944 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/mute/MuteScopeCompacted.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/mute/MuteScopeCompacted.java
@@ -19,9 +19,9 @@ package org.apache.ignite.ci.teamcity.ignited.mute;
import java.util.ArrayList;
import java.util.List;
-import org.apache.ignite.ci.tcmodel.conf.BuildType;
-import org.apache.ignite.ci.tcmodel.conf.Project;
-import org.apache.ignite.ci.tcmodel.mute.MuteScope;
+import org.apache.ignite.tcservice.model.conf.BuildType;
+import org.apache.ignite.tcservice.model.conf.Project;
+import org.apache.ignite.tcservice.model.mute.MuteScope;
import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
import org.apache.ignite.ci.teamcity.ignited.buildtype.BuildTypeRefCompacted;
import org.apache.ignite.internal.util.typedef.F;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/mute/MuteSync.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/mute/MuteSync.java
index 8c40542..591d51c 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/mute/MuteSync.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/mute/MuteSync.java
@@ -23,8 +23,8 @@ import java.util.concurrent.atomic.AtomicReference;
import javax.inject.Inject;
import org.apache.ignite.ci.di.MonitoredTask;
import org.apache.ignite.ci.di.scheduler.IScheduler;
-import org.apache.ignite.ci.tcmodel.mute.MuteInfo;
-import org.apache.ignite.ci.teamcity.pure.ITeamcityConn;
+import org.apache.ignite.tcservice.model.mute.MuteInfo;
+import org.apache.ignite.tcservice.ITeamcityConn;
import org.apache.ignite.internal.util.typedef.F;
/**
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/runhist/RunHistCompactedDao.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/runhist/RunHistCompactedDao.java
index 393c8fa..c99af4d 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/runhist/RunHistCompactedDao.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/runhist/RunHistCompactedDao.java
@@ -31,7 +31,7 @@ import org.apache.ignite.cache.QueryEntity;
import org.apache.ignite.cache.query.QueryCursor;
import org.apache.ignite.cache.query.SqlQuery;
import org.apache.ignite.ci.db.TcHelperDb;
-import org.apache.ignite.ci.di.AutoProfiling;
+import org.apache.ignite.tcbot.common.interceptor.AutoProfiling;
import org.apache.ignite.ci.di.cache.GuavaCached;
import org.apache.ignite.ci.teamcity.ignited.IRunHistory;
import org.apache.ignite.ci.teamcity.ignited.IRunStat;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/runhist/RunHistSync.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/runhist/RunHistSync.java
index 199f8d3..1e4e197 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/runhist/RunHistSync.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/runhist/RunHistSync.java
@@ -32,12 +32,12 @@ import java.util.function.BiPredicate;
import java.util.stream.Collectors;
import javax.annotation.concurrent.GuardedBy;
import javax.inject.Inject;
-import org.apache.ignite.ci.ITeamcity;
-import org.apache.ignite.ci.di.AutoProfiling;
+import org.apache.ignite.tcservice.ITeamcity;
+import org.apache.ignite.tcbot.common.conf.IBuildParameterSpec;
+import org.apache.ignite.tcbot.common.interceptor.AutoProfiling;
import org.apache.ignite.ci.di.MonitoredTask;
import org.apache.ignite.ci.di.scheduler.IScheduler;
-import org.apache.ignite.ci.tcbot.TcBotSystemProperties;
-import org.apache.ignite.ci.tcbot.conf.BuildParameterSpec;
+import org.apache.ignite.tcbot.common.conf.TcBotSystemProperties;
import org.apache.ignite.ci.tcbot.conf.ChainAtServerTracked;
import org.apache.ignite.ci.tcbot.conf.ITcBotConfig;
import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
@@ -165,7 +165,7 @@ public class RunHistSync {
cfg.getTeamcityConfig(srvCode)
.filteringParameters()
.stream()
- .map(BuildParameterSpec::name)
+ .map(IBuildParameterSpec::name)
.forEach(importantParameters::add);
return importantParameters.stream().map(k -> compactor.getStringId(k)).collect(Collectors.toSet());
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/restcached/InitializingServerFactory.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/restcached/InitializingServerFactory.java
index 06a6f4a..f7827d1 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/restcached/InitializingServerFactory.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/restcached/InitializingServerFactory.java
@@ -20,7 +20,7 @@ import com.google.common.base.Strings;
import javax.inject.Inject;
import javax.inject.Provider;
import org.apache.ignite.ci.IAnalyticsEnabledTeamcity;
-import org.apache.ignite.ci.IgniteTeamcityConnection;
+import org.apache.ignite.tcservice.IgniteTeamcityConnection;
import org.apache.ignite.ci.web.TcUpdatePool;
class InitializingServerFactory implements ITcServerFactory {
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/restcached/TcRestCachedModule.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/restcached/TcRestCachedModule.java
index 897d97e..60f1577 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/restcached/TcRestCachedModule.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/restcached/TcRestCachedModule.java
@@ -20,8 +20,8 @@ import com.google.inject.AbstractModule;
import com.google.inject.internal.SingletonScope;
import org.apache.ignite.ci.IAnalyticsEnabledTeamcity;
import org.apache.ignite.ci.IgnitePersistentTeamcity;
-import org.apache.ignite.ci.teamcity.pure.ITeamcityHttpConnection;
-import org.apache.ignite.ci.teamcity.pure.TcRealConnectionModule;
+import org.apache.ignite.tcservice.http.ITeamcityHttpConnection;
+import org.apache.ignite.tcservice.TcRealConnectionModule;
import org.jetbrains.annotations.Nullable;
/**
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 42ab9ad..e4c1715 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
@@ -21,7 +21,7 @@ import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import org.apache.ignite.ci.IAnalyticsEnabledTeamcity;
import org.apache.ignite.ci.user.ICredentialsProv;
-import org.apache.ignite.ci.util.ExceptionUtil;
+import org.apache.ignite.tcbot.common.exeption.ExceptionUtil;
import javax.annotation.Nullable;
import javax.inject.Inject;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/user/TcHelperUser.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/user/TcHelperUser.java
index 2003dec..7e4e22d 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/user/TcHelperUser.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/user/TcHelperUser.java
@@ -27,7 +27,7 @@ import java.util.TreeSet;
import org.apache.ignite.ci.analysis.IVersionedEntity;
import org.apache.ignite.ci.db.Persisted;
import org.apache.ignite.ci.tcbot.conf.INotificationChannel;
-import org.apache.ignite.ci.tcmodel.user.User;
+import org.apache.ignite.tcservice.model.user.User;
import org.apache.ignite.ci.util.CryptUtil;
import org.jetbrains.annotations.Nullable;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/util/FutureUtil.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/util/FutureUtil.java
index 17d695d..ef490f0 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/util/FutureUtil.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/util/FutureUtil.java
@@ -21,6 +21,8 @@ import java.util.Collection;
import java.util.concurrent.ExecutionException;
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;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/util/ZipUtil.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/util/ZipUtil.java
index f95f6d6..3532db9 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/util/ZipUtil.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/util/ZipUtil.java
@@ -27,7 +27,8 @@ import java.util.ArrayList;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
-import org.apache.ignite.ci.HelperConfig;
+
+import org.apache.ignite.tcbot.common.conf.TcBotWorkDir;
/** Unzips files to specified folder */
public class ZipUtil {
@@ -53,7 +54,7 @@ public class ZipUtil {
else {
System.out.println("file unzip : " + newFile.getAbsoluteFile());
- HelperConfig.ensureDirExist(new File(newFile.getParent()));
+ TcBotWorkDir.ensureDirExist(new File(newFile.getParent()));
Files.copy(zis, newFile.toPath(), StandardCopyOption.REPLACE_EXISTING);
}
result.add(newFile);
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/CtxListener.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/CtxListener.java
index bce83c5..1b78823 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/CtxListener.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/CtxListener.java
@@ -31,7 +31,7 @@ import org.apache.ignite.ci.di.IgniteTcBotModule;
import org.apache.ignite.ci.di.scheduler.IScheduler;
import org.apache.ignite.ci.observer.BuildObserver;
import org.apache.ignite.ci.tcbot.issue.IssueDetector;
-import org.apache.ignite.ci.teamcity.pure.TeamcityRecorder;
+import org.apache.ignite.tcservice.http.TeamcityRecorder;
import org.apache.ignite.ci.teamcity.restcached.ITcServerProvider;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/Launcher.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/Launcher.java
index 2d29ff0..c9c00b4 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/Launcher.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/Launcher.java
@@ -23,7 +23,7 @@ import java.io.File;
import java.io.IOException;
import java.io.Reader;
import org.apache.ignite.ci.db.TcHelperDb;
-import org.apache.ignite.ci.tcbot.TcBotSystemProperties;
+import org.apache.ignite.tcbot.common.conf.TcBotSystemProperties;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.ServerConnector;
import org.eclipse.jetty.webapp.WebAppContext;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/TcApplicationResCfg.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/TcApplicationResCfg.java
index ea9657a..301bde2 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/TcApplicationResCfg.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/TcApplicationResCfg.java
@@ -20,7 +20,7 @@ package org.apache.ignite.ci.web;
import org.apache.ignite.ci.web.auth.AuthenticationFilter;
import org.apache.ignite.ci.web.rest.exception.ExeptionsTraceLogger;
import org.apache.ignite.ci.web.rest.exception.ServiceStartingException;
-import org.apache.ignite.ci.web.rest.exception.ServiceUnauthorizedException;
+import org.apache.ignite.tcbot.common.exeption.ServiceUnauthorizedException;
import org.glassfish.jersey.logging.LoggingFeature;
import org.glassfish.jersey.server.ResourceConfig;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/auth/AuthenticationFilter.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/auth/AuthenticationFilter.java
index 948a4d1..06a09fe 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/auth/AuthenticationFilter.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/auth/AuthenticationFilter.java
@@ -42,11 +42,11 @@ import org.apache.ignite.ci.tcbot.user.IUserStorage;
import org.apache.ignite.ci.user.ICredentialsProv;
import org.apache.ignite.ci.user.TcHelperUser;
import org.apache.ignite.ci.user.UserSession;
-import org.apache.ignite.ci.util.Base64Util;
+import org.apache.ignite.tcbot.common.util.Base64Util;
import org.apache.ignite.ci.util.CryptUtil;
-import org.apache.ignite.ci.util.ExceptionUtil;
+import org.apache.ignite.tcbot.common.exeption.ExceptionUtil;
import org.apache.ignite.ci.web.CtxListener;
-import org.apache.ignite.ci.web.rest.exception.ServiceUnauthorizedException;
+import org.apache.ignite.tcbot.common.exeption.ServiceUnauthorizedException;
import org.jetbrains.annotations.NotNull;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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 b617177..7a7c956 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
@@ -33,7 +33,7 @@ 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.tcmodel.conf.BuildType;
+import org.apache.ignite.tcservice.model.conf.BuildType;
import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
import org.apache.ignite.ci.teamcity.ignited.ITeamcityIgnited;
import org.apache.ignite.ci.util.CollectionUtil;
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 136f71d..6998a80 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
@@ -44,7 +44,7 @@ import org.apache.ignite.ci.web.rest.GetBuildLog;
import org.jetbrains.annotations.NotNull;
import static org.apache.ignite.ci.teamcity.ignited.runhist.RunHistSync.normalizeBranch;
-import static org.apache.ignite.ci.util.TimeUtil.millisToDurationPrintable;
+import static org.apache.ignite.tcbot.common.util.TimeUtil.millisToDurationPrintable;
import static org.apache.ignite.ci.util.UrlUtil.escape;
/**
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 90bf9bb..8227e50 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
@@ -37,7 +37,7 @@ import org.apache.ignite.ci.web.model.hist.TestHistory;
import org.jetbrains.annotations.NotNull;
import static org.apache.ignite.ci.teamcity.ignited.runhist.RunHistSync.normalizeBranch;
-import static org.apache.ignite.ci.util.TimeUtil.millisToDurationPrintable;
+import static org.apache.ignite.tcbot.common.util.TimeUtil.millisToDurationPrintable;
import static org.apache.ignite.ci.util.UrlUtil.escape;
/**
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/long_running/LRTest.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/long_running/LRTest.java
index e1f57e0..93f5e3b 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/long_running/LRTest.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/long_running/LRTest.java
@@ -16,7 +16,7 @@
*/
package org.apache.ignite.ci.web.model.long_running;
-import static org.apache.ignite.ci.util.TimeUtil.millisToDurationPrintable;
+import static org.apache.ignite.tcbot.common.util.TimeUtil.millisToDurationPrintable;
/**
*
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/long_running/SuiteLRTestsSummary.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/long_running/SuiteLRTestsSummary.java
index 2ae2b0c..683bb02 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/long_running/SuiteLRTestsSummary.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/long_running/SuiteLRTestsSummary.java
@@ -18,7 +18,7 @@ package org.apache.ignite.ci.web.model.long_running;
import java.util.List;
-import static org.apache.ignite.ci.util.TimeUtil.millisToDurationPrintable;
+import static org.apache.ignite.tcbot.common.util.TimeUtil.millisToDurationPrintable;
/**
*
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/trends/BuildStatisticsSummary.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/trends/BuildStatisticsSummary.java
index 310ce47..91920e1 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/trends/BuildStatisticsSummary.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/trends/BuildStatisticsSummary.java
@@ -27,18 +27,18 @@ import java.util.Objects;
import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
import java.util.stream.Stream;
-import org.apache.ignite.ci.tcmodel.hist.BuildRef;
-import org.apache.ignite.ci.tcmodel.result.TestOccurrencesRef;
-import org.apache.ignite.ci.tcmodel.result.tests.TestOccurrence;
+import org.apache.ignite.tcservice.model.hist.BuildRef;
+import org.apache.ignite.tcservice.model.result.TestOccurrencesRef;
+import org.apache.ignite.tcservice.model.result.tests.TestOccurrence;
import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
import org.apache.ignite.ci.teamcity.ignited.fatbuild.FatBuildCompacted;
import org.apache.ignite.ci.teamcity.ignited.fatbuild.ProblemCompacted;
import org.apache.ignite.internal.util.typedef.T2;
-import static org.apache.ignite.ci.tcmodel.result.problems.ProblemOccurrence.TC_EXECUTION_TIMEOUT;
-import static org.apache.ignite.ci.tcmodel.result.problems.ProblemOccurrence.TC_EXIT_CODE;
-import static org.apache.ignite.ci.tcmodel.result.problems.ProblemOccurrence.TC_JVM_CRASH;
-import static org.apache.ignite.ci.tcmodel.result.problems.ProblemOccurrence.TC_OOME;
+import static org.apache.ignite.tcservice.model.result.problems.ProblemOccurrence.TC_EXECUTION_TIMEOUT;
+import static org.apache.ignite.tcservice.model.result.problems.ProblemOccurrence.TC_EXIT_CODE;
+import static org.apache.ignite.tcservice.model.result.problems.ProblemOccurrence.TC_JVM_CRASH;
+import static org.apache.ignite.tcservice.model.result.problems.ProblemOccurrence.TC_OOME;
/**
* Summary of build statistics.
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/trends/BuildsHistory.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/trends/BuildsHistory.java
index a8793a7..048975d 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/trends/BuildsHistory.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/trends/BuildsHistory.java
@@ -28,8 +28,7 @@ import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
-import javax.inject.Provider;
-import org.apache.ignite.ci.ITeamcity;
+import org.apache.ignite.tcservice.ITeamcity;
import org.apache.ignite.ci.tcbot.conf.ITcBotConfig;
import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
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 bb4ae26..58ea700 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,7 +31,7 @@ import javax.ws.rs.core.Context;
import com.google.inject.Injector;
import org.apache.ignite.ci.tcbot.chain.BuildChainProcessor;
import org.apache.ignite.ci.IAnalyticsEnabledTeamcity;
-import org.apache.ignite.ci.ITeamcity;
+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;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/build/CompareBuilds.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/build/CompareBuilds.java
index ca86338..d5a3600 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/build/CompareBuilds.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/build/CompareBuilds.java
@@ -34,7 +34,7 @@ import org.apache.ignite.ci.teamcity.ignited.ITeamcityIgnitedProvider;
import org.apache.ignite.ci.util.Diff;
import org.apache.ignite.ci.user.ICredentialsProv;
import org.apache.ignite.ci.web.CtxListener;
-import org.apache.ignite.ci.web.rest.exception.ServiceUnauthorizedException;
+import org.apache.ignite.tcbot.common.exeption.ServiceUnauthorizedException;
/**
* Compare builds (by ID) tests' sets.
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 055d4df..7d3f55d 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
@@ -28,7 +28,7 @@ import org.apache.ignite.ci.teamcity.ignited.SyncMode;
import org.apache.ignite.ci.teamcity.ignited.buildcondition.BuildCondition;
import org.apache.ignite.ci.tcbot.chain.BuildChainProcessor;
import org.apache.ignite.ci.IAnalyticsEnabledTeamcity;
-import org.apache.ignite.ci.ITeamcity;
+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;
@@ -42,7 +42,7 @@ import org.apache.ignite.ci.web.CtxListener;
import org.apache.ignite.ci.web.model.current.ChainAtServerCurrentStatus;
import org.apache.ignite.ci.web.model.current.TestFailuresSummary;
import org.apache.ignite.ci.web.model.current.UpdateInfo;
-import org.apache.ignite.ci.web.rest.exception.ServiceUnauthorizedException;
+import org.apache.ignite.tcbot.common.exeption.ServiceUnauthorizedException;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/exception/ExeptionsTraceLogger.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/exception/ExeptionsTraceLogger.java
index 20958fa..bf37b80 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/exception/ExeptionsTraceLogger.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/exception/ExeptionsTraceLogger.java
@@ -19,7 +19,7 @@ package org.apache.ignite.ci.web.rest.exception;
import javax.ws.rs.ext.ExceptionMapper;
import javax.ws.rs.ext.Provider;
import javax.ws.rs.core.Response;
-import org.apache.ignite.ci.tcbot.TcBotSystemProperties;
+import org.apache.ignite.tcbot.common.conf.TcBotSystemProperties;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/exception/ServiceUnauthorizedException.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/exception/ServiceUnauthorizedExceptionMapper.java
similarity index 73%
copy from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/exception/ServiceUnauthorizedException.java
copy to ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/exception/ServiceUnauthorizedExceptionMapper.java
index 2978e6a..6b78aef 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/exception/ServiceUnauthorizedException.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/exception/ServiceUnauthorizedExceptionMapper.java
@@ -17,26 +17,21 @@
package org.apache.ignite.ci.web.rest.exception;
+import org.apache.ignite.tcbot.common.exeption.ServiceUnauthorizedException;
+
import javax.ws.rs.core.Response;
import javax.ws.rs.ext.ExceptionMapper;
import javax.ws.rs.ext.Provider;
/**
- * Exception is thrown if 3rd party service returned 401 - unauthorized.
+ * Exception mapper for case is thrown if 3rd party service returned 401 - unauthorized.
*/
@Provider
-public class ServiceUnauthorizedException extends RuntimeException
+public class ServiceUnauthorizedExceptionMapper
implements ExceptionMapper<ServiceUnauthorizedException> {
- public ServiceUnauthorizedException(String message) {
- super(message);
- }
@SuppressWarnings("unused")
- public ServiceUnauthorizedException() {
- }
-
- public static ServiceUnauthorizedException noCreds(String srvId) {
- return new ServiceUnauthorizedException("Service [" + srvId + "] is not available for current user");
+ public ServiceUnauthorizedExceptionMapper() {
}
@Override
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/login/Login.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/login/Login.java
index f508aeb..6084edd 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/login/Login.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/login/Login.java
@@ -21,11 +21,11 @@ import com.google.common.base.Preconditions;
import com.google.inject.Injector;
import org.apache.ignite.ci.tcbot.conf.ITcBotConfig;
import org.apache.ignite.ci.tcbot.user.IUserStorage;
-import org.apache.ignite.ci.tcmodel.user.User;
+import org.apache.ignite.tcservice.model.user.User;
import org.apache.ignite.ci.teamcity.ignited.ITeamcityIgnitedProvider;
-import org.apache.ignite.ci.teamcity.pure.ITcLogin;
+import org.apache.ignite.tcservice.login.ITcLogin;
import org.apache.ignite.ci.user.TcHelperUser;
-import org.apache.ignite.ci.util.Base64Util;
+import org.apache.ignite.tcbot.common.util.Base64Util;
import org.apache.ignite.ci.util.CryptUtil;
import org.apache.ignite.ci.web.CtxListener;
import org.apache.ignite.ci.user.LoginResponse;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/login/UserService.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/login/UserService.java
index 22ee2f5..90ccc4b 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/login/UserService.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/login/UserService.java
@@ -36,8 +36,8 @@ import org.apache.ignite.ci.tcbot.conf.ITcBotConfig;
import org.apache.ignite.ci.tcbot.issue.IssueDetector;
import org.apache.ignite.ci.tcbot.user.IUserStorage;
import org.apache.ignite.ci.tcbot.visa.TcBotTriggerAndSignOffService;
-import org.apache.ignite.ci.tcmodel.user.User;
-import org.apache.ignite.ci.teamcity.pure.ITcLogin;
+import org.apache.ignite.tcservice.model.user.User;
+import org.apache.ignite.tcservice.login.ITcLogin;
import org.apache.ignite.ci.user.ICredentialsProv;
import org.apache.ignite.ci.user.TcHelperUser;
import org.apache.ignite.ci.web.CtxListener;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/long_running/BuildsLongRunningTestsReport.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/long_running/BuildsLongRunningTestsReport.java
index 42d29f9..3b82bd2 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/long_running/BuildsLongRunningTestsReport.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/long_running/BuildsLongRunningTestsReport.java
@@ -51,6 +51,6 @@ public class BuildsLongRunningTestsReport {
final TrackedBranchChainsProcessor tbProc = CtxListener.getInjector(ctx).getInstance(TrackedBranchChainsProcessor.class);
- return tbProc.getTrackedBranchLongRunningTestsSummary(null, creds);
+ return tbProc.getTrackedBranchLongRunningTestsSummary(branchOrNull, creds);
}
}
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/monitoring/HotSpot.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/monitoring/HotSpot.java
index 3165eb6..de9d16c 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/monitoring/HotSpot.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/monitoring/HotSpot.java
@@ -16,7 +16,7 @@
*/
package org.apache.ignite.ci.web.rest.monitoring;
-import org.apache.ignite.ci.util.TimeUtil;
+import org.apache.ignite.tcbot.common.util.TimeUtil;
@SuppressWarnings("WeakerAccess")
public class HotSpot {
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/tracked/GetTrackedBranchTestResults.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/tracked/GetTrackedBranchTestResults.java
index a344b5a..8d0fe4e 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/tracked/GetTrackedBranchTestResults.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/tracked/GetTrackedBranchTestResults.java
@@ -30,7 +30,7 @@ import javax.ws.rs.core.MediaType;
import org.apache.ignite.ci.tcbot.chain.TrackedBranchChainsProcessor;
import org.apache.ignite.ci.tcbot.conf.ITcBotConfig;
import org.apache.ignite.ci.tcbot.visa.TcBotTriggerAndSignOffService;
-import org.apache.ignite.ci.tcmodel.mute.MuteInfo;
+import org.apache.ignite.tcservice.model.mute.MuteInfo;
import org.apache.ignite.ci.teamcity.ignited.ITeamcityIgnitedProvider;
import org.apache.ignite.ci.teamcity.ignited.SyncMode;
import org.apache.ignite.ci.user.ICredentialsProv;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/visa/TcBotVisaService.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/visa/TcBotVisaService.java
index be40c29..9ded876 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/visa/TcBotVisaService.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/visa/TcBotVisaService.java
@@ -39,7 +39,6 @@ import org.apache.ignite.ci.teamcity.ignited.ITeamcityIgnitedProvider;
import org.apache.ignite.ci.user.ICredentialsProv;
import org.apache.ignite.ci.web.CtxListener;
import org.apache.ignite.ci.web.model.ContributionKey;
-import org.apache.ignite.ci.web.rest.exception.ServiceUnauthorizedException;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
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 6a099d8..75cb7e3 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
@@ -26,15 +26,15 @@ import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import org.apache.ignite.ci.IAnalyticsEnabledTeamcity;
-import org.apache.ignite.ci.ITeamcity;
+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.ci.tcmodel.hist.BuildRef;
-import org.apache.ignite.ci.tcmodel.result.tests.TestOccurrence;
-import org.apache.ignite.ci.tcmodel.result.tests.TestOccurrenceFull;
+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;
import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
import org.apache.ignite.ci.teamcity.ignited.ITeamcityIgnited;
import org.apache.ignite.ci.teamcity.ignited.InMemoryStringCompactor;
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 36e4f00..a9147d7 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
@@ -36,7 +36,7 @@ import org.apache.ignite.ci.tcbot.conf.BranchesTracked;
import org.apache.ignite.ci.tcbot.conf.IGitHubConfig;
import org.apache.ignite.ci.tcbot.conf.IJiraServerConfig;
import org.apache.ignite.ci.tcbot.conf.ITcBotConfig;
-import org.apache.ignite.ci.tcbot.conf.ITcServerConfig;
+import org.apache.ignite.tcbot.common.conf.ITcServerConfig;
import org.apache.ignite.ci.tcbot.conf.NotificationsConfig;
import org.apache.ignite.ci.tcbot.conf.TcServerConfig;
import org.apache.ignite.ci.tcbot.issue.IIssuesStorage;
@@ -47,6 +47,8 @@ import org.apache.ignite.ci.teamcity.ignited.InMemoryStringCompactor;
import org.apache.ignite.ci.teamcity.ignited.TeamcityIgnitedProviderMock;
import org.apache.ignite.ci.teamcity.restcached.ITcServerProvider;
import org.apache.ignite.ci.user.ICredentialsProv;
+import org.apache.ignite.tcbot.common.conf.ITcServerConfigSupplier;
+import org.apache.ignite.tcbot.common.conf.TcBotWorkDir;
import org.mockito.Mockito;
import static org.mockito.ArgumentMatchers.any;
@@ -92,40 +94,48 @@ public class MockBasedTcBotModule extends AbstractModule {
bind(ITcServerProvider.class).toInstance(tcSrvOldProv);
- bind(ITcBotConfig.class).toInstance(new ITcBotConfig() {
- @Override public String primaryServerCode() {
+ final ITcBotConfig cfg = new ITcBotConfig() {
+ @Override
+ public String primaryServerCode() {
return ITcBotConfig.DEFAULT_SERVER_CODE;
}
- @Override public BranchesTracked getTrackedBranches() {
+ @Override
+ public BranchesTracked getTrackedBranches() {
return tracked;
}
/** {@inheritDoc} */
- @Override public ITcServerConfig getTeamcityConfig(String srvCode) {
+ @Override
+ public ITcServerConfig getTeamcityConfig(String srvCode) {
return new TcServerConfig().code(srvCode).properties(loadOldProps(srvCode));
}
- @Override public IJiraServerConfig getJiraConfig(String srvCode) {
+ @Override
+ public IJiraServerConfig getJiraConfig(String srvCode) {
return jiraCfg;
}
- @Override public IGitHubConfig getGitConfig(String srvCode) {
+ @Override
+ public IGitHubConfig getGitConfig(String srvCode) {
return ghCfg;
}
- @Override public NotificationsConfig notifications() {
+ @Override
+ public NotificationsConfig notifications() {
return new NotificationsConfig();
}
private Properties loadOldProps(String srvCode) {
- File workDir = HelperConfig.resolveWorkDir();
+ File workDir = TcBotWorkDir.resolveWorkDir();
String cfgName = HelperConfig.prepareConfigName(srvCode);
return HelperConfig.loadAuthProperties(workDir, cfgName);
}
- });
+ };
+ bind(ITcBotConfig.class).toInstance(cfg);
+ bind(ITcServerConfigSupplier.class).toInstance(cfg);
bind(IIssuesStorage.class).toInstance(Mockito.mock(IIssuesStorage.class));
bind(IUserStorage.class).toInstance(Mockito.mock(IUserStorage.class));
diff --git a/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/tcbot/chain/PrChainsProcessorTest.java b/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/tcbot/chain/PrChainsProcessorTest.java
index 898f34d..ec92e2b 100644
--- a/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/tcbot/chain/PrChainsProcessorTest.java
+++ b/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/tcbot/chain/PrChainsProcessorTest.java
@@ -27,14 +27,14 @@ import java.util.Optional;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit;
import java.util.function.Predicate;
-import org.apache.ignite.ci.ITeamcity;
-import org.apache.ignite.ci.tcmodel.conf.BuildType;
-import org.apache.ignite.ci.tcmodel.hist.BuildRef;
-import org.apache.ignite.ci.tcmodel.result.Build;
-import org.apache.ignite.ci.tcmodel.result.problems.ProblemOccurrence;
-import org.apache.ignite.ci.tcmodel.result.tests.TestOccurrence;
-import org.apache.ignite.ci.tcmodel.result.tests.TestOccurrenceFull;
-import org.apache.ignite.ci.tcmodel.result.tests.TestRef;
+import org.apache.ignite.tcservice.ITeamcity;
+import org.apache.ignite.tcservice.model.conf.BuildType;
+import org.apache.ignite.tcservice.model.hist.BuildRef;
+import org.apache.ignite.tcservice.model.result.Build;
+import org.apache.ignite.tcservice.model.result.problems.ProblemOccurrence;
+import org.apache.ignite.tcservice.model.result.tests.TestOccurrence;
+import org.apache.ignite.tcservice.model.result.tests.TestOccurrenceFull;
+import org.apache.ignite.tcservice.model.result.tests.TestRef;
import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
import org.apache.ignite.ci.teamcity.ignited.ITeamcityIgnitedProvider;
import org.apache.ignite.ci.teamcity.ignited.TeamcityIgnitedProviderMock;
diff --git a/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/tcbot/chain/TrackedBranchProcessorTest.java b/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/tcbot/chain/TrackedBranchProcessorTest.java
index 80b6fe9..dbdb431 100644
--- a/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/tcbot/chain/TrackedBranchProcessorTest.java
+++ b/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/tcbot/chain/TrackedBranchProcessorTest.java
@@ -25,7 +25,7 @@ import com.google.inject.Injector;
import java.util.Map;
import java.util.Optional;
import java.util.concurrent.ConcurrentHashMap;
-import org.apache.ignite.ci.ITeamcity;
+import org.apache.ignite.tcservice.ITeamcity;
import org.apache.ignite.ci.tcbot.conf.BranchTracked;
import org.apache.ignite.ci.tcbot.conf.ChainAtServerTracked;
import org.apache.ignite.ci.tcbot.conf.BranchesTracked;
diff --git a/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/tcbot/issue/IssueDetectorTest.java b/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/tcbot/issue/IssueDetectorTest.java
index f689542..64016e8 100644
--- a/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/tcbot/issue/IssueDetectorTest.java
+++ b/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/tcbot/issue/IssueDetectorTest.java
@@ -27,12 +27,12 @@ import java.util.Map;
import java.util.OptionalInt;
import java.util.TreeMap;
import java.util.concurrent.ConcurrentHashMap;
-import org.apache.ignite.ci.ITeamcity;
+import org.apache.ignite.tcservice.ITeamcity;
import org.apache.ignite.ci.tcbot.conf.BranchTracked;
import org.apache.ignite.ci.tcbot.conf.ChainAtServerTracked;
import org.apache.ignite.ci.tcbot.chain.MockBasedTcBotModule;
import org.apache.ignite.ci.tcbot.conf.BranchesTracked;
-import org.apache.ignite.ci.tcmodel.result.tests.TestOccurrenceFull;
+import org.apache.ignite.tcservice.model.result.tests.TestOccurrenceFull;
import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
import org.apache.ignite.ci.teamcity.ignited.ITeamcityIgnitedProvider;
import org.apache.ignite.ci.teamcity.ignited.TeamcityIgnitedImpl;
diff --git a/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/teamcity/ignited/IgnitedTcInMemoryIntegrationTest.java b/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/teamcity/ignited/IgnitedTcInMemoryIntegrationTest.java
index a68f667..8656f22 100644
--- a/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/teamcity/ignited/IgnitedTcInMemoryIntegrationTest.java
+++ b/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/teamcity/ignited/IgnitedTcInMemoryIntegrationTest.java
@@ -40,7 +40,7 @@ import javax.xml.bind.JAXBException;
import org.apache.ignite.Ignite;
import org.apache.ignite.IgniteCache;
import org.apache.ignite.Ignition;
-import org.apache.ignite.ci.ITeamcity;
+import org.apache.ignite.tcservice.ITeamcity;
import org.apache.ignite.ci.analysis.SuiteInBranch;
import org.apache.ignite.ci.analysis.TestInBranch;
import org.apache.ignite.ci.db.TcHelperDb;
@@ -50,22 +50,22 @@ import org.apache.ignite.ci.jira.pure.IJiraIntegrationProvider;
import org.apache.ignite.ci.tcbot.chain.PrChainsProcessorTest;
import org.apache.ignite.ci.tcbot.conf.BranchesTracked;
import org.apache.ignite.ci.tcbot.conf.ITcBotConfig;
-import org.apache.ignite.ci.tcbot.conf.ITcServerConfig;
-import org.apache.ignite.ci.tcmodel.changes.ChangesList;
-import org.apache.ignite.ci.tcmodel.conf.BuildType;
-import org.apache.ignite.ci.tcmodel.conf.Project;
-import org.apache.ignite.ci.tcmodel.conf.bt.BuildTypeFull;
-import org.apache.ignite.ci.tcmodel.hist.BuildRef;
-import org.apache.ignite.ci.tcmodel.mute.MuteInfo;
-import org.apache.ignite.ci.tcmodel.mute.Mutes;
-import org.apache.ignite.ci.tcmodel.result.Build;
-import org.apache.ignite.ci.tcmodel.result.Triggered;
-import org.apache.ignite.ci.tcmodel.result.problems.ProblemOccurrence;
-import org.apache.ignite.ci.tcmodel.result.problems.ProblemOccurrences;
-import org.apache.ignite.ci.tcmodel.result.stat.Statistics;
-import org.apache.ignite.ci.tcmodel.result.tests.TestOccurrencesFull;
-import org.apache.ignite.ci.tcmodel.vcs.Revision;
-import org.apache.ignite.ci.tcmodel.vcs.Revisions;
+import org.apache.ignite.tcbot.common.conf.ITcServerConfig;
+import org.apache.ignite.tcservice.model.changes.ChangesList;
+import org.apache.ignite.tcservice.model.conf.BuildType;
+import org.apache.ignite.tcservice.model.conf.Project;
+import org.apache.ignite.tcservice.model.conf.bt.BuildTypeFull;
+import org.apache.ignite.tcservice.model.hist.BuildRef;
+import org.apache.ignite.tcservice.model.mute.MuteInfo;
+import org.apache.ignite.tcservice.model.mute.Mutes;
+import org.apache.ignite.tcservice.model.result.Build;
+import org.apache.ignite.tcservice.model.result.Triggered;
+import org.apache.ignite.tcservice.model.result.problems.ProblemOccurrence;
+import org.apache.ignite.tcservice.model.result.problems.ProblemOccurrences;
+import org.apache.ignite.tcservice.model.result.stat.Statistics;
+import org.apache.ignite.tcservice.model.result.tests.TestOccurrencesFull;
+import org.apache.ignite.tcservice.model.vcs.Revision;
+import org.apache.ignite.tcservice.model.vcs.Revisions;
import org.apache.ignite.ci.teamcity.ignited.buildref.BuildRefDao;
import org.apache.ignite.ci.teamcity.ignited.buildtype.BuildTypeRefCompacted;
import org.apache.ignite.ci.teamcity.ignited.fatbuild.FatBuildCompacted;
@@ -74,13 +74,14 @@ import org.apache.ignite.ci.teamcity.ignited.fatbuild.ProactiveFatBuildSync;
import org.apache.ignite.ci.teamcity.ignited.runhist.RunHistCompactedDao;
import org.apache.ignite.ci.teamcity.ignited.runhist.RunHistSync;
import org.apache.ignite.ci.teamcity.pure.BuildHistoryEmulator;
-import org.apache.ignite.ci.teamcity.pure.ITeamcityConn;
-import org.apache.ignite.ci.teamcity.pure.ITeamcityHttpConnection;
+import org.apache.ignite.tcservice.ITeamcityConn;
+import org.apache.ignite.tcservice.http.ITeamcityHttpConnection;
import org.apache.ignite.ci.teamcity.restcached.ITcServerFactory;
import org.apache.ignite.ci.user.ICredentialsProv;
-import org.apache.ignite.ci.util.XmlUtil;
+import org.apache.ignite.tcservice.util.XmlUtil;
import org.apache.ignite.configuration.IgniteConfiguration;
import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
+import org.apache.ignite.tcbot.common.conf.ITcServerConfigSupplier;
import org.jetbrains.annotations.NotNull;
import org.junit.AfterClass;
import org.junit.Before;
@@ -94,7 +95,7 @@ import static junit.framework.TestCase.assertFalse;
import static junit.framework.TestCase.assertNotNull;
import static junit.framework.TestCase.assertNull;
import static junit.framework.TestCase.assertTrue;
-import static org.apache.ignite.ci.HelperConfig.ensureDirExist;
+import static org.apache.ignite.tcbot.common.conf.TcBotWorkDir.ensureDirExist;
import static org.apache.ignite.ci.teamcity.ignited.IgniteStringCompactor.STRINGS_CACHE;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.mock;
@@ -753,6 +754,7 @@ public class IgnitedTcInMemoryIntegrationTest {
when(cfg.getTrackedBranches()).thenReturn(new BranchesTracked());
bind(ITcBotConfig.class).toInstance(cfg);
+ bind(ITcServerConfigSupplier.class).toInstance(cfg);
}
}
}
diff --git a/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/teamcity/ignited/TeamcityIgnitedMock.java b/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/teamcity/ignited/TeamcityIgnitedMock.java
index 8eeea93..aceb8df 100644
--- a/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/teamcity/ignited/TeamcityIgnitedMock.java
+++ b/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/teamcity/ignited/TeamcityIgnitedMock.java
@@ -23,7 +23,7 @@ import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
import org.apache.ignite.ci.analysis.TestInBranch;
-import org.apache.ignite.ci.tcbot.conf.ITcServerConfig;
+import org.apache.ignite.tcbot.common.conf.ITcServerConfig;
import org.apache.ignite.ci.teamcity.ignited.fatbuild.FatBuildCompacted;
import org.apache.ignite.ci.teamcity.ignited.runhist.Invocation;
import org.apache.ignite.ci.teamcity.ignited.runhist.RunHistCompacted;
@@ -123,6 +123,7 @@ public class TeamcityIgnitedMock {
ITcServerConfig mock = mock(ITcServerConfig.class);
when(tcIgnited.config()).thenReturn(mock);
+
return tcIgnited;
}
diff --git a/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/teamcity/pure/BuildHistoryEmulator.java b/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/teamcity/pure/BuildHistoryEmulator.java
index 7cecc57..db61d33 100644
--- a/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/teamcity/pure/BuildHistoryEmulator.java
+++ b/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/teamcity/pure/BuildHistoryEmulator.java
@@ -23,9 +23,9 @@ import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.xml.bind.JAXBException;
-import org.apache.ignite.ci.tcmodel.hist.BuildRef;
-import org.apache.ignite.ci.tcmodel.hist.Builds;
-import org.apache.ignite.ci.util.XmlUtil;
+import org.apache.ignite.tcservice.model.hist.BuildRef;
+import org.apache.ignite.tcservice.model.hist.Builds;
+import org.apache.ignite.tcservice.util.XmlUtil;
import org.jetbrains.annotations.Nullable;
import static java.nio.charset.StandardCharsets.UTF_8;
diff --git a/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/user/LoginAuthTest.java b/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/user/LoginAuthTest.java
index be85137..574a1d3 100644
--- a/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/user/LoginAuthTest.java
+++ b/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/user/LoginAuthTest.java
@@ -23,9 +23,9 @@ import java.util.Map;
import java.util.concurrent.atomic.AtomicReference;
import javax.ws.rs.container.ContainerRequestContext;
import org.apache.ignite.ci.tcbot.user.UserAndSessionsStorage;
-import org.apache.ignite.ci.tcmodel.user.User;
-import org.apache.ignite.ci.teamcity.pure.ITcLogin;
-import org.apache.ignite.ci.util.Base64Util;
+import org.apache.ignite.tcservice.model.user.User;
+import org.apache.ignite.tcservice.login.ITcLogin;
+import org.apache.ignite.tcbot.common.util.Base64Util;
import org.apache.ignite.ci.web.auth.AuthenticationFilter;
import org.apache.ignite.ci.web.rest.login.Login;
import org.jetbrains.annotations.NotNull;
diff --git a/settings.gradle b/settings.gradle
index 742a6f5..11730ae 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1,4 +1,7 @@
include 'ignite-tc-helper-web'
include 'jetty-launcher'
-include 'tc-bot-server'
+include 'tcbot-server'
+include 'tcbot-common'
+include 'tcbot-teamcity'
+include 'tcbot-teamcity-ignited'
diff --git a/tcbot-common/build.gradle b/tcbot-common/build.gradle
new file mode 100644
index 0000000..c45f8e8
--- /dev/null
+++ b/tcbot-common/build.gradle
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+apply plugin: 'java'
+apply plugin: 'war'
+
+repositories {
+ mavenCentral()
+ mavenLocal()
+}
+
+dependencies {
+ compile group: 'com.google.guava', name: 'guava', version: guavaVer
+
+ compile group: 'org.slf4j', name: 'slf4j-api', version: slf4jVer
+ //Apache License Version 2.0
+ compile group: 'com.google.code.gson', name: 'gson', version: gsonVer
+
+ testCompile group: 'junit', name: 'junit', version: '4.12'
+ testCompile group: 'org.mockito', name: 'mockito-core', version: '2.22.0'
+
+ compile group: 'javax.inject', name: 'javax.inject', version: '1'
+ compile group: 'com.google.inject', name: 'guice', version: '4.2.0'
+
+ compile group: 'org.xerial.snappy', name: 'snappy-java', version: '1.1.7.2'
+
+ /// JAXB replacement for Java 11
+ compile group: 'javax.xml.bind', name: 'jaxb-api', version: '2.3.1'
+ compile group: 'com.sun.xml.bind', name: 'jaxb-impl', version: '2.3.0'
+ compile group: 'com.sun.xml.bind', name: 'jaxb-core', version: '2.3.0'
+}
diff --git a/tc-bot-server/header.txt b/tcbot-common/header.txt
similarity index 100%
copy from tc-bot-server/header.txt
copy to tcbot-common/header.txt
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/changes/ChangesListRef.java b/tcbot-common/src/main/java/org/apache/ignite/tcbot/common/conf/IBuildParameterSpec.java
similarity index 78%
copy from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/changes/ChangesListRef.java
copy to tcbot-common/src/main/java/org/apache/ignite/tcbot/common/conf/IBuildParameterSpec.java
index 592f9f8..4e7f34d 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/changes/ChangesListRef.java
+++ b/tcbot-common/src/main/java/org/apache/ignite/tcbot/common/conf/IBuildParameterSpec.java
@@ -14,13 +14,14 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+package org.apache.ignite.tcbot.common.conf;
-package org.apache.ignite.ci.tcmodel.changes;
+import java.util.Collection;
-import org.apache.ignite.ci.tcmodel.result.AbstractRef;
+public interface IBuildParameterSpec {
+ String name();
-/**
- * Reference to list of changes.
- */
-public class ChangesListRef extends AbstractRef {
+ boolean isFilled();
+
+ Collection<? extends IParameterValueSpec> selection();
}
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/RelatedIssuesRef.java b/tcbot-common/src/main/java/org/apache/ignite/tcbot/common/conf/IParameterValueSpec.java
similarity index 84%
copy from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/RelatedIssuesRef.java
copy to tcbot-common/src/main/java/org/apache/ignite/tcbot/common/conf/IParameterValueSpec.java
index 81e1157..187c7e5 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/RelatedIssuesRef.java
+++ b/tcbot-common/src/main/java/org/apache/ignite/tcbot/common/conf/IParameterValueSpec.java
@@ -14,12 +14,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+package org.apache.ignite.tcbot.common.conf;
-package org.apache.ignite.ci.tcmodel.result;
+public interface IParameterValueSpec {
+ String valueRegExp();
-/**
- * Related issues reference.
- */
-public class RelatedIssuesRef extends AbstractRef {
-}
+ String value();
+ String label();
+}
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/ITcServerConfig.java b/tcbot-common/src/main/java/org/apache/ignite/tcbot/common/conf/ITcServerConfig.java
similarity index 76%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/ITcServerConfig.java
rename to tcbot-common/src/main/java/org/apache/ignite/tcbot/common/conf/ITcServerConfig.java
index e55d18a..a7b421b 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/ITcServerConfig.java
+++ b/tcbot-common/src/main/java/org/apache/ignite/tcbot/common/conf/ITcServerConfig.java
@@ -14,11 +14,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.ignite.ci.tcbot.conf;
+package org.apache.ignite.tcbot.common.conf;
-import java.util.Collection;
-import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
+import org.checkerframework.checker.nullness.qual.NonNull;
+
+import javax.annotation.Nullable;
+import java.util.Collection;
/**
* Teamcity Server configuration.
@@ -27,32 +28,33 @@ public interface ITcServerConfig {
/**
* @return Another TC Server (service) config name to use settings from. Filled only for server aliases.
*/
- @Nullable public String reference();
+ @Nullable
+ public String reference();
/**
* @return Normalized Host address, ends with '/'.
*/
- @NotNull public String host();
+ @NonNull public String host();
/**
* @return Directory for downloading build logs (will contain ZIP files).
*/
- @NotNull public String logsDirectory();
+ @NonNull public String logsDirectory();
/**
* @return internal naming of default tracked branch for this server.
*/
- @NotNull public String defaultTrackedBranch();
+ @NonNull public String defaultTrackedBranch();
/**
* Provides build parameters, whichi could be used for filtering builds in RunHist/Invocations and tagging in UI.
*
* @return set of build parameters specifications.
*/
- @NotNull public Collection<BuildParameterSpec> filteringParameters();
+ @NonNull public Collection<? extends IBuildParameterSpec> filteringParameters();
/**
* @return set of suite codes (build type IDs), failures in which should be threated as critical and notified.
*/
- @NotNull public Collection<String> trustedSuites();
+ @NonNull public Collection<String> trustedSuites();
}
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/RelatedIssuesRef.java b/tcbot-common/src/main/java/org/apache/ignite/tcbot/common/conf/ITcServerConfigSupplier.java
similarity index 83%
copy from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/RelatedIssuesRef.java
copy to tcbot-common/src/main/java/org/apache/ignite/tcbot/common/conf/ITcServerConfigSupplier.java
index 81e1157..4a20a7e 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/RelatedIssuesRef.java
+++ b/tcbot-common/src/main/java/org/apache/ignite/tcbot/common/conf/ITcServerConfigSupplier.java
@@ -15,11 +15,9 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.result;
+package org.apache.ignite.tcbot.common.conf;
-/**
- * Related issues reference.
- */
-public class RelatedIssuesRef extends AbstractRef {
+@Deprecated
+public interface ITcServerConfigSupplier {
+ public ITcServerConfig getTeamcityConfig(String srvCode);
}
-
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/TcBotSystemProperties.java b/tcbot-common/src/main/java/org/apache/ignite/tcbot/common/conf/TcBotSystemProperties.java
similarity index 97%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/TcBotSystemProperties.java
rename to tcbot-common/src/main/java/org/apache/ignite/tcbot/common/conf/TcBotSystemProperties.java
index 49a55b4..3ad5a90 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/TcBotSystemProperties.java
+++ b/tcbot-common/src/main/java/org/apache/ignite/tcbot/common/conf/TcBotSystemProperties.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcbot;
+package org.apache.ignite.tcbot.common.conf;
/**
* Apache Ignite Teamcity Bot properties.
diff --git a/tcbot-common/src/main/java/org/apache/ignite/tcbot/common/conf/TcBotWorkDir.java b/tcbot-common/src/main/java/org/apache/ignite/tcbot/common/conf/TcBotWorkDir.java
new file mode 100644
index 0000000..1434bd5
--- /dev/null
+++ b/tcbot-common/src/main/java/org/apache/ignite/tcbot/common/conf/TcBotWorkDir.java
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.ignite.tcbot.common.conf;
+
+import java.io.File;
+
+import static com.google.common.base.Preconditions.checkState;
+import static com.google.common.base.Strings.isNullOrEmpty;
+
+public class TcBotWorkDir {
+ public static File ensureDirExist(File workDir) {
+ if (!workDir.exists())
+ checkState(workDir.mkdirs(), "Unable to make directory [" + workDir + "]");
+
+ return workDir;
+ }
+
+ public static File resolveWorkDir() {
+ File workDir = null;
+ String property = System.getProperty(TcBotSystemProperties.TEAMCITY_HELPER_HOME);
+ if (isNullOrEmpty(property)) {
+ String conf = ".ignite-teamcity-helper";
+ String prop = System.getProperty("user.home");
+ //relative in work dir
+ workDir = isNullOrEmpty(prop) ? new File(conf) : new File(prop, conf);
+ }
+ else
+ workDir = new File(property);
+
+ return ensureDirExist(workDir);
+ }
+}
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/util/ExceptionUtil.java b/tcbot-common/src/main/java/org/apache/ignite/tcbot/common/exeption/ExceptionUtil.java
similarity index 90%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/util/ExceptionUtil.java
rename to tcbot-common/src/main/java/org/apache/ignite/tcbot/common/exeption/ExceptionUtil.java
index ef9e83a..fb2ec30 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/util/ExceptionUtil.java
+++ b/tcbot-common/src/main/java/org/apache/ignite/tcbot/common/exeption/ExceptionUtil.java
@@ -15,11 +15,10 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.util;
+package org.apache.ignite.tcbot.common.exeption;
import com.google.common.base.Throwables;
-import javax.ws.rs.ext.ExceptionMapper;
import java.util.Optional;
/**
@@ -43,8 +42,8 @@ public class ExceptionUtil {
public static void throwIfRest(Exception e) {
final Optional<Throwable> any = Throwables.getCausalChain(e)
.stream()
- .filter(th ->
- (th instanceof ExceptionMapper)).findAny();
+ .filter(th ->false).findAny();
+ //todo (th instanceof ExceptionMapper)).findAny();
final RuntimeException eRest = (RuntimeException) any.orElse(null);
if (eRest != null)
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/exception/ConflictException.java b/tcbot-common/src/main/java/org/apache/ignite/tcbot/common/exeption/ServiceBadRequestException.java
similarity index 80%
copy from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/exception/ConflictException.java
copy to tcbot-common/src/main/java/org/apache/ignite/tcbot/common/exeption/ServiceBadRequestException.java
index f46b3f7..b6bdc46 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/exception/ConflictException.java
+++ b/tcbot-common/src/main/java/org/apache/ignite/tcbot/common/exeption/ServiceBadRequestException.java
@@ -15,18 +15,18 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.web.rest.exception;
+package org.apache.ignite.tcbot.common.exeption;
/**
* The request could not be completed due to a conflict with the current state of the target resource.
*
- * This exception is thrown in case HTTP 409-Conflict is returned.
+ * This exception is thrown in case HTTP 400-Bad request is returned.
*/
-public class ConflictException extends RuntimeException {
+public class ServiceBadRequestException extends RuntimeException {
/**
* @param msg Message.
*/
- public ConflictException(String msg) {
+ public ServiceBadRequestException(String msg) {
super(msg);
}
}
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/exception/ConflictException.java b/tcbot-common/src/main/java/org/apache/ignite/tcbot/common/exeption/ServiceConflictException.java
similarity index 86%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/exception/ConflictException.java
rename to tcbot-common/src/main/java/org/apache/ignite/tcbot/common/exeption/ServiceConflictException.java
index f46b3f7..28dde9b 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/exception/ConflictException.java
+++ b/tcbot-common/src/main/java/org/apache/ignite/tcbot/common/exeption/ServiceConflictException.java
@@ -15,18 +15,18 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.web.rest.exception;
+package org.apache.ignite.tcbot.common.exeption;
/**
* The request could not be completed due to a conflict with the current state of the target resource.
*
* This exception is thrown in case HTTP 409-Conflict is returned.
*/
-public class ConflictException extends RuntimeException {
+public class ServiceConflictException extends RuntimeException {
/**
* @param msg Message.
*/
- public ConflictException(String msg) {
+ public ServiceConflictException(String msg) {
super(msg);
}
}
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/exception/ServiceUnauthorizedException.java b/tcbot-common/src/main/java/org/apache/ignite/tcbot/common/exeption/ServiceUnauthorizedException.java
similarity index 74%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/exception/ServiceUnauthorizedException.java
rename to tcbot-common/src/main/java/org/apache/ignite/tcbot/common/exeption/ServiceUnauthorizedException.java
index 2978e6a..e096d22 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/exception/ServiceUnauthorizedException.java
+++ b/tcbot-common/src/main/java/org/apache/ignite/tcbot/common/exeption/ServiceUnauthorizedException.java
@@ -15,18 +15,13 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.web.rest.exception;
-
-import javax.ws.rs.core.Response;
-import javax.ws.rs.ext.ExceptionMapper;
-import javax.ws.rs.ext.Provider;
+package org.apache.ignite.tcbot.common.exeption;
+;
/**
* Exception is thrown if 3rd party service returned 401 - unauthorized.
*/
-@Provider
-public class ServiceUnauthorizedException extends RuntimeException
- implements ExceptionMapper<ServiceUnauthorizedException> {
+public class ServiceUnauthorizedException extends RuntimeException {
public ServiceUnauthorizedException(String message) {
super(message);
}
@@ -39,9 +34,4 @@ public class ServiceUnauthorizedException extends RuntimeException
return new ServiceUnauthorizedException("Service [" + srvId + "] is not available for current user");
}
- @Override
- public Response toResponse(ServiceUnauthorizedException exception) {
- return Response.status(424).entity(exception.getMessage())
- .type("text/plain").build();
- }
}
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/di/AutoProfiling.java b/tcbot-common/src/main/java/org/apache/ignite/tcbot/common/interceptor/AutoProfiling.java
similarity index 95%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/di/AutoProfiling.java
rename to tcbot-common/src/main/java/org/apache/ignite/tcbot/common/interceptor/AutoProfiling.java
index e524fb9..e6146ee 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/di/AutoProfiling.java
+++ b/tcbot-common/src/main/java/org/apache/ignite/tcbot/common/interceptor/AutoProfiling.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.ignite.ci.di;
+package org.apache.ignite.tcbot.common.interceptor;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/util/Base64Util.java b/tcbot-common/src/main/java/org/apache/ignite/tcbot/common/util/Base64Util.java
similarity index 93%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/util/Base64Util.java
rename to tcbot-common/src/main/java/org/apache/ignite/tcbot/common/util/Base64Util.java
index 506c8aa..4dbee30 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/util/Base64Util.java
+++ b/tcbot-common/src/main/java/org/apache/ignite/tcbot/common/util/Base64Util.java
@@ -15,10 +15,9 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.util;
-
-import org.jetbrains.annotations.NotNull;
+package org.apache.ignite.tcbot.common.util;
+import javax.annotation.Nonnull;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
@@ -33,13 +32,13 @@ public class Base64Util {
return encodeBytesToString(data.getBytes(CHARSET));
}
- @NotNull
+ @Nonnull
public static String encodeBytesToString(byte[] bytes) {
final byte[] encode = Base64.getEncoder().encode(bytes);
return new String(encode, CHARSET);
}
- @NotNull
+ @Nonnull
public static byte[] decodeString(String string) {
return Base64.getDecoder().decode(string.getBytes(CHARSET));
}
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/util/HttpUtil.java b/tcbot-common/src/main/java/org/apache/ignite/tcbot/common/util/HttpUtil.java
similarity index 94%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/util/HttpUtil.java
rename to tcbot-common/src/main/java/org/apache/ignite/tcbot/common/util/HttpUtil.java
index b39a4b4..ef5bc4c 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/util/HttpUtil.java
+++ b/tcbot-common/src/main/java/org/apache/ignite/tcbot/common/util/HttpUtil.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.util;
+package org.apache.ignite.tcbot.common.util;
import com.google.common.base.Stopwatch;
import java.io.BufferedReader;
@@ -33,13 +33,14 @@ import java.nio.file.Files;
import java.nio.file.StandardCopyOption;
import java.util.Map;
import java.util.concurrent.TimeUnit;
-import org.apache.ignite.ci.web.rest.exception.ConflictException;
-import org.apache.ignite.ci.web.rest.exception.ServiceUnauthorizedException;
-import org.jetbrains.annotations.Nullable;
+
+import org.apache.ignite.tcbot.common.exeption.ServiceUnauthorizedException;
+import org.apache.ignite.tcbot.common.exeption.ServiceBadRequestException;
+import org.apache.ignite.tcbot.common.exeption.ServiceConflictException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.ws.rs.BadRequestException;
+import javax.annotation.Nullable;
/**
* Methods for sending HTTP requests
@@ -75,7 +76,7 @@ public class HttpUtil {
* @return Input stream from connection.
* @throws IOException If failed.
* @throws FileNotFoundException If not found (404) was returned from service.
- * @throws ConflictException If conflict (409) was returned from service.
+ * @throws ServiceConflictException If conflict (409) was returned from service.
* @throws IllegalStateException if some unexpected HTTP error returned.
*/
public static InputStream sendGetWithBasicAuth(String basicAuthTok, String url) throws IOException {
@@ -177,7 +178,7 @@ public class HttpUtil {
* @return Input stream from connection.
* @throws IOException If communication failed.
* @throws FileNotFoundException If not found (404) was returned from service.
- * @throws ConflictException If conflict (409) was returned from service.
+ * @throws ServiceConflictException If conflict (409) was returned from service.
* @throws IllegalStateException if some unexpected HTTP error returned.
*/
private static InputStream getInputStream(HttpURLConnection con) throws IOException {
@@ -190,7 +191,7 @@ public class HttpUtil {
String detailsFromResponeText = readIsToString(con.getErrorStream());
if (resCode == 400)
- throw new BadRequestException(detailsFromResponeText);
+ throw new ServiceBadRequestException(detailsFromResponeText);
if (resCode == 401)
throw new ServiceUnauthorizedException("Service " + con.getURL() + " returned forbidden error.");
@@ -199,7 +200,7 @@ public class HttpUtil {
throw new FileNotFoundException("Service " + con.getURL() + " returned not found error. " + detailsFromResponeText);
if (resCode == 409)
- throw new ConflictException("Service " + con.getURL() + " returned Conflict Response Code :\n" + detailsFromResponeText);
+ throw new ServiceConflictException("Service " + con.getURL() + " returned Conflict Response Code :\n" + detailsFromResponeText);
throw new IllegalStateException("Service " + con.getURL() + " returned Invalid Response Code : " + resCode + ":\n"
+ detailsFromResponeText);
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/util/ObjectInterner.java b/tcbot-common/src/main/java/org/apache/ignite/tcbot/common/util/ObjectInterner.java
similarity index 97%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/util/ObjectInterner.java
rename to tcbot-common/src/main/java/org/apache/ignite/tcbot/common/util/ObjectInterner.java
index 9834d5c..4d997be 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/util/ObjectInterner.java
+++ b/tcbot-common/src/main/java/org/apache/ignite/tcbot/common/util/ObjectInterner.java
@@ -15,11 +15,13 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.util;
+package org.apache.ignite.tcbot.common.util;
import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache;
+import org.apache.ignite.tcbot.common.exeption.ExceptionUtil;
+
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.util.Collection;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/util/TimeUtil.java b/tcbot-common/src/main/java/org/apache/ignite/tcbot/common/util/TimeUtil.java
similarity index 97%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/util/TimeUtil.java
rename to tcbot-common/src/main/java/org/apache/ignite/tcbot/common/util/TimeUtil.java
index 36291ba..82ae16e 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/util/TimeUtil.java
+++ b/tcbot-common/src/main/java/org/apache/ignite/tcbot/common/util/TimeUtil.java
@@ -15,14 +15,14 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.util;
+package org.apache.ignite.tcbot.common.util;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.Duration;
import java.util.Date;
-import org.jetbrains.annotations.Nullable;
+import javax.annotation.Nullable;
/**
* Time and duration util.
diff --git a/tc-bot-server/build.gradle b/tcbot-server/build.gradle
similarity index 97%
rename from tc-bot-server/build.gradle
rename to tcbot-server/build.gradle
index 2d6e2e3..3ffcf74 100644
--- a/tc-bot-server/build.gradle
+++ b/tcbot-server/build.gradle
@@ -47,6 +47,10 @@ distributions {
}
dependencies {
+ compile (project(":tcbot-common")) {
+ transitive = false
+ }
+
compile (project(":ignite-tc-helper-web")) {
transitive = false
}
diff --git a/tc-bot-server/header.txt b/tcbot-server/header.txt
similarity index 100%
copy from tc-bot-server/header.txt
copy to tcbot-server/header.txt
diff --git a/tc-bot-server/src/main/java/org/apache/ignite/ci/TcBotIgniteServerLauncher.java b/tcbot-server/src/main/java/org/apache/ignite/ci/TcBotIgniteServerLauncher.java
similarity index 95%
rename from tc-bot-server/src/main/java/org/apache/ignite/ci/TcBotIgniteServerLauncher.java
rename to tcbot-server/src/main/java/org/apache/ignite/ci/TcBotIgniteServerLauncher.java
index 0070dc9..c7011f4 100644
--- a/tc-bot-server/src/main/java/org/apache/ignite/ci/TcBotIgniteServerLauncher.java
+++ b/tcbot-server/src/main/java/org/apache/ignite/ci/TcBotIgniteServerLauncher.java
@@ -20,19 +20,19 @@ package org.apache.ignite.ci;
import org.apache.ignite.Ignite;
import org.apache.ignite.Ignition;
import org.apache.ignite.ci.db.Ignite2Configurer;
-import org.apache.ignite.ci.db.TcHelperDb;
import org.apache.ignite.configuration.DataRegionConfiguration;
import org.apache.ignite.configuration.DataStorageConfiguration;
import org.apache.ignite.configuration.IgniteConfiguration;
import org.apache.ignite.configuration.WALMode;
import org.apache.ignite.logger.slf4j.Slf4jLogger;
+import org.apache.ignite.tcbot.common.conf.TcBotWorkDir;
import java.io.File;
import java.io.IOException;
public class TcBotIgniteServerLauncher {
public static void main(String[] args) throws IOException {
- final File workDir = HelperConfig.resolveWorkDir();
+ final File workDir = TcBotWorkDir.resolveWorkDir();
Ignite2Configurer.configLogger(workDir, "tcbot_srv_logs");
final IgniteConfiguration cfg = new IgniteConfiguration();
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/ProblemOccurrencesRef.java b/tcbot-teamcity/build.gradle
similarity index 66%
copy from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/ProblemOccurrencesRef.java
copy to tcbot-teamcity/build.gradle
index a382ddb..3ad28b8 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/ProblemOccurrencesRef.java
+++ b/tcbot-teamcity/build.gradle
@@ -15,18 +15,20 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.result;
+apply plugin: 'java'
+apply plugin: 'war'
-import javax.xml.bind.annotation.XmlAttribute;
-
-/**
- * Problem occurrences reference, short version with only reference
- */
-public class ProblemOccurrencesRef {
- /** Href without host name to obtain full problems list. */
- @XmlAttribute public String href;
+repositories {
+ mavenCentral()
+ mavenLocal()
+}
- @XmlAttribute public long count;
+dependencies {
+ compile (project(":tcbot-common"));
- @XmlAttribute public long newFailed;
+ /// JAXB replacement for Java 11
+ compile group: 'javax.xml.bind', name: 'jaxb-api', version: '2.3.1'
+ compile group: 'com.sun.xml.bind', name: 'jaxb-impl', version: '2.3.0'
+ compile group: 'com.sun.xml.bind', name: 'jaxb-core', version: '2.3.0'
}
+
\ No newline at end of file
diff --git a/tc-bot-server/header.txt b/tcbot-teamcity/header.txt
similarity index 100%
rename from tc-bot-server/header.txt
rename to tcbot-teamcity/header.txt
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/ITeamcity.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/ITeamcity.java
similarity index 81%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/ITeamcity.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/ITeamcity.java
index 5757239..787b257 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/ITeamcity.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/ITeamcity.java
@@ -15,19 +15,17 @@
* limitations under the License.
*/
-package org.apache.ignite.ci;
+package org.apache.ignite.tcservice;
import com.google.common.collect.Sets;
+import org.apache.ignite.tcbot.common.util.Base64Util;
+import org.apache.ignite.tcservice.model.user.User;
+
import java.io.File;
import java.util.Set;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
-import org.apache.ignite.ci.analysis.LogCheckResult;
-import org.apache.ignite.ci.analysis.SingleBuildRunCtx;
-import org.apache.ignite.ci.tcmodel.user.User;
-import org.apache.ignite.ci.teamcity.pure.ITeamcityConn;
-import org.apache.ignite.ci.util.Base64Util;
/**
* API for calling methods from REST service:
@@ -55,18 +53,8 @@ public interface ITeamcity extends ITeamcityConn {
/** Fake property for addressing 'Suite Name'. */
public String SUITE_NAME_PROPERTY = "_suiteName";
- CompletableFuture<File> unzipFirstFile(CompletableFuture<File> fut);
-
CompletableFuture<File> downloadBuildLogZip(int id);
- /**
- * Returns log analysis. Does not keep not zipped logs on disk.
- * @param buildId Build ID.
- * @param ctx Build results.
- * @return
- */
- CompletableFuture<LogCheckResult> analyzeBuildLog(Integer buildId, SingleBuildRunCtx ctx);
-
void setExecutor(ExecutorService pool);
Executor getExecutor();
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/pure/ITeamcityConn.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/ITeamcityConn.java
similarity index 83%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/pure/ITeamcityConn.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/ITeamcityConn.java
index 934b58f..24738fc 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/pure/ITeamcityConn.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/ITeamcityConn.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.teamcity.pure;
+package org.apache.ignite.tcservice;
import java.io.FileNotFoundException;
import java.io.UncheckedIOException;
@@ -25,20 +25,20 @@ import java.util.SortedSet;
import java.util.concurrent.atomic.AtomicReference;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
-import org.apache.ignite.ci.tcbot.conf.ITcServerConfig;
-import org.apache.ignite.ci.tcmodel.agent.Agent;
-import org.apache.ignite.ci.tcmodel.changes.Change;
-import org.apache.ignite.ci.tcmodel.changes.ChangesList;
-import org.apache.ignite.ci.tcmodel.conf.BuildType;
-import org.apache.ignite.ci.tcmodel.conf.Project;
-import org.apache.ignite.ci.tcmodel.conf.bt.BuildTypeFull;
-import org.apache.ignite.ci.tcmodel.hist.BuildRef;
-import org.apache.ignite.ci.tcmodel.mute.MuteInfo;
-import org.apache.ignite.ci.tcmodel.result.Build;
-import org.apache.ignite.ci.tcmodel.result.problems.ProblemOccurrences;
-import org.apache.ignite.ci.tcmodel.result.stat.Statistics;
-import org.apache.ignite.ci.tcmodel.result.tests.TestOccurrencesFull;
-import org.apache.ignite.ci.web.rest.exception.ConflictException;
+import org.apache.ignite.tcservice.model.agent.Agent;
+import org.apache.ignite.tcservice.model.changes.Change;
+import org.apache.ignite.tcservice.model.changes.ChangesList;
+import org.apache.ignite.tcservice.model.conf.BuildType;
+import org.apache.ignite.tcservice.model.conf.Project;
+import org.apache.ignite.tcservice.model.conf.bt.BuildTypeFull;
+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.tcservice.model.result.problems.ProblemOccurrences;
+import org.apache.ignite.tcservice.model.result.stat.Statistics;
+import org.apache.ignite.tcservice.model.result.tests.TestOccurrencesFull;
+import org.apache.ignite.tcbot.common.exeption.ServiceConflictException;
+import org.apache.ignite.tcbot.common.conf.ITcServerConfig;
/**
* Pure Teamcity Connection API for calling methods from REST service: <br>
@@ -47,7 +47,7 @@ import org.apache.ignite.ci.web.rest.exception.ConflictException;
*
* HTTP methods return following errors in case HTTP communication failures:
* <ul><li>{@link UncheckedIOException} caused by {@link FileNotFoundException} - If not found (404) was returned from service.</li>
- * <li>{@link ConflictException} If conflict (409) was returned from service.</li>
+ * <li>{@link ServiceConflictException} If conflict (409) was returned from service.</li>
* <li>{@link IllegalStateException} if some unexpected HTTP error returned.</li>
* <li>{@link UncheckedIOException} in case communication failed.</ul>
*/
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/IgniteTeamcityConnection.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/IgniteTeamcityConnection.java
similarity index 66%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/IgniteTeamcityConnection.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/IgniteTeamcityConnection.java
index 314a923..af8cbac 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/IgniteTeamcityConnection.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/IgniteTeamcityConnection.java
@@ -15,78 +15,54 @@
* limitations under the License.
*/
-package org.apache.ignite.ci;
+package org.apache.ignite.tcservice;
-import com.google.common.base.Preconditions;
-import com.google.common.base.Stopwatch;
import com.google.common.base.Strings;
import com.google.common.util.concurrent.MoreExecutors;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.StringReader;
-import java.io.UncheckedIOException;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.SortedSet;
+import org.apache.ignite.tcservice.model.agent.Agent;
+import org.apache.ignite.tcservice.model.agent.AgentsRef;
+import org.apache.ignite.tcservice.model.changes.Change;
+import org.apache.ignite.tcservice.model.changes.ChangesList;
+import org.apache.ignite.tcservice.model.conf.BuildType;
+import org.apache.ignite.tcservice.model.conf.Project;
+import org.apache.ignite.tcservice.model.conf.ProjectsList;
+import org.apache.ignite.tcservice.model.conf.bt.BuildTypeFull;
+import org.apache.ignite.tcservice.model.hist.BuildRef;
+import org.apache.ignite.tcservice.model.hist.Builds;
+import org.apache.ignite.tcservice.model.mute.MuteInfo;
+import org.apache.ignite.tcservice.model.mute.Mutes;
+import org.apache.ignite.tcservice.model.result.Build;
+import org.apache.ignite.tcservice.model.result.problems.ProblemOccurrences;
+import org.apache.ignite.tcservice.model.result.stat.Statistics;
+import org.apache.ignite.tcservice.model.result.tests.TestOccurrencesFull;
+import org.apache.ignite.tcservice.model.user.User;
+import org.apache.ignite.tcservice.model.user.Users;
+import org.apache.ignite.tcservice.http.ITeamcityHttpConnection;
+import org.apache.ignite.tcservice.util.XmlUtil;
+import org.apache.ignite.tcbot.common.conf.ITcServerConfig;
+import org.apache.ignite.tcbot.common.conf.ITcServerConfigSupplier;
+import org.apache.ignite.tcbot.common.conf.TcBotWorkDir;
+import org.apache.ignite.tcbot.common.exeption.ExceptionUtil;
+import org.apache.ignite.tcbot.common.exeption.ServiceConflictException;
+import org.apache.ignite.tcbot.common.interceptor.AutoProfiling;
+import org.apache.ignite.tcbot.common.util.HttpUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+import javax.inject.Inject;
+import javax.xml.bind.JAXBException;
+import java.io.*;
+import java.util.*;
import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
-import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Supplier;
import java.util.stream.Collectors;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipInputStream;
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
-import javax.inject.Inject;
-import javax.xml.bind.JAXBException;
-import org.apache.ignite.ci.analysis.ISuiteResults;
-import org.apache.ignite.ci.analysis.LogCheckResult;
-import org.apache.ignite.ci.analysis.LogCheckTask;
-import org.apache.ignite.ci.analysis.SingleBuildRunCtx;
-import org.apache.ignite.ci.di.AutoProfiling;
-import org.apache.ignite.ci.logs.BuildLogStreamChecker;
-import org.apache.ignite.ci.tcbot.conf.ITcBotConfig;
-import org.apache.ignite.ci.tcbot.conf.ITcServerConfig;
-import org.apache.ignite.ci.tcmodel.agent.Agent;
-import org.apache.ignite.ci.tcmodel.agent.AgentsRef;
-import org.apache.ignite.ci.tcmodel.changes.Change;
-import org.apache.ignite.ci.tcmodel.changes.ChangesList;
-import org.apache.ignite.ci.tcmodel.conf.BuildType;
-import org.apache.ignite.ci.tcmodel.conf.Project;
-import org.apache.ignite.ci.tcmodel.conf.ProjectsList;
-import org.apache.ignite.ci.tcmodel.conf.bt.BuildTypeFull;
-import org.apache.ignite.ci.tcmodel.hist.BuildRef;
-import org.apache.ignite.ci.tcmodel.hist.Builds;
-import org.apache.ignite.ci.tcmodel.mute.MuteInfo;
-import org.apache.ignite.ci.tcmodel.mute.Mutes;
-import org.apache.ignite.ci.tcmodel.result.Build;
-import org.apache.ignite.ci.tcmodel.result.problems.ProblemOccurrences;
-import org.apache.ignite.ci.tcmodel.result.stat.Statistics;
-import org.apache.ignite.ci.tcmodel.result.tests.TestOccurrencesFull;
-import org.apache.ignite.ci.tcmodel.user.User;
-import org.apache.ignite.ci.tcmodel.user.Users;
-import org.apache.ignite.ci.teamcity.pure.ITeamcityConn;
-import org.apache.ignite.ci.teamcity.pure.ITeamcityHttpConnection;
-import org.apache.ignite.ci.util.ExceptionUtil;
-import org.apache.ignite.ci.util.HttpUtil;
-import org.apache.ignite.ci.util.XmlUtil;
-import org.apache.ignite.ci.util.ZipUtil;
-import org.apache.ignite.ci.web.rest.exception.ConflictException;
-import org.jetbrains.annotations.NotNull;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import static java.util.concurrent.CompletableFuture.supplyAsync;
-import static org.apache.ignite.ci.HelperConfig.ensureDirExist;
-import static org.apache.ignite.ci.util.XmlUtil.xmlEscapeText;
/**
* Class for access to Teamcity REST API without any caching.
@@ -108,13 +84,10 @@ public class IgniteTeamcityConnection implements ITeamcity {
/** Teamcity http connection. */
@Inject private ITeamcityHttpConnection teamcityHttpConn;
- @Inject private ITcBotConfig cfg;
+ @Inject private ITcServerConfigSupplier cfg;
private String srvCode;
- /** Build logger processing running. */
- private ConcurrentHashMap<Integer, CompletableFuture<LogCheckTask>> buildLogProcessingRunning = new ConcurrentHashMap<>();
-
public Executor getExecutor() {
return executor;
}
@@ -154,12 +127,11 @@ public class IgniteTeamcityConnection implements ITeamcity {
@AutoProfiling
public CompletableFuture<File> downloadBuildLogZip(int buildId) {
- boolean archive = true;
Supplier<File> supplier = () -> {
String buildIdStr = Integer.toString(buildId);
- final File buildDir = ensureDirExist(new File(logsDir(), "buildId" + buildIdStr));
+ final File buildDir = TcBotWorkDir.ensureDirExist(new File(logsDir(), "buildId" + buildIdStr));
final File file = new File(buildDir,
- "build.log" + (archive ? ".zip" : ""));
+ "build.log.zip");
if (file.exists() && file.canRead() && file.length() > 0) {
logger.info("Nothing to do, file is cached locally: [" + file + "]");
@@ -179,43 +151,25 @@ public class IgniteTeamcityConnection implements ITeamcity {
return supplyAsync(supplier, executor);
}
+ private static File resolveLogs(File workDir, String logsProp) {
+ final File logsDirFileConfigured = new File(logsProp);
+ return logsDirFileConfigured.isAbsolute() ? logsDirFileConfigured : new File(workDir, logsProp);
+ }
+
private File logsDir() {
- File logsDirFile = HelperConfig.resolveLogs(
- HelperConfig.resolveWorkDir(),
+ File logsDirFile = resolveLogs(
+ TcBotWorkDir.resolveWorkDir(),
config().logsDirectory());
- return ensureDirExist(logsDirFile);
+ return TcBotWorkDir.ensureDirExist(logsDirFile);
}
- @AutoProfiling
- @Override public CompletableFuture<LogCheckResult> analyzeBuildLog(Integer buildId, SingleBuildRunCtx ctx) {
- final Stopwatch started = Stopwatch.createStarted();
-
- CompletableFuture<LogCheckTask> fut = buildLogProcessingRunning.computeIfAbsent(buildId,
- k -> checkBuildLogNoCache(k, ctx)
- );
-
- return fut
- .thenApply(task -> {
- buildLogProcessingRunning.remove(buildId, fut);
-
- return task;
- })
- .thenApply(task -> {
- logger.info(Thread.currentThread().getName()
- + ": processBuildLog required: " + started.elapsed(TimeUnit.MILLISECONDS)
- + "ms for " + ctx.suiteId());
-
- return task;
- })
- .thenApply(LogCheckTask::getResult);
- }
/** {@inheritDoc} */
@AutoProfiling
@Override public Build triggerBuild(
String buildTypeId,
- @NotNull @Nonnull String branchName,
+ @Nonnull String branchName,
boolean cleanRebuild,
boolean queueAtTop,
@Nullable Map<String, Object> buildParms
@@ -235,10 +189,10 @@ public class IgniteTeamcityConnection implements ITeamcity {
if (buildParms != null)
props.putAll(buildParms);
- props.put(TCBOT_TRIGGER_TIME, System.currentTimeMillis()); //
+ props.put(ITeamcity.TCBOT_TRIGGER_TIME, System.currentTimeMillis()); //
StringBuilder sb = new StringBuilder();
- sb.append("<build branchName=\"").append(xmlEscapeText(branchName)).append("\">\n");
+ sb.append("<build branchName=\"").append(XmlUtil.xmlEscapeText(branchName)).append("\">\n");
sb.append(" <buildType id=\"").append(buildTypeId).append("\"/>\n");
sb.append(comments);
sb.append(triggeringOptions);
@@ -246,7 +200,7 @@ public class IgniteTeamcityConnection implements ITeamcity {
props.forEach((k, v) -> {
sb.append(" <property name=\"").append(k).append("\"");
- sb.append(" value=\"").append(xmlEscapeText(Objects.toString(v))).append("\"/>\n");
+ sb.append(" value=\"").append(XmlUtil.xmlEscapeText(Objects.toString(v))).append("\"/>\n");
});
sb.append(" </properties>\n");
@@ -302,19 +256,6 @@ public class IgniteTeamcityConnection implements ITeamcity {
return getJaxbUsingHref(href, Change.class);
}
- private CompletableFuture<List<File>> unzip(CompletableFuture<File> zipFileFut) {
- return zipFileFut.thenApplyAsync(ZipUtil::unZipToSameFolder, executor);
- }
-
- @AutoProfiling
- public CompletableFuture<File> unzipFirstFile(CompletableFuture<File> fut) {
- final CompletableFuture<List<File>> clearFileF = unzip(fut);
- return clearFileF.thenApplyAsync(files -> {
- Preconditions.checkState(!files.isEmpty(), "ZIP file can't be empty");
- return files.get(0);
- }, executor);
- }
-
/** {@inheritDoc} */
@Override public List<Project> getProjects() {
return sendGetXmlParseJaxb(host() + "app/rest/latest/projects", ProjectsList.class).projects();
@@ -331,7 +272,7 @@ public class IgniteTeamcityConnection implements ITeamcity {
* @param rootElem Root elem.
*
* @throws UncheckedIOException caused by FileNotFoundException - If not found (404) was returned from service.
- * @throws ConflictException If conflict (409) was returned from service.
+ * @throws ServiceConflictException If conflict (409) was returned from service.
* @throws IllegalStateException if some unexpected HTTP error returned.
* @throws UncheckedIOException in case communication failed.
*/
@@ -383,44 +324,6 @@ public class IgniteTeamcityConnection implements ITeamcity {
return srvCode;
}
- private CompletableFuture<LogCheckTask> checkBuildLogNoCache(int buildId, ISuiteResults ctx) {
- final CompletableFuture<File> zipFut = downloadBuildLogZip(buildId);
- boolean dumpLastTest = ctx.hasSuiteIncompleteFailure();
-
- return zipFut.thenApplyAsync(zipFile -> runCheckForZippedLog(dumpLastTest, zipFile), executor);
- }
-
- @SuppressWarnings("WeakerAccess")
- @AutoProfiling
- @NotNull protected LogCheckTask runCheckForZippedLog(boolean dumpLastTest, File zipFile) {
- LogCheckTask task = new LogCheckTask(zipFile);
-
- try {
- //get the zip file content
- try (ZipInputStream zis = new ZipInputStream(new FileInputStream(zipFile))) {
- ZipEntry ze = zis.getNextEntry(); //get the zipped file list entry
-
- while (ze != null) {
- BuildLogStreamChecker checker = task.createChecker();
- checker.apply(zis, zipFile);
- task.finalize(dumpLastTest);
-
- ze = zis.getNextEntry();
- }
- zis.closeEntry();
- }
- }
- catch (IOException | UncheckedIOException e) {
- final String msg = "Failed to process ZIPed entry " + zipFile;
-
- System.err.println(msg);
- e.printStackTrace();
-
- logger.error(msg, e);
- }
-
- return task;
- }
/** {@inheritDoc} */
@AutoProfiling
@@ -488,7 +391,7 @@ public class IgniteTeamcityConnection implements ITeamcity {
* @param buildId Build id.
* @param testDtls request test details string
*/
- @NotNull
+ @Nonnull
private String testsStartHref(int buildId, boolean testDtls) {
String fieldList = "id,name," +
(testDtls ? "details," : "") +
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/pure/TcRealConnectionModule.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/TcRealConnectionModule.java
similarity index 82%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/pure/TcRealConnectionModule.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/TcRealConnectionModule.java
index 14f2b89..5575330 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/pure/TcRealConnectionModule.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/TcRealConnectionModule.java
@@ -14,12 +14,15 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.ignite.ci.teamcity.pure;
+package org.apache.ignite.tcservice;
import com.google.inject.AbstractModule;
import com.google.inject.internal.SingletonScope;
-import org.apache.ignite.ci.ITeamcity;
-import org.apache.ignite.ci.IgniteTeamcityConnection;
+import org.apache.ignite.tcservice.http.ITeamcityHttpConnection;
+import org.apache.ignite.tcservice.http.TeamcityRecorder;
+import org.apache.ignite.tcservice.http.TeamcityRecordingConnection;
+import org.apache.ignite.tcservice.login.ITcLogin;
+import org.apache.ignite.tcservice.login.TcLoginImpl;
/**
* Guice module to setup real connected server and all related implementations.
@@ -29,9 +32,6 @@ public class TcRealConnectionModule extends AbstractModule {
/** {@inheritDoc} */
@Override protected void configure() {
- //Simple connection
- bind(ITeamcity.class).to(IgniteTeamcityConnection.class);
-
if (conn != null)
bind(ITeamcityHttpConnection.class).toInstance(conn);
else
@@ -42,7 +42,6 @@ public class TcRealConnectionModule extends AbstractModule {
}
public void overrideHttp(ITeamcityHttpConnection conn) {
-
this.conn = conn;
}
}
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/pure/FileRecordingInputStream.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/http/FileRecordingInputStream.java
similarity index 95%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/pure/FileRecordingInputStream.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/http/FileRecordingInputStream.java
index 45d1cdf..416399e 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/pure/FileRecordingInputStream.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/http/FileRecordingInputStream.java
@@ -15,12 +15,12 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.teamcity.pure;
+package org.apache.ignite.tcservice.http;
import com.google.common.base.Charsets;
import com.google.common.base.Preconditions;
-import org.jetbrains.annotations.NotNull;
+import javax.annotation.Nonnull;
import java.io.FilterInputStream;
import java.io.IOException;
import java.io.InputStream;
@@ -64,7 +64,7 @@ public class FileRecordingInputStream extends FilterInputStream {
}
/** {@inheritDoc} */
- @Override public int read(@NotNull byte[] buf, int off, int cnt) throws IOException {
+ @Override public int read(@Nonnull byte[] buf, int off, int cnt) throws IOException {
Preconditions.checkState(!closeGuard.get());
int readBytes = super.read(buf, off, cnt);
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/pure/ITeamcityHttpConnection.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/http/ITeamcityHttpConnection.java
similarity index 86%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/pure/ITeamcityHttpConnection.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/http/ITeamcityHttpConnection.java
index 950f7a5..9b222b5 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/pure/ITeamcityHttpConnection.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/http/ITeamcityHttpConnection.java
@@ -15,19 +15,20 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.teamcity.pure;
+package org.apache.ignite.tcservice.http;
+
+import org.apache.ignite.tcbot.common.exeption.ServiceConflictException;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
-import org.apache.ignite.ci.web.rest.exception.ConflictException;
public interface ITeamcityHttpConnection {
/**
* @param basicAuthTok Basic auth token.
* @param url Url.
* @throws FileNotFoundException If not found (404) was returned from service.
- * @throws ConflictException If conflict (409) was returned from service.
+ * @throws ServiceConflictException If conflict (409) was returned from service.
* @throws IllegalStateException if some unexpected HTTP error returned.
*/
public InputStream sendGet(String basicAuthTok, String url) throws IOException;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/pure/TeamcityRecorder.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/http/TeamcityRecorder.java
similarity index 90%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/pure/TeamcityRecorder.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/http/TeamcityRecorder.java
index 4bd0b81..61d0b4a 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/pure/TeamcityRecorder.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/http/TeamcityRecorder.java
@@ -15,16 +15,16 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.teamcity.pure;
+package org.apache.ignite.tcservice.http;
import com.google.common.base.Charsets;
+import org.apache.ignite.tcbot.common.conf.TcBotSystemProperties;
-import java.io.*;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.ConcurrentLinkedQueue;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
import java.util.concurrent.locks.ReentrantLock;
-import org.apache.ignite.ci.tcbot.TcBotSystemProperties;
/**
*
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/pure/TeamcityRecordingConnection.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/http/TeamcityRecordingConnection.java
similarity index 92%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/pure/TeamcityRecordingConnection.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/http/TeamcityRecordingConnection.java
index 4b0306c..7a93b4e 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/pure/TeamcityRecordingConnection.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/http/TeamcityRecordingConnection.java
@@ -14,9 +14,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.ignite.ci.teamcity.pure;
+package org.apache.ignite.tcservice.http;
-import org.apache.ignite.ci.util.HttpUtil;
+import org.apache.ignite.tcbot.common.util.HttpUtil;
import javax.inject.Inject;
import java.io.IOException;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/pure/ITcLogin.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/login/ITcLogin.java
similarity index 92%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/pure/ITcLogin.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/login/ITcLogin.java
index 7fb46b2..458c094 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/pure/ITcLogin.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/login/ITcLogin.java
@@ -14,9 +14,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.ignite.ci.teamcity.pure;
+package org.apache.ignite.tcservice.login;
-import org.apache.ignite.ci.tcmodel.user.User;
+import org.apache.ignite.tcservice.model.user.User;
/**
* Teamcity Login implementation.
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/pure/TcLoginImpl.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/login/TcLoginImpl.java
similarity index 88%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/pure/TcLoginImpl.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/login/TcLoginImpl.java
index 0ae875b..2c25f55 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/pure/TcLoginImpl.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/login/TcLoginImpl.java
@@ -14,12 +14,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.ignite.ci.teamcity.pure;
+package org.apache.ignite.tcservice.login;
-import org.apache.ignite.ci.ITeamcity;
-import org.apache.ignite.ci.IgniteTeamcityConnection;
-import org.apache.ignite.ci.tcmodel.user.User;
-import org.apache.ignite.ci.web.rest.exception.ServiceUnauthorizedException;
+import org.apache.ignite.tcservice.IgniteTeamcityConnection;
+import org.apache.ignite.tcservice.model.user.User;
+import org.apache.ignite.tcbot.common.exeption.ServiceUnauthorizedException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -29,7 +28,7 @@ import javax.inject.Provider;
/**
* Real implementation of login based on getting current user preferences from the server.
*/
-class TcLoginImpl implements ITcLogin {
+public class TcLoginImpl implements ITcLogin {
/** Logger. */
private static final Logger logger = LoggerFactory.getLogger(TcLoginImpl.class);
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/ParameterType.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/ParameterType.java
similarity index 98%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/ParameterType.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/ParameterType.java
index bdfd766..9c4df28 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/ParameterType.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/ParameterType.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel;
+package org.apache.ignite.tcservice.model;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/Properties.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/Properties.java
similarity index 98%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/Properties.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/Properties.java
index 192ec42..145167d 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/Properties.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/Properties.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel;
+package org.apache.ignite.tcservice.model;
import java.util.ArrayList;
import java.util.List;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/Property.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/Property.java
similarity index 98%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/Property.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/Property.java
index 2b30a92..3383384 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/Property.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/Property.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel;
+package org.apache.ignite.tcservice.model;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/agent/Agent.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/agent/Agent.java
similarity index 98%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/agent/Agent.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/agent/Agent.java
index b082cff..e1ff564 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/agent/Agent.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/agent/Agent.java
@@ -15,15 +15,15 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.agent;
+package org.apache.ignite.tcservice.model.agent;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
-import org.apache.ignite.ci.tcmodel.Properties;
-import org.apache.ignite.ci.tcmodel.hist.BuildRef;
+import org.apache.ignite.tcservice.model.Properties;
+import org.apache.ignite.tcservice.model.hist.BuildRef;
/**
* <p>Java class for agent complex type.
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/agent/AgentPoolRef.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/agent/AgentPoolRef.java
similarity index 98%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/agent/AgentPoolRef.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/agent/AgentPoolRef.java
index d3a6988..c1994a9 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/agent/AgentPoolRef.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/agent/AgentPoolRef.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.agent;
+package org.apache.ignite.tcservice.model.agent;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/agent/AgentRef.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/agent/AgentRef.java
similarity index 98%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/agent/AgentRef.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/agent/AgentRef.java
index d2f3b38..63696b4 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/agent/AgentRef.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/agent/AgentRef.java
@@ -15,13 +15,13 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.agent;
+package org.apache.ignite.tcservice.model.agent;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlType;
-import org.apache.ignite.ci.tcmodel.Properties;
+import org.apache.ignite.tcservice.model.Properties;
/**
* <p>Java class for agent complex type.
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/agent/AgentsRef.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/agent/AgentsRef.java
similarity index 98%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/agent/AgentsRef.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/agent/AgentsRef.java
index 092d9f4..651de3d 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/agent/AgentsRef.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/agent/AgentsRef.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.agent;
+package org.apache.ignite.tcservice.model.agent;
import java.util.ArrayList;
import java.util.List;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/changes/Change.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/changes/Change.java
similarity index 83%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/changes/Change.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/changes/Change.java
index 5cfc364..ae66cb9 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/changes/Change.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/changes/Change.java
@@ -15,24 +15,23 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.changes;
+package org.apache.ignite.tcservice.model.changes;
+import javax.annotation.Nullable;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
-import org.apache.ignite.ci.db.Persisted;
-import org.apache.ignite.ci.tcmodel.user.UserRef;
-import org.jetbrains.annotations.Nullable;
+import org.apache.ignite.tcservice.model.user.UserRef;
/**
* VCS change reported by Teamcity
*/
@XmlRootElement(name = "change")
-@Persisted
public class Change extends ChangeRef {
/** Comment text */
@XmlElement public String comment;
- @Nullable @XmlElement public UserRef user;
+ @Nullable
+ @XmlElement public UserRef user;
public boolean isFakeStub() {
return getId() == null;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/changes/ChangeRef.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/changes/ChangeRef.java
similarity index 90%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/changes/ChangeRef.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/changes/ChangeRef.java
index a66dbc2..dc92901 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/changes/ChangeRef.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/changes/ChangeRef.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.changes;
+package org.apache.ignite.tcservice.model.changes;
import com.google.common.base.Strings;
import java.text.ParseException;
@@ -24,15 +24,13 @@ import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlTransient;
-import org.apache.ignite.ci.db.Persisted;
-import org.apache.ignite.ci.tcmodel.result.AbstractRef;
+import org.apache.ignite.tcservice.model.result.AbstractRef;
-import static org.apache.ignite.ci.util.ExceptionUtil.propagateException;
+import static org.apache.ignite.tcbot.common.exeption.ExceptionUtil.propagateException;
/**
* Change short version.
*/
-@Persisted
@XmlAccessorType(XmlAccessType.FIELD)
public class ChangeRef extends AbstractRef {
@XmlAttribute public String id;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/changes/ChangesList.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/changes/ChangesList.java
similarity index 93%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/changes/ChangesList.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/changes/ChangesList.java
index 8ca0ed2..c080f92 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/changes/ChangesList.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/changes/ChangesList.java
@@ -15,19 +15,17 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.changes;
+package org.apache.ignite.tcservice.model.changes;
import java.util.Collections;
import java.util.List;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
-import org.apache.ignite.ci.db.Persisted;
/**
* List of changes from TC.
*/
@XmlRootElement(name = "changes")
-@Persisted
public class ChangesList extends ChangesListRef {
@XmlElement(name = "change")
public List<ChangeRef> changes;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/changes/ChangesListRef.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/changes/ChangesListRef.java
similarity index 88%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/changes/ChangesListRef.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/changes/ChangesListRef.java
index 592f9f8..53f9fec 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/changes/ChangesListRef.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/changes/ChangesListRef.java
@@ -15,9 +15,9 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.changes;
+package org.apache.ignite.tcservice.model.changes;
-import org.apache.ignite.ci.tcmodel.result.AbstractRef;
+import org.apache.ignite.tcservice.model.result.AbstractRef;
/**
* Reference to list of changes.
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/conf/BuildType.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/conf/BuildType.java
similarity index 96%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/conf/BuildType.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/conf/BuildType.java
index 3f7a0ef..ba40e5a 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/conf/BuildType.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/conf/BuildType.java
@@ -15,13 +15,13 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.conf;
+package org.apache.ignite.tcservice.model.conf;
import java.util.Objects;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
-import org.apache.ignite.ci.tcmodel.result.AbstractRef;
+import org.apache.ignite.tcservice.model.result.AbstractRef;
/**
* Build type reference
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/conf/Project.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/conf/Project.java
similarity index 97%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/conf/Project.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/conf/Project.java
index e27736d..ec47b43 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/conf/Project.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/conf/Project.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.conf;
+package org.apache.ignite.tcservice.model.conf;
import java.util.Collections;
import java.util.List;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/conf/ProjectsList.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/conf/ProjectsList.java
similarity index 87%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/conf/ProjectsList.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/conf/ProjectsList.java
index 1a9594a..2af7a78 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/conf/ProjectsList.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/conf/ProjectsList.java
@@ -15,14 +15,14 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.conf;
+package org.apache.ignite.tcservice.model.conf;
import java.util.Collections;
import java.util.List;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
-import org.apache.ignite.ci.tcmodel.changes.ChangesListRef;
-import org.jetbrains.annotations.NotNull;
+import org.apache.ignite.tcservice.model.changes.ChangesListRef;
+import org.checkerframework.checker.nullness.qual.NonNull;
/**
* List of Projects available at TC.
@@ -44,7 +44,8 @@ public class ProjectsList extends ChangesListRef {
}
/** */
- @NotNull public List<Project> projects() {
+ @NonNull
+ public List<Project> projects() {
return projects == null ? Collections.emptyList() : Collections.unmodifiableList(projects);
}
}
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/conf/bt/BuildTypeFull.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/conf/bt/BuildTypeFull.java
similarity index 93%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/conf/bt/BuildTypeFull.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/conf/bt/BuildTypeFull.java
index 73360be..587e709 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/conf/bt/BuildTypeFull.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/conf/bt/BuildTypeFull.java
@@ -15,22 +15,22 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.conf.bt;
+package org.apache.ignite.tcservice.model.conf.bt;
import java.util.Collections;
import java.util.List;
+import javax.annotation.Nullable;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
-import org.jetbrains.annotations.Nullable;
/**
* Full build type settings.
*/
@XmlRootElement(name = "buildType")
@XmlAccessorType(XmlAccessType.FIELD)
-public class BuildTypeFull extends org.apache.ignite.ci.tcmodel.conf.BuildType {
+public class BuildTypeFull extends org.apache.ignite.tcservice.model.conf.BuildType {
@XmlElement(name = "settings")
Parameters settings;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/conf/bt/Parameters.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/conf/bt/Parameters.java
similarity index 95%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/conf/bt/Parameters.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/conf/bt/Parameters.java
index 9f92e33..1c6ff7f 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/conf/bt/Parameters.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/conf/bt/Parameters.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.conf.bt;
+package org.apache.ignite.tcservice.model.conf.bt;
import com.google.common.base.MoreObjects;
import java.util.ArrayList;
@@ -23,10 +23,10 @@ import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
+import javax.annotation.Nullable;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
-import org.jetbrains.annotations.Nullable;
/**
* Collection of parameters in build
@@ -46,7 +46,8 @@ public class Parameters {
/**
* @param key Key of parameter.
*/
- @Nullable public String getParameter(String key) {
+ @Nullable
+ public String getParameter(String key) {
if (properties == null)
return null;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/conf/bt/Property.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/conf/bt/Property.java
similarity index 96%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/conf/bt/Property.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/conf/bt/Property.java
index 3f87d0a..c9aec3d 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/conf/bt/Property.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/conf/bt/Property.java
@@ -15,14 +15,14 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.conf.bt;
+package org.apache.ignite.tcservice.model.conf.bt;
import com.google.common.base.MoreObjects;
import java.util.Objects;
+import javax.annotation.Nullable;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
-import org.jetbrains.annotations.Nullable;
/**
* Any property in builds or other configs.
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/conf/bt/SnapshotDependencies.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/conf/bt/SnapshotDependencies.java
similarity index 97%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/conf/bt/SnapshotDependencies.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/conf/bt/SnapshotDependencies.java
index f35629c..6d29b00 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/conf/bt/SnapshotDependencies.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/conf/bt/SnapshotDependencies.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.conf.bt;
+package org.apache.ignite.tcservice.model.conf.bt;
import com.google.common.base.MoreObjects;
import java.util.ArrayList;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/conf/bt/SnapshotDependency.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/conf/bt/SnapshotDependency.java
similarity index 96%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/conf/bt/SnapshotDependency.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/conf/bt/SnapshotDependency.java
index 983a9b4..730ce1a 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/conf/bt/SnapshotDependency.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/conf/bt/SnapshotDependency.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.conf.bt;
+package org.apache.ignite.tcservice.model.conf.bt;
import com.google.common.base.MoreObjects;
import java.util.Objects;
@@ -23,7 +23,7 @@ import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
-import org.apache.ignite.ci.tcmodel.conf.BuildType;
+import org.apache.ignite.tcservice.model.conf.BuildType;
/**
* Snapshot dependency.
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/hist/BuildRef.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/hist/BuildRef.java
similarity index 98%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/hist/BuildRef.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/hist/BuildRef.java
index 491a062..14cec20 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/hist/BuildRef.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/hist/BuildRef.java
@@ -15,14 +15,14 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.hist;
+package org.apache.ignite.tcservice.model.hist;
import com.google.common.base.MoreObjects;
import java.util.Objects;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
-import org.apache.ignite.ci.tcmodel.result.AbstractRef;
+import org.apache.ignite.tcservice.model.result.AbstractRef;
/**
* Actual result of build execution from build history,
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/hist/Builds.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/hist/Builds.java
similarity index 97%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/hist/Builds.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/hist/Builds.java
index 0de40d5..5878ce2 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/hist/Builds.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/hist/Builds.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.hist;
+package org.apache.ignite.tcservice.model.hist;
import java.util.Collections;
import java.util.List;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/mute/MuteAssignment.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/mute/MuteAssignment.java
similarity index 93%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/mute/MuteAssignment.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/mute/MuteAssignment.java
index d70f894..11c279a 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/mute/MuteAssignment.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/mute/MuteAssignment.java
@@ -15,11 +15,11 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.mute;
+package org.apache.ignite.tcservice.model.mute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
-import org.apache.ignite.ci.util.TimeUtil;
+import org.apache.ignite.tcbot.common.util.TimeUtil;
/**
* Mute additional information. Contains mute date and it's comment.
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/mute/MuteInfo.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/mute/MuteInfo.java
similarity index 93%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/mute/MuteInfo.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/mute/MuteInfo.java
index 61a153b..f56d971 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/mute/MuteInfo.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/mute/MuteInfo.java
@@ -15,15 +15,16 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.mute;
+package org.apache.ignite.tcservice.model.mute;
import com.google.common.base.Objects;
+
+import javax.annotation.Nonnull;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
-import org.jetbrains.annotations.NotNull;
/**
* TeamCity mute.
@@ -65,7 +66,7 @@ public class MuteInfo implements Comparable<MuteInfo> {
}
/** {@inheritDoc} */
- @Override public int compareTo(@NotNull MuteInfo o) {
+ @Override public int compareTo(@Nonnull MuteInfo o) {
return Integer.compare(id, o.id);
}
}
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/mute/MuteScope.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/mute/MuteScope.java
similarity index 89%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/mute/MuteScope.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/mute/MuteScope.java
index e2137d6..fe63cd9 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/mute/MuteScope.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/mute/MuteScope.java
@@ -15,15 +15,15 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.mute;
+package org.apache.ignite.tcservice.model.mute;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
-import org.apache.ignite.ci.tcmodel.conf.BuildType;
-import org.apache.ignite.ci.tcmodel.conf.Project;
+import org.apache.ignite.tcservice.model.conf.BuildType;
+import org.apache.ignite.tcservice.model.conf.Project;
/**
* Mute additional information. Contains project or build types - scope affected by mute.
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/mute/MuteTarget.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/mute/MuteTarget.java
similarity index 92%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/mute/MuteTarget.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/mute/MuteTarget.java
index cd52735..69f4272 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/mute/MuteTarget.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/mute/MuteTarget.java
@@ -15,14 +15,14 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.mute;
+package org.apache.ignite.tcservice.model.mute;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
-import org.apache.ignite.ci.tcmodel.result.tests.TestRef;
+import org.apache.ignite.tcservice.model.result.tests.TestRef;
/**
* Mute additional information. Contains what was muted (tests, problems).
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/mute/Mutes.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/mute/Mutes.java
similarity index 95%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/mute/Mutes.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/mute/Mutes.java
index c8177b4..ed9236b 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/mute/Mutes.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/mute/Mutes.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.mute;
+package org.apache.ignite.tcservice.model.mute;
import java.util.Collections;
import java.util.Set;
@@ -26,7 +26,7 @@ import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
-import org.apache.ignite.ci.tcmodel.result.AbstractRef;
+import org.apache.ignite.tcservice.model.result.AbstractRef;
/**
* Mute entities from TeamCity. On TeamCity this object represent page with several mutes.
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/AbstractRef.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/AbstractRef.java
similarity index 95%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/AbstractRef.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/AbstractRef.java
index 4459623..bae7f2e 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/AbstractRef.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/AbstractRef.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.result;
+package org.apache.ignite.tcservice.model.result;
import javax.xml.bind.annotation.XmlAttribute;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/Build.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/Build.java
similarity index 88%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/Build.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/Build.java
index a3871e0..8b6d693 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/Build.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/Build.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.result;
+package org.apache.ignite.tcservice.model.result;
import com.google.common.base.Strings;
import java.text.ParseException;
@@ -23,22 +23,22 @@ import java.text.SimpleDateFormat;
import java.util.Collections;
import java.util.Date;
import java.util.List;
+import javax.annotation.Nullable;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
-import org.apache.ignite.ci.tcmodel.changes.ChangesListRef;
-import org.apache.ignite.ci.tcmodel.conf.BuildType;
-import org.apache.ignite.ci.tcmodel.conf.bt.Parameters;
-import org.apache.ignite.ci.tcmodel.hist.BuildRef;
-import org.apache.ignite.ci.tcmodel.vcs.Revision;
-import org.apache.ignite.ci.tcmodel.vcs.Revisions;
-import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
+import org.apache.ignite.tcservice.model.changes.ChangesListRef;
+import org.apache.ignite.tcservice.model.conf.BuildType;
+import org.apache.ignite.tcservice.model.conf.bt.Parameters;
+import org.apache.ignite.tcservice.model.hist.BuildRef;
+import org.apache.ignite.tcservice.model.vcs.Revision;
+import org.apache.ignite.tcservice.model.vcs.Revisions;
+import org.checkerframework.checker.nullness.qual.NonNull;
-import static org.apache.ignite.ci.util.ExceptionUtil.propagateException;
+import static org.apache.ignite.tcbot.common.exeption.ExceptionUtil.propagateException;
/**
* Build from history with test and problems references
@@ -75,9 +75,10 @@ public class Build extends BuildRef {
@XmlElement(name = "revisions") private Revisions revisions;
/** Build parameters. */
- @Nullable @XmlElement(name = "properties") private Parameters properties;
+ @Nullable
+ @XmlElement(name = "properties") private Parameters properties;
- @NotNull public static Build createFakeStub() {
+ @NonNull public static Build createFakeStub() {
return new Build();
}
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/Configurations.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/Configurations.java
similarity index 90%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/Configurations.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/Configurations.java
index eb62c46..05035ab 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/Configurations.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/Configurations.java
@@ -15,14 +15,13 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.result;
+package org.apache.ignite.tcservice.model.result;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;
-import org.apache.ignite.ci.tcmodel.hist.BuildRef;
+import org.apache.ignite.tcservice.model.hist.BuildRef;
/**
*/
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/ProblemOccurrencesRef.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/ProblemOccurrencesRef.java
similarity index 95%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/ProblemOccurrencesRef.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/ProblemOccurrencesRef.java
index a382ddb..3f23101 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/ProblemOccurrencesRef.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/ProblemOccurrencesRef.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.result;
+package org.apache.ignite.tcservice.model.result;
import javax.xml.bind.annotation.XmlAttribute;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/RelatedIssuesRef.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/RelatedIssuesRef.java
similarity index 94%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/RelatedIssuesRef.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/RelatedIssuesRef.java
index 81e1157..4297c06 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/RelatedIssuesRef.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/RelatedIssuesRef.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.result;
+package org.apache.ignite.tcservice.model.result;
/**
* Related issues reference.
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/StatisticsRef.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/StatisticsRef.java
similarity index 95%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/StatisticsRef.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/StatisticsRef.java
index 94535b7..9741d01 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/StatisticsRef.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/StatisticsRef.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.result;
+package org.apache.ignite.tcservice.model.result;
import javax.xml.bind.annotation.XmlAttribute;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/TestOccurrencesRef.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/TestOccurrencesRef.java
similarity index 96%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/TestOccurrencesRef.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/TestOccurrencesRef.java
index b250e98..ebf5222 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/TestOccurrencesRef.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/TestOccurrencesRef.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.result;
+package org.apache.ignite.tcservice.model.result;
import javax.xml.bind.annotation.XmlAttribute;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/Triggered.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/Triggered.java
similarity index 95%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/Triggered.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/Triggered.java
index 4006fa0..180c65b 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/Triggered.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/Triggered.java
@@ -15,14 +15,14 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.result;
+package org.apache.ignite.tcservice.model.result;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
-import org.apache.ignite.ci.tcmodel.hist.BuildRef;
-import org.apache.ignite.ci.tcmodel.user.User;
+import org.apache.ignite.tcservice.model.hist.BuildRef;
+import org.apache.ignite.tcservice.model.user.User;
/**
* <p>Java class for triggeredBy complex type.
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/problems/ProblemOccurrence.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/problems/ProblemOccurrence.java
similarity index 95%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/problems/ProblemOccurrence.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/problems/ProblemOccurrence.java
index 7b5afb4..8fa6a9f 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/problems/ProblemOccurrence.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/problems/ProblemOccurrence.java
@@ -15,11 +15,11 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.result.problems;
+package org.apache.ignite.tcservice.model.result.problems;
+import javax.annotation.Nullable;
import javax.xml.bind.annotation.XmlAttribute;
-import org.apache.ignite.ci.tcmodel.hist.BuildRef;
-import org.jetbrains.annotations.Nullable;
+import org.apache.ignite.tcservice.model.hist.BuildRef;
/**
* One build problem. Contains its type.
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/problems/ProblemOccurrences.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/problems/ProblemOccurrences.java
similarity index 89%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/problems/ProblemOccurrences.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/problems/ProblemOccurrences.java
index 43d2e82..d84b5f3 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/problems/ProblemOccurrences.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/problems/ProblemOccurrences.java
@@ -15,14 +15,14 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.result.problems;
+package org.apache.ignite.tcservice.model.result.problems;
import java.util.Collections;
import java.util.List;
+import javax.annotation.Nullable;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
-import org.apache.ignite.ci.tcmodel.result.ProblemOccurrencesRef;
-import org.jetbrains.annotations.Nullable;
+import org.apache.ignite.tcservice.model.result.ProblemOccurrencesRef;
/**
* List of problems associated with build.
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/stat/Statistics.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/stat/Statistics.java
similarity index 92%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/stat/Statistics.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/stat/Statistics.java
index f7929a3..2250b1f 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/stat/Statistics.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/stat/Statistics.java
@@ -15,13 +15,12 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.result.stat;
+package org.apache.ignite.tcservice.model.result.stat;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
-import org.apache.ignite.ci.tcmodel.conf.bt.Parameters;
-import org.jetbrains.annotations.Nullable;
+import org.apache.ignite.tcservice.model.conf.bt.Parameters;
/**
* Build statistics reported by TC, data is stored in properties
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/tests/TestOccurrence.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/tests/TestOccurrence.java
similarity index 98%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/tests/TestOccurrence.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/tests/TestOccurrence.java
index 72cc174..02ffa15 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/tests/TestOccurrence.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/tests/TestOccurrence.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.result.tests;
+package org.apache.ignite.tcservice.model.result.tests;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/tests/TestOccurrenceFull.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/tests/TestOccurrenceFull.java
similarity index 92%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/tests/TestOccurrenceFull.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/tests/TestOccurrenceFull.java
index 87bf4ec..56dd420 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/tests/TestOccurrenceFull.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/tests/TestOccurrenceFull.java
@@ -15,11 +15,11 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.result.tests;
+package org.apache.ignite.tcservice.model.result.tests;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
-import org.apache.ignite.ci.tcmodel.hist.BuildRef;
+import org.apache.ignite.tcservice.model.hist.BuildRef;
/**
* Full test occurrence optionally with text details returned by REST,
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/tests/TestOccurrences.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/tests/TestOccurrences.java
similarity index 93%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/tests/TestOccurrences.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/tests/TestOccurrences.java
index eba259f..b7b8de4 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/tests/TestOccurrences.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/tests/TestOccurrences.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.result.tests;
+package org.apache.ignite.tcservice.model.result.tests;
import java.util.Collections;
import java.util.List;
@@ -24,7 +24,7 @@ import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
-import org.apache.ignite.ci.tcmodel.result.TestOccurrencesRef;
+import org.apache.ignite.tcservice.model.result.TestOccurrencesRef;
/**
* Full tests occurrences, may have reference to next occurrences
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/tests/TestOccurrencesFull.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/tests/TestOccurrencesFull.java
similarity index 93%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/tests/TestOccurrencesFull.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/tests/TestOccurrencesFull.java
index 1329faf..1f6fe7c 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/tests/TestOccurrencesFull.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/tests/TestOccurrencesFull.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.result.tests;
+package org.apache.ignite.tcservice.model.result.tests;
import java.util.Collections;
import java.util.List;
@@ -24,7 +24,7 @@ import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
-import org.apache.ignite.ci.tcmodel.result.TestOccurrencesRef;
+import org.apache.ignite.tcservice.model.result.TestOccurrencesRef;
/**
* Full tests occurrences, may have reference to next occurrences
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/tests/TestRef.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/tests/TestRef.java
similarity index 90%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/tests/TestRef.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/tests/TestRef.java
index 9752963..3df64a0 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/tests/TestRef.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/result/tests/TestRef.java
@@ -15,11 +15,11 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.result.tests;
+package org.apache.ignite.tcservice.model.result.tests;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlRootElement;
-import org.apache.ignite.ci.tcmodel.result.AbstractRef;
+import org.apache.ignite.tcservice.model.result.AbstractRef;
/**
* Reference to particular test
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/user/User.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/user/User.java
similarity index 90%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/user/User.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/user/User.java
index 2ced609..37efa89 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/user/User.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/user/User.java
@@ -15,12 +15,12 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.user;
+package org.apache.ignite.tcservice.model.user;
-import org.apache.ignite.ci.tcmodel.conf.bt.Parameters;
-import org.jetbrains.annotations.Nullable;
+import org.apache.ignite.tcservice.model.conf.bt.Parameters;
+import javax.annotation.Nullable;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/user/UserRef.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/user/UserRef.java
similarity index 95%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/user/UserRef.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/user/UserRef.java
index b3f26d6..00bba76 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/user/UserRef.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/user/UserRef.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.user;
+package org.apache.ignite.tcservice.model.user;
import javax.xml.bind.annotation.XmlAttribute;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/user/Users.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/user/Users.java
similarity index 96%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/user/Users.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/user/Users.java
index 5e01947..b9f2571 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/user/Users.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/user/Users.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.user;
+package org.apache.ignite.tcservice.model.user;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/vcs/Revision.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/vcs/Revision.java
similarity index 97%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/vcs/Revision.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/vcs/Revision.java
index ae2ffd7..8552468 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/vcs/Revision.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/vcs/Revision.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.vcs;
+package org.apache.ignite.tcservice.model.vcs;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/vcs/Revisions.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/vcs/Revisions.java
similarity index 97%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/vcs/Revisions.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/vcs/Revisions.java
index c869aa0..d07424e 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/vcs/Revisions.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/vcs/Revisions.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.vcs;
+package org.apache.ignite.tcservice.model.vcs;
import java.util.Collections;
import java.util.List;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/vcs/VcsRootInstance.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/vcs/VcsRootInstance.java
similarity index 96%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/vcs/VcsRootInstance.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/vcs/VcsRootInstance.java
index c3aa4b3..2e14ca7 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/vcs/VcsRootInstance.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/model/vcs/VcsRootInstance.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.tcmodel.vcs;
+package org.apache.ignite.tcservice.model.vcs;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/pure/TcConnectionStaticLinker.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/util/TcConnectionStaticLinker.java
similarity index 87%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/pure/TcConnectionStaticLinker.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/util/TcConnectionStaticLinker.java
index aafbe4f..fad728c 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/pure/TcConnectionStaticLinker.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/util/TcConnectionStaticLinker.java
@@ -14,9 +14,10 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.ignite.ci.teamcity.pure;
+package org.apache.ignite.tcservice.util;
-import org.apache.ignite.ci.IgniteTeamcityConnection;
+import org.apache.ignite.tcservice.IgniteTeamcityConnection;
+import org.apache.ignite.tcservice.http.TeamcityRecordingConnection;
/**
* Factory for non-guice creation of TC Connection instance.
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/util/XmlUtil.java b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/util/XmlUtil.java
similarity index 96%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/util/XmlUtil.java
rename to tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/util/XmlUtil.java
index 958edeb..b0a03b5 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/util/XmlUtil.java
+++ b/tcbot-teamcity/src/main/java/org/apache/ignite/tcservice/util/XmlUtil.java
@@ -15,7 +15,9 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.util;
+package org.apache.ignite.tcservice.util;
+
+import org.apache.ignite.tcbot.common.util.ObjectInterner;
import java.io.Reader;
import java.io.StringWriter;
@@ -26,7 +28,6 @@ import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
/**
- * Created by dpavlov on 27.07.2017
*/
public class XmlUtil {
/** Cached context to save time on creation ctx each time. */