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/01/23 19:30:31 UTC
[ignite-teamcity-bot] branch master updated: IGNITE-10989: TC
Helper god object was removed
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 11bfe4d IGNITE-10989: TC Helper god object was removed
11bfe4d is described below
commit 11bfe4d067d0a80f0475c628a46911bbd22bdb4f
Author: Dmitriy Pavlov <dp...@apache.org>
AuthorDate: Wed Jan 23 22:30:15 2019 +0300
IGNITE-10989: TC Helper god object was removed
---
README.md | 2 +-
.../java/org/apache/ignite/ci/HelperConfig.java | 3 +-
.../main/java/org/apache/ignite/ci/TcHelper.java | 49 ----------------------
.../org/apache/ignite/ci/db/Ignite2Configurer.java | 4 +-
.../org/apache/ignite/ci/di/IgniteTcBotModule.java | 3 --
.../apache/ignite/ci/observer/BuildObserver.java | 7 ++--
.../apache/ignite/ci/observer/ObserverTask.java | 15 +++----
.../apache/ignite/ci/runners/ClientTmpHelper.java | 2 +-
.../ignite/ci/runners/RemoteClientTmpHelper.java | 2 +-
.../ci/{ITcHelper.java => tcbot/ITcBotBgAuth.java} | 30 ++++---------
.../apache/ignite/ci/tcbot/TcBotBgAuthImpl.java | 22 ++++++++++
.../ci/tcbot/TcBotBusinessServicesModule.java | 3 +-
.../ignite/ci/tcbot/TcBotSystemProperties.java | 10 +++++
.../apache/ignite/ci/tcbot/conf/ITcBotConfig.java | 5 +++
.../ci/tcbot/conf/LocalFilesBasedConfig.java | 4 ++
.../{ => tcbot}/user/UserAndSessionsStorage.java | 4 +-
.../tcbot/visa/TcBotTriggerAndSignOffService.java | 7 ++--
.../java/org/apache/ignite/ci/web/CtxListener.java | 1 -
.../apache/ignite/ci/web/rest/TriggerBuilds.java | 2 -
.../org/apache/ignite/ci/web/rest/login/Login.java | 10 ++---
.../ignite/ci/web/rest/login/UserService.java | 4 +-
.../org/apache/ignite/ci/di/DiContextTest.java | 10 +++--
.../ci/tcbot/chain/MockBasedTcBotModule.java | 4 ++
.../org/apache/ignite/ci/user/LoginAuthTest.java | 1 +
24 files changed, 90 insertions(+), 114 deletions(-)
diff --git a/README.md b/README.md
index a67798f..f1ff6b9 100644
--- a/README.md
+++ b/README.md
@@ -20,7 +20,7 @@ Should you have any questions please contact Ignite Developers at dev@ignite.apa
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.ITcHelper.TEAMCITY_HELPER_HOME system property.
+In can be changed with org.apache.ignite.ci.tcbot.TcBotSystemProperties.TEAMCITY_HELPER_HOME system property.
Examples of configs can be found in [conf](conf) directory.
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 a0cd102..ebdb919 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
@@ -28,6 +28,7 @@ import java.util.Properties;
import javax.ws.rs.QueryParam;
import org.apache.ignite.ci.conf.BranchesTracked;
import org.apache.ignite.ci.conf.PasswordEncoder;
+import org.apache.ignite.ci.tcbot.TcBotSystemProperties;
import org.apache.ignite.ci.util.Base64Util;
import org.apache.ignite.ci.util.ExceptionUtil;
import org.jetbrains.annotations.NotNull;
@@ -126,7 +127,7 @@ public class HelperConfig {
public static File resolveWorkDir() {
File workDir = null;
- String property = System.getProperty(ITcHelper.TEAMCITY_HELPER_HOME);
+ String property = System.getProperty(TcBotSystemProperties.TEAMCITY_HELPER_HOME);
if (isNullOrEmpty(property)) {
String conf = ".ignite-teamcity-helper";
String prop = System.getProperty("user.home");
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/TcHelper.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/TcHelper.java
deleted file mode 100644
index 0b094e7..0000000
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/TcHelper.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * 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.ci;
-
-import org.apache.ignite.ci.tcbot.conf.ITcBotConfig;
-import org.apache.ignite.ci.user.ICredentialsProv;
-
-/**
- * TC Bot implementation. To be migrated to smaller injected classes
- */
-@Deprecated
-public class TcHelper implements ITcHelper {
- /** Server authorizer credentials. */
- private ICredentialsProv serverAuthorizerCreds;
-
- /** {@inheritDoc} */
- @Override public void setServerAuthorizerCreds(ICredentialsProv creds) {
- this.serverAuthorizerCreds = creds;
- }
-
- /** {@inheritDoc} */
- @Override public ICredentialsProv getServerAuthorizerCreds() {
- return serverAuthorizerCreds;
- }
-
- /** {@inheritDoc} */
- @Override public boolean isServerAuthorized() {
- return serverAuthorizerCreds != null;
- }
-
- @Override public String primaryServerId() {
- return ITcBotConfig.DEFAULT_SERVER_ID; //todo move to method
- }
-}
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 63d7727..29ccee1 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
@@ -23,7 +23,7 @@ import ch.qos.logback.classic.encoder.PatternLayoutEncoder;
import ch.qos.logback.core.rolling.RollingFileAppender;
import ch.qos.logback.core.rolling.TimeBasedRollingPolicy;
import org.apache.ignite.ci.HelperConfig;
-import org.apache.ignite.ci.ITcHelper;
+import org.apache.ignite.ci.tcbot.TcBotSystemProperties;
import org.apache.ignite.configuration.DataRegionConfiguration;
import org.apache.ignite.configuration.DataStorageConfiguration;
import org.apache.ignite.configuration.IgniteConfiguration;
@@ -95,7 +95,7 @@ public class Ignite2Configurer {
final DataRegionConfiguration regConf = new DataRegionConfiguration()
.setPersistenceEnabled(true);
- String regSzGb = System.getProperty(ITcHelper.TEAMCITY_BOT_REGIONSIZE);
+ String regSzGb = System.getProperty(TcBotSystemProperties.TEAMCITY_BOT_REGIONSIZE);
if (regSzGb != null) {
try {
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 e45db99..64ecd36 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
@@ -26,8 +26,6 @@ import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
import javax.inject.Provider;
import org.apache.ignite.Ignite;
-import org.apache.ignite.ci.ITcHelper;
-import org.apache.ignite.ci.TcHelper;
import org.apache.ignite.ci.db.Ignite1Init;
import org.apache.ignite.ci.di.cache.GuavaCachedModule;
import org.apache.ignite.ci.di.scheduler.SchedulerModule;
@@ -76,7 +74,6 @@ public class IgniteTcBotModule extends AbstractModule {
bind(ObserverTask.class).in(new SingletonScope());
bind(BuildObserver.class).in(new SingletonScope());
bind(VisasHistoryStorage.class).in(new SingletonScope());
- bind(ITcHelper.class).to(TcHelper.class).in(new SingletonScope());
bind(BackgroundUpdater.class).in(new SingletonScope());
install(new TeamcityIgnitedModule());
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 88a858e..503889b 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
@@ -20,7 +20,7 @@ package org.apache.ignite.ci.observer;
import java.util.Objects;
import java.util.Timer;
import javax.inject.Inject;
-import org.apache.ignite.ci.ITcHelper;
+import org.apache.ignite.ci.tcbot.ITcBotBgAuth;
import org.apache.ignite.ci.tcmodel.result.Build;
import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
import org.apache.ignite.ci.teamcity.ignited.ITeamcityIgnited;
@@ -47,8 +47,7 @@ public class BuildObserver {
/** Task, which should be done periodically. */
private ObserverTask observerTask;
- /** Helper. */
- @Inject private ITcHelper tcHelper;
+ @Inject private ITcBotBgAuth tcBotBgAuth;
/** */
@Inject private ITeamcityIgnitedProvider teamcityIgnitedProvider;
@@ -115,7 +114,7 @@ public class BuildObserver {
BuildsInfo buildsInfo = observerTask.getInfo(key);
- ICredentialsProv creds = tcHelper.getServerAuthorizerCreds();
+ ICredentialsProv creds = tcBotBgAuth.getServerAuthorizerCreds();
ITeamcityIgnited teamcity = teamcityIgnitedProvider.server(key.srvId, creds);
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 24b32d5..f91bad6 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,11 +27,9 @@ import java.util.TimerTask;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.locks.ReentrantLock;
import javax.inject.Inject;
-import org.apache.ignite.ci.ITcHelper;
import org.apache.ignite.ci.di.AutoProfiling;
import org.apache.ignite.ci.di.MonitoredTask;
-import org.apache.ignite.ci.jira.pure.IJiraIntegration;
-import org.apache.ignite.ci.jira.pure.IJiraIntegrationProvider;
+import org.apache.ignite.ci.tcbot.ITcBotBgAuth;
import org.apache.ignite.ci.tcbot.visa.TcBotTriggerAndSignOffService;
import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
import org.apache.ignite.ci.teamcity.ignited.ITeamcityIgnited;
@@ -57,7 +55,7 @@ public class ObserverTask extends TimerTask {
private static final Logger logger = LoggerFactory.getLogger(ObserverTask.class);
/** Helper. */
- @Inject private ITcHelper tcHelper;
+ @Inject private ITcBotBgAuth tcBotBgAuth;
/** */
@Inject private ITeamcityIgnitedProvider teamcityIgnitedProvider;
@@ -154,9 +152,11 @@ public class ObserverTask extends TimerTask {
observationLock.lock();
try {
- if (!tcHelper.isServerAuthorized())
+ if (!tcBotBgAuth.isServerAuthorized())
return "Server authorization required.";
+ ICredentialsProv creds = tcBotBgAuth.getServerAuthorizerCreds();
+
int checkedBuilds = 0;
int notFinishedBuilds = 0;
Set<String> ticketsNotified = new HashSet<>();
@@ -166,8 +166,7 @@ public class ObserverTask extends TimerTask {
for (ContributionKey key : infos.keySet()) {
BuildsInfo info = infos.get(key);
- ITeamcityIgnited teamcity = teamcityIgnitedProvider.server(info.srvId,
- tcHelper.getServerAuthorizerCreds());
+ ITeamcityIgnited teamcity = teamcityIgnitedProvider.server(info.srvId, creds);
checkedBuilds += info.buildsCount();
@@ -190,8 +189,6 @@ public class ObserverTask extends TimerTask {
Visa visa = visasHistStorage.getLastVisaRequest(info.getContributionKey()).getResult();
if (!visa.isSuccess()) {
- ICredentialsProv creds = tcHelper.getServerAuthorizerCreds();
-
Visa updatedVisa = visaIssuer.notifyJira(info.srvId, creds, info.buildTypeId,
info.branchForTc, info.ticket);
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/runners/ClientTmpHelper.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/runners/ClientTmpHelper.java
index f05804f..35884cc 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/runners/ClientTmpHelper.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/runners/ClientTmpHelper.java
@@ -22,7 +22,7 @@ import org.apache.ignite.IgniteCache;
import org.apache.ignite.ci.db.TcHelperDb;
import org.apache.ignite.ci.issue.Issue;
import org.apache.ignite.ci.issue.IssuesStorage;
-import org.apache.ignite.ci.user.UserAndSessionsStorage;
+import org.apache.ignite.ci.tcbot.user.UserAndSessionsStorage;
/**
* Utility class for local connection to TC helper DB (server) and any manipulations with data needed.
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 4f50769..5413f04 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
@@ -38,7 +38,7 @@ import org.apache.ignite.ci.teamcity.ignited.IgniteStringCompactor;
import org.apache.ignite.ci.teamcity.ignited.fatbuild.FatBuildCompacted;
import org.apache.ignite.ci.teamcity.ignited.fatbuild.FatBuildDao;
import org.apache.ignite.ci.user.TcHelperUser;
-import org.apache.ignite.ci.user.UserAndSessionsStorage;
+import org.apache.ignite.ci.tcbot.user.UserAndSessionsStorage;
import org.apache.ignite.ci.util.XmlUtil;
import org.apache.ignite.configuration.IgniteConfiguration;
import org.apache.ignite.logger.slf4j.Slf4jLogger;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/ITcHelper.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/ITcBotBgAuth.java
similarity index 56%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/ITcHelper.java
rename to ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/ITcBotBgAuth.java
index ae45495..69db701 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/ITcHelper.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/ITcBotBgAuth.java
@@ -14,35 +14,23 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
-package org.apache.ignite.ci;
+package org.apache.ignite.ci.tcbot;
import org.apache.ignite.ci.user.ICredentialsProv;
+import org.jetbrains.annotations.Nullable;
/**
- * Teamcity Bot main interface. This inteface became too huge.
+ * Server authorization data holder. Saves credentials provided by user in Authorize server.
*/
-@Deprecated
-public interface ITcHelper {
- /** System property to specify: Teamcity helper home. Ignite home will be set to same dir. */
- public String TEAMCITY_HELPER_HOME = "teamcity.helper.home";
-
- /**
- * Teamcity bot data storage configuration region size in gigabytes. Default is 20% of physical RAM.
- */
- public String TEAMCITY_BOT_REGIONSIZE = "teamcity.bot.regionsize";
-
- String primaryServerId();
-
- @Deprecated
+public interface ITcBotBgAuth {
/** */
- void setServerAuthorizerCreds(ICredentialsProv creds);
+ public void setServerAuthorizerCreds(ICredentialsProv creds);
- @Deprecated
/** */
- ICredentialsProv getServerAuthorizerCreds();
+ @Nullable public ICredentialsProv getServerAuthorizerCreds();
/** */
- boolean isServerAuthorized();
-
+ public default boolean isServerAuthorized() {
+ return getServerAuthorizerCreds() != null;
+ }
}
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/TcBotBgAuthImpl.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/TcBotBgAuthImpl.java
new file mode 100644
index 0000000..6cacb47
--- /dev/null
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/TcBotBgAuthImpl.java
@@ -0,0 +1,22 @@
+package org.apache.ignite.ci.tcbot;
+
+import org.apache.ignite.ci.user.ICredentialsProv;
+import org.jetbrains.annotations.Nullable;
+
+/**
+ *
+ */
+class TcBotBgAuthImpl implements ITcBotBgAuth {
+ /** Server authorizer credentials. */
+ private ICredentialsProv srvAuthorizerCreds;
+
+ /** {@inheritDoc} */
+ @Override public void setServerAuthorizerCreds(ICredentialsProv creds) {
+ this.srvAuthorizerCreds = creds;
+ }
+
+ /** {@inheritDoc} */
+ @Nullable @Override public ICredentialsProv getServerAuthorizerCreds() {
+ return srvAuthorizerCreds;
+ }
+}
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 b3a2368..45076b6 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
@@ -24,7 +24,7 @@ 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.user.UserAndSessionsStorage;
+import org.apache.ignite.ci.tcbot.user.UserAndSessionsStorage;
/**
* TC Bot self services mapping (without 3rd party integrations configuration.
@@ -36,5 +36,6 @@ public class TcBotBusinessServicesModule extends AbstractModule {
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());
}
}
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/TcBotSystemProperties.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/TcBotSystemProperties.java
index 1e4b45c..49a55b4 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/TcBotSystemProperties.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/TcBotSystemProperties.java
@@ -21,7 +21,17 @@ package org.apache.ignite.ci.tcbot;
* Apache Ignite Teamcity Bot properties.
*/
public class TcBotSystemProperties {
+ /** Dev mode. */
public static final String DEV_MODE = "DEV_MODE";
+ /** Teamcity bot recorder. */
public static final String TEAMCITY_BOT_RECORDER = "teamcity.bot.recorder";
+
+ /**
+ * Teamcity bot data storage configuration region size in gigabytes. Default is 20% of physical RAM.
+ */
+ public static final String TEAMCITY_BOT_REGIONSIZE = "teamcity.bot.regionsize";
+
+ /** System property to specify: Teamcity helper home. Ignite home will be set to same dir. */
+ public static final String TEAMCITY_HELPER_HOME = "teamcity.helper.home";
}
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 0ee6465..95948da 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
@@ -27,6 +27,9 @@ public interface ITcBotConfig {
/** Default server id. */
String DEFAULT_SERVER_ID = "apache";
+
+ public String primaryServerId();
+
/**
* @return Tracked branches configuration for TC Bot.
*/
@@ -45,4 +48,6 @@ public interface ITcBotConfig {
public default Collection<String> getServerIds() {
return getTrackedBranches().getServerIds();
}
+
+
}
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 90c4fa4..f510061 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
@@ -29,4 +29,8 @@ public class LocalFilesBasedConfig implements ITcBotConfig {
@Override public BranchesTracked getTrackedBranches() {
return HelperConfig.getTrackedBranches();
}
+
+ @Override public String primaryServerId() {
+ return ITcBotConfig.DEFAULT_SERVER_ID;
+ }
}
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/user/UserAndSessionsStorage.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/user/UserAndSessionsStorage.java
similarity index 95%
rename from ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/user/UserAndSessionsStorage.java
rename to ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/user/UserAndSessionsStorage.java
index 6396781..a287790 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/user/UserAndSessionsStorage.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/user/UserAndSessionsStorage.java
@@ -15,12 +15,14 @@
* limitations under the License.
*/
-package org.apache.ignite.ci.user;
+package org.apache.ignite.ci.tcbot.user;
import org.apache.ignite.Ignite;
import org.apache.ignite.IgniteCache;
import org.apache.ignite.ci.db.TcHelperDb;
import org.apache.ignite.ci.tcbot.user.IUserStorage;
+import org.apache.ignite.ci.user.TcHelperUser;
+import org.apache.ignite.ci.user.UserSession;
import org.jetbrains.annotations.Nullable;
import javax.cache.Cache;
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 d47933b..05031c7 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
@@ -18,7 +18,6 @@
package org.apache.ignite.ci.tcbot.visa;
import com.fasterxml.jackson.databind.ObjectMapper;
-import com.google.common.base.Preconditions;
import com.google.common.base.Strings;
import com.google.inject.Provider;
import java.text.DateFormat;
@@ -37,7 +36,6 @@ import javax.annotation.Nonnull;
import javax.inject.Inject;
import javax.ws.rs.QueryParam;
import org.apache.ignite.ci.HelperConfig;
-import org.apache.ignite.ci.ITcHelper;
import org.apache.ignite.ci.ITeamcity;
import org.apache.ignite.ci.github.GitHubBranch;
import org.apache.ignite.ci.github.GitHubUser;
@@ -51,6 +49,7 @@ import org.apache.ignite.ci.jira.ignited.IJiraIgnitedProvider;
import org.apache.ignite.ci.jira.pure.IJiraIntegrationProvider;
import org.apache.ignite.ci.observer.BuildObserver;
import org.apache.ignite.ci.observer.BuildsInfo;
+import org.apache.ignite.ci.tcbot.ITcBotBgAuth;
import org.apache.ignite.ci.tcbot.chain.PrChainsProcessor;
import org.apache.ignite.ci.tcmodel.mute.MuteInfo;
import org.apache.ignite.ci.tcmodel.result.Build;
@@ -126,7 +125,7 @@ public class TcBotTriggerAndSignOffService {
@Inject IStringCompactor compactor;
/** Helper. */
- @Inject ITcHelper tcHelper;
+ @Inject ITcBotBgAuth tcBotBgAuth;
@Inject PrChainsProcessor prChainsProcessor;
@@ -342,7 +341,7 @@ public class TcBotTriggerAndSignOffService {
buildObserverProvider.get().observe(srvId, prov, ticketFullName, branchForTc, parentSuiteId, builds);
- if (!tcHelper.isServerAuthorized())
+ if (!tcBotBgAuth.isServerAuthorized())
return "Ask server administrator to authorize the Bot to enable JIRA notifications.";
return "JIRA ticket " + ticketFullName + " will be notified after the tests are completed.";
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 50b9e22..8619355 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
@@ -25,7 +25,6 @@ import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import org.apache.ignite.Ignite;
-import org.apache.ignite.ci.ITcHelper;
import org.apache.ignite.ci.db.TcHelperDb;
import org.apache.ignite.ci.di.IgniteTcBotModule;
import org.apache.ignite.ci.di.scheduler.IScheduler;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/TriggerBuilds.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/TriggerBuilds.java
index cd11e81..5f4031c 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/TriggerBuilds.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/TriggerBuilds.java
@@ -31,8 +31,6 @@ import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
-import org.apache.ignite.ci.ITcHelper;
-import org.apache.ignite.ci.ITeamcity;
import org.apache.ignite.ci.conf.ServerIntegrationLinks;
import org.apache.ignite.ci.github.pure.IGitHubConnection;
import org.apache.ignite.ci.github.pure.IGitHubConnectionProvider;
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 78affa3..f6f62d1 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
@@ -19,15 +19,12 @@ package org.apache.ignite.ci.web.rest.login;
import com.google.common.base.Preconditions;
import com.google.inject.Injector;
-import org.apache.ignite.ci.IAnalyticsEnabledTeamcity;
-import org.apache.ignite.ci.ITcHelper;
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.ci.teamcity.ignited.ITeamcityIgnitedProvider;
import org.apache.ignite.ci.teamcity.pure.ITcLogin;
import org.apache.ignite.ci.user.TcHelperUser;
-import org.apache.ignite.ci.user.UserAndSessionsStorage;
import org.apache.ignite.ci.util.Base64Util;
import org.apache.ignite.ci.util.CryptUtil;
import org.apache.ignite.ci.web.CtxListener;
@@ -60,8 +57,8 @@ public class Login {
public ServerDataResponse primaryServerUrl() {
Injector injector = CtxListener.getInjector(ctx);
- ITcHelper tcHelper = injector.getInstance(ITcHelper.class);
- String srvId = tcHelper.primaryServerId();
+ ITcBotConfig tcBotCfg = injector.getInstance(ITcBotConfig.class);
+ String srvId = tcBotCfg.primaryServerId();
String host = injector.getInstance(ITeamcityIgnitedProvider.class).server(srvId, null).host();
return new ServerDataResponse(host);
}
@@ -79,8 +76,7 @@ public class Login {
final ITcLogin tcLogin = injector.getInstance(ITcLogin.class);
IUserStorage users = injector.getInstance(IUserStorage.class);
- ITcHelper tcHelper = injector.getInstance(ITcHelper.class);
- String primarySrvId = tcHelper.primaryServerId();
+ String primarySrvId = cfg.primaryServerId();
try {
return doLogin(username, pwd, users, primarySrvId,
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 5aa6cdb..22ee2f5 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
@@ -31,7 +31,7 @@ import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Form;
import javax.ws.rs.core.MediaType;
-import org.apache.ignite.ci.ITcHelper;
+import org.apache.ignite.ci.tcbot.ITcBotBgAuth;
import org.apache.ignite.ci.tcbot.conf.ITcBotConfig;
import org.apache.ignite.ci.tcbot.issue.IssueDetector;
import org.apache.ignite.ci.tcbot.user.IUserStorage;
@@ -95,7 +95,7 @@ public class UserService {
Injector injector = CtxListener.getInjector(ctx);
IssueDetector issueDetector = injector.getInstance(IssueDetector.class);
- final ITcHelper helper = injector.getInstance(ITcHelper.class);
+ final ITcBotBgAuth helper = injector.getInstance(ITcBotBgAuth.class);
helper.setServerAuthorizerCreds(prov);
issueDetector.startBackgroundCheck(prov);
diff --git a/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/di/DiContextTest.java b/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/di/DiContextTest.java
index eb9a92a..e996691 100644
--- a/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/di/DiContextTest.java
+++ b/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/di/DiContextTest.java
@@ -23,15 +23,15 @@ import java.util.Collection;
import java.util.concurrent.CompletableFuture;
import org.apache.ignite.Ignite;
import org.apache.ignite.IgniteCache;
-import org.apache.ignite.ci.ITcHelper;
import org.apache.ignite.ci.observer.BuildObserver;
import org.apache.ignite.ci.observer.ObserverTask;
+import org.apache.ignite.ci.tcbot.ITcBotBgAuth;
+import org.apache.ignite.ci.tcbot.conf.ITcBotConfig;
import org.apache.ignite.ci.teamcity.restcached.ITcServerProvider;
import org.apache.ignite.ci.teamcity.restcached.ITcServerFactory;
import org.apache.ignite.ci.web.TcUpdatePool;
import org.apache.ignite.configuration.CacheConfiguration;
import org.junit.Test;
-import org.mockito.Mock;
import org.mockito.Mockito;
import static org.junit.Assert.assertTrue;
@@ -125,10 +125,12 @@ public class DiContextTest {
}
@Test
- public void checkSingletonTcHelper() {
+ public void checkSingletonTcConfig() {
Injector injector = getInjector();
- validateInstanceCachedFor(injector, ITcHelper.class);
+ validateInstanceCachedFor(injector, ITcBotConfig.class);
+
+ validateInstanceCachedFor(injector, ITcBotBgAuth.class);
validateInstanceCachedFor(injector, BuildObserver.class).stop();
}
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 f734d13..77fd7c2 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
@@ -98,6 +98,10 @@ public class MockBasedTcBotModule extends AbstractModule {
bind(ITcServerProvider.class).toInstance(tcSrvOldProv);
bind(ITcBotConfig.class).toInstance(new ITcBotConfig() {
+ @Override public String primaryServerId() {
+ return ITcBotConfig.DEFAULT_SERVER_ID;
+ }
+
@Override public BranchesTracked getTrackedBranches() {
return tracked;
}
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 1a21536..b93631a 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
@@ -17,6 +17,7 @@
package org.apache.ignite.ci.user;
+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;