You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by dp...@apache.org on 2018/10/06 12:11:35 UTC
[ignite-teamcity-bot] branch ignite-9800 updated: IGNITE-9800:
Persisting PR implemented (without caching of computation)
This is an automated email from the ASF dual-hosted git repository.
dpavlov pushed a commit to branch ignite-9800
in repository https://gitbox.apache.org/repos/asf/ignite-teamcity-bot.git
The following commit(s) were added to refs/heads/ignite-9800 by this push:
new a084ab6 IGNITE-9800: Persisting PR implemented (without caching of computation)
a084ab6 is described below
commit a084ab601fecd6b04ee30bb34563057391a38b99
Author: Dmitriy Pavlov <dp...@apache.org>
AuthorDate: Sat Oct 6 15:11:35 2018 +0300
IGNITE-9800: Persisting PR implemented (without caching of computation)
---
.../apache/ignite/ci/analysis/LogCheckResult.java | 2 +
.../org/apache/ignite/ci/di/IgniteTcBotModule.java | 5 ++
.../apache/ignite/ci/di/scheduler/IScheduler.java | 27 ++++++---
.../ignite/ci/di/scheduler/SchedulerModule.java | 11 ++++
.../ignite/ci/di/scheduler/TcBotScheduler.java | 51 +++++++++++++++++
.../org/apache/ignite/ci/github/PullRequest.java | 26 ++++++++-
.../ci/github/ignited/GitHubConnIgnitedImpl.java | 66 +++++++++++++++++++---
.../ci/github/ignited/GitHubIgnitedModule.java | 12 +---
.../org/apache/ignite/ci/issue/IssueDetector.java | 1 +
.../ignite/ci/tcbot/TcBotSystemProperties.java | 13 +----
.../java/org/apache/ignite/ci/web/CtxListener.java | 3 +
.../java/org/apache/ignite/ci/web/Launcher.java | 7 +++
.../web/rest/exception/ExeptionsTraceLogger.java | 12 ++--
jetty-launcher/build.gradle | 2 +-
.../apache/ignite/ci/TcHelperJettyLauncher.java | 3 +
15 files changed, 198 insertions(+), 43 deletions(-)
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/LogCheckResult.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/LogCheckResult.java
index 2ceda10..790f80a 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/LogCheckResult.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/LogCheckResult.java
@@ -65,10 +65,12 @@ public class LogCheckResult implements IVersionedEntity {
return lastStartedTest;
}
+ /** {@inheritDoc} */
@Override public int version() {
return _version == null ? -1 : _version;
}
+ /** {@inheritDoc} */
@Override public int latestVersion() {
return LATEST_VERSION;
}
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 3e56ede..2f802d4 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
@@ -25,6 +25,7 @@ import com.google.inject.matcher.Matchers;
import org.apache.ignite.Ignite;
import org.apache.ignite.ci.*;
import org.apache.ignite.ci.db.Ignite1Init;
+import org.apache.ignite.ci.di.scheduler.SchedulerModule;
import org.apache.ignite.ci.github.ignited.GitHubIgnitedModule;
import org.apache.ignite.ci.issue.IssueDetector;
import org.apache.ignite.ci.jira.IJiraIntegration;
@@ -43,6 +44,9 @@ import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
+/**
+ *
+ */
public class IgniteTcBotModule extends AbstractModule {
/** Ignite future. */
private Future<Ignite> igniteFut;
@@ -83,6 +87,7 @@ public class IgniteTcBotModule extends AbstractModule {
bind(BackgroundUpdater.class).in(new SingletonScope());
install(new TcRealConnectionModule());
install(new GitHubIgnitedModule());
+ install(new SchedulerModule());
}
//todo fallback to TC big class
diff --git a/jetty-launcher/src/main/java/org/apache/ignite/ci/TcHelperJettyLauncher.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/di/scheduler/IScheduler.java
similarity index 53%
copy from jetty-launcher/src/main/java/org/apache/ignite/ci/TcHelperJettyLauncher.java
copy to ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/di/scheduler/IScheduler.java
index d11a8e3..aa7f237 100644
--- a/jetty-launcher/src/main/java/org/apache/ignite/ci/TcHelperJettyLauncher.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/di/scheduler/IScheduler.java
@@ -14,16 +14,25 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+package org.apache.ignite.ci.di.scheduler;
-package org.apache.ignite.ci;
+import java.util.concurrent.RejectedExecutionException;
+import java.util.concurrent.TimeUnit;
-import static org.apache.ignite.ci.web.Launcher.*;
+public interface IScheduler {
+ /**
+ * Creates and executes a one-shot action that becomes enabled
+ * after the given delay.
+ *
+ * @param cmd the task to execute.
+ * @param delay the time from now to delay execution.
+ * @param unit the time unit of the delay parameter.
+ *
+ * @throws RejectedExecutionException if the task cannot be
+ * scheduled for execution
+ * @throws NullPointerException if command is null
+ */
+ public void invokeLater(Runnable cmd, long delay, TimeUnit unit);
-/**
- * Starts TC Helper REST server in production mode.
- */
-public class TcHelperJettyLauncher {
- public static void main(String[] args) throws Exception {
- runServer(false);
- }
+ public void stop();
}
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/di/scheduler/SchedulerModule.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/di/scheduler/SchedulerModule.java
new file mode 100644
index 0000000..69a310b
--- /dev/null
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/di/scheduler/SchedulerModule.java
@@ -0,0 +1,11 @@
+package org.apache.ignite.ci.di.scheduler;
+
+import com.google.inject.AbstractModule;
+import com.google.inject.internal.SingletonScope;
+
+public class SchedulerModule extends AbstractModule {
+ /** {@inheritDoc} */
+ @Override protected void configure() {
+ bind(IScheduler.class).to(TcBotScheduler.class).in(new SingletonScope());
+ }
+}
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/di/scheduler/TcBotScheduler.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/di/scheduler/TcBotScheduler.java
new file mode 100644
index 0000000..941d3ab
--- /dev/null
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/di/scheduler/TcBotScheduler.java
@@ -0,0 +1,51 @@
+/*
+ * 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.di.scheduler;
+
+import com.google.common.base.Preconditions;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+
+class TcBotScheduler implements IScheduler {
+ /** Initial guard. */
+ private AtomicBoolean initGuard = new AtomicBoolean();
+
+ /** Executor service. */
+ private volatile ScheduledExecutorService executorSvc;
+
+ @Override public void invokeLater(Runnable cmd, long delay, TimeUnit unit) {
+ service().schedule(cmd, delay, unit);
+ }
+
+ /** {@inheritDoc} */
+ @Override public void stop() {
+ if(executorSvc!=null)
+ executorSvc.shutdown();
+ }
+
+ private ScheduledExecutorService service() {
+ if (executorSvc == null && initGuard.compareAndSet(false, true))
+ executorSvc = Executors.newScheduledThreadPool(3);
+
+ Preconditions.checkNotNull(executorSvc, "Service should be created");
+
+ return executorSvc;
+ }
+}
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/PullRequest.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/PullRequest.java
index afd2722..bcfca07 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/PullRequest.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/PullRequest.java
@@ -20,11 +20,21 @@ package org.apache.ignite.ci.github;
import com.google.common.base.MoreObjects;
import com.google.common.base.Objects;
import com.google.gson.annotations.SerializedName;
+import org.apache.ignite.ci.analysis.IVersionedEntity;
+import org.apache.ignite.ci.db.Persisted;
/**
*
*/
-public class PullRequest {
+@Persisted
+public class PullRequest implements IVersionedEntity {
+ public static final String OPEN = "open";
+ /** Latest version. */
+ private static final int LATEST_VERSION = 6;
+
+ /** Entity version. */
+ @SuppressWarnings("FieldCanBeLocal") private Integer _ver = LATEST_VERSION;
+
/** Pull Request number. You can see it at {@code apache/ignite/pull/"number"}. */
@SerializedName("number") private int num;
@@ -104,6 +114,7 @@ public class PullRequest {
return false;
PullRequest req = (PullRequest)o;
return num == req.num &&
+ Objects.equal(_ver, req._ver) &&
Objects.equal(state, req.state) &&
Objects.equal(title, req.title) &&
Objects.equal(htmlUrl, req.htmlUrl) &&
@@ -114,6 +125,17 @@ public class PullRequest {
/** {@inheritDoc} */
@Override public int hashCode() {
- return Objects.hashCode(num, state, title, htmlUrl, updatedAt, statusesUrl, gitHubUser);
+ return Objects.hashCode(_ver, num, state, title, htmlUrl, updatedAt, statusesUrl, gitHubUser);
+ }
+
+ /** {@inheritDoc} */
+ @Override public int version() {
+ return _ver == null ? -1 : _ver;
}
+
+ /** {@inheritDoc} */
+ @Override public int latestVersion() {
+ return LATEST_VERSION;
+ }
+
}
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 1d2ff00..9660b38 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
@@ -19,28 +19,34 @@ package org.apache.ignite.ci.github.ignited;
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import java.util.List;
-import java.util.concurrent.ExecutionException;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeMap;
import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
+import java.util.stream.StreamSupport;
import javax.inject.Inject;
import javax.inject.Provider;
import org.apache.ignite.Ignite;
import org.apache.ignite.IgniteCache;
import org.apache.ignite.cache.affinity.rendezvous.RendezvousAffinityFunction;
import org.apache.ignite.ci.di.AutoProfiling;
+import org.apache.ignite.ci.di.MonitoredTask;
+import org.apache.ignite.ci.di.scheduler.IScheduler;
import org.apache.ignite.ci.github.PullRequest;
import org.apache.ignite.ci.github.pure.IGitHubConnection;
-import org.apache.ignite.ci.util.ExceptionUtil;
import org.apache.ignite.configuration.CacheConfiguration;
import org.jetbrains.annotations.NotNull;
class GitHubConnIgnitedImpl implements IGitHubConnIgnited {
public static final String GIT_HUB_PR = "gitHubPr";
- private String id;
+ private String srvId;
private IGitHubConnection conn;
@Inject Provider<Ignite> igniteProvider;
+ @Inject IScheduler scheduler;
- /** Data loaded. */
+ @Deprecated
private final Cache<String, List<PullRequest>> prListCache
= CacheBuilder.newBuilder()
.maximumSize(100)
@@ -49,15 +55,15 @@ class GitHubConnIgnitedImpl implements IGitHubConnIgnited {
.build();
/** Server ID mask for cache Entries. */
- private long serverIdMask;
+ private long srvIdMaskHigh;
private IgniteCache<Long, PullRequest> prCache;
public void init(String srvId, IGitHubConnection conn) {
- id = srvId;
+ this.srvId = srvId;
this.conn = conn;
- serverIdMask = ((long)srvId.hashCode()) << 32;
+ srvIdMaskHigh = srvId.hashCode();
prCache = igniteProvider.get().getOrCreateCache(getCache8PartsConfig(GIT_HUB_PR));
}
@@ -74,11 +80,55 @@ class GitHubConnIgnitedImpl implements IGitHubConnIgnited {
/** {@inheritDoc} */
@AutoProfiling
@Override public List<PullRequest> getPullRequests() {
- try {
+ scheduler.invokeLater(this::actualizePrs, 10, TimeUnit.SECONDS);
+
+ return StreamSupport.stream(prCache.spliterator(), false)
+ .filter(entry -> entry.getKey() >> 32 == srvIdMaskHigh)
+ .filter(entry -> PullRequest.OPEN.equals(entry.getValue().getState()))
+ .map(javax.cache.Cache.Entry::getValue)
+ .collect(Collectors.toList());
+
+ /* try {
return prListCache.get("", conn::getPullRequests);
}
catch (ExecutionException e) {
throw ExceptionUtil.propagateException(e);
+ }*/
+ }
+
+ private void actualizePrs() {
+ runAtualizePrs(srvId);
+ }
+
+ /**
+ * @param srvId Server id.
+ */
+ @MonitoredTask(name = "Actualize PRs", nameExtArgIndex = 0)
+ @AutoProfiling
+ protected String runAtualizePrs(String srvId) {
+ List<PullRequest> ghData = conn.getPullRequests();
+
+ Set<Long> ids = ghData.stream().map(PullRequest::getNumber)
+ .map(this::prNumberToCacheKey)
+ .collect(Collectors.toSet());
+
+ Map<Long, PullRequest> existingEntries = prCache.getAll(ids);
+ Map<Long, PullRequest> entriesToPut = new TreeMap<>();
+
+ for (PullRequest next : ghData) {
+ long cacheKey = prNumberToCacheKey(next.getNumber());
+ PullRequest prPersisted = existingEntries.get(cacheKey);
+
+ if (prPersisted == null || !prPersisted.equals(next))
+ entriesToPut.put(cacheKey, next);
}
+
+ prCache.putAll(entriesToPut);
+
+ return "Entries saved " + entriesToPut.size();
+ }
+
+ private long prNumberToCacheKey(int prNumber) {
+ return (long)prNumber | srvIdMaskHigh << 32;
}
}
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/ignited/GitHubIgnitedModule.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/ignited/GitHubIgnitedModule.java
index fa9b0df..22c39f9 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/ignited/GitHubIgnitedModule.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/ignited/GitHubIgnitedModule.java
@@ -16,18 +16,13 @@
*/
package org.apache.ignite.ci.github.ignited;
-import com.google.common.cache.Cache;
-import com.google.common.cache.CacheBuilder;
import com.google.inject.AbstractModule;
import com.google.inject.internal.SingletonScope;
-import java.util.List;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.TimeUnit;
-import org.apache.ignite.ci.di.AutoProfiling;
-import org.apache.ignite.ci.github.PullRequest;
import org.apache.ignite.ci.github.pure.GitHubIntegrationModule;
-import org.apache.ignite.ci.util.ExceptionUtil;
+/**
+ * Requires {@link org.apache.ignite.ci.di.scheduler.SchedulerModule} to be installed
+ */
public class GitHubIgnitedModule extends AbstractModule {
/** {@inheritDoc} */
@Override protected void configure() {
@@ -35,5 +30,4 @@ public class GitHubIgnitedModule extends AbstractModule {
bind(IGitHubConnIgnitedProvider.class).to(GitHubIgnitedProvImpl.class).in(new SingletonScope());
}
-
}
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/issue/IssueDetector.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/issue/IssueDetector.java
index a7c0a45..7e2afa8 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/issue/IssueDetector.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/issue/IssueDetector.java
@@ -80,6 +80,7 @@ public class IssueDetector {
private final AtomicBoolean init = new AtomicBoolean();
private ICredentialsProv backgroundOpsCreds;
private ITcHelper backgroundOpsTcHelper;
+ @Deprecated //todo use scheduler
private ScheduledExecutorService executorService;
@Inject private Provider<CheckQueueJob> checkQueueJobProv;
diff --git a/jetty-launcher/src/main/java/org/apache/ignite/ci/TcHelperJettyLauncher.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/TcBotSystemProperties.java
similarity index 74%
copy from jetty-launcher/src/main/java/org/apache/ignite/ci/TcHelperJettyLauncher.java
copy to ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/TcBotSystemProperties.java
index d11a8e3..a77dbd2 100644
--- a/jetty-launcher/src/main/java/org/apache/ignite/ci/TcHelperJettyLauncher.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/TcBotSystemProperties.java
@@ -15,15 +15,8 @@
* limitations under the License.
*/
-package org.apache.ignite.ci;
+package org.apache.ignite.ci.tcbot;
-import static org.apache.ignite.ci.web.Launcher.*;
-
-/**
- * Starts TC Helper REST server in production mode.
- */
-public class TcHelperJettyLauncher {
- public static void main(String[] args) throws Exception {
- runServer(false);
- }
+public class TcBotSystemProperties {
+ public static final String DEV_MODE = "DEV_MODE";
}
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 26d7489..249d554 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
@@ -34,6 +34,7 @@ import org.apache.ignite.ci.ITcHelper;
import org.apache.ignite.ci.TcHelper;
import org.apache.ignite.ci.db.TcHelperDb;
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.teamcity.pure.TeamcityRecorder;
import org.apache.ignite.ci.user.ICredentialsProv;
@@ -114,6 +115,8 @@ public class CtxListener implements ServletContextListener {
try {
injector.getInstance(TcUpdatePool.class).stop();
injector.getInstance(BuildObserver.class).stop();
+
+ injector.getInstance(IScheduler.class).stop();
}
catch (Exception e) {
e.printStackTrace();
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 9c07fce..4ff0f81 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
@@ -22,6 +22,7 @@ import java.io.Console;
import java.io.File;
import java.io.IOException;
import java.io.Reader;
+import org.apache.ignite.ci.tcbot.TcBotSystemProperties;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.ServerConnector;
import org.eclipse.jetty.webapp.WebAppContext;
@@ -34,7 +35,13 @@ public class Launcher {
runServer(true);
}
+ /**
+ * @param dev Dev mode.
+ */
public static void runServer(boolean dev) throws Exception {
+ if(dev)
+ System.setProperty(TcBotSystemProperties.DEV_MODE, "true");
+
Server srv = new Server();
ServerConnector connector = new ServerConnector(srv);
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 482af1d..20958fa 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
@@ -18,6 +18,8 @@ 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.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -30,10 +32,12 @@ public class ExeptionsTraceLogger implements ExceptionMapper<Throwable> {
private static final Logger logger = LoggerFactory.getLogger(ExeptionsTraceLogger.class);
/** {@inheritDoc} */
- @Override public javax.ws.rs.core.Response toResponse(Throwable t) {
+ @Override public Response toResponse(Throwable t) {
logger.error("Error during processing request (Internal Server Error [500]). Caused by: ", t);
- return javax.ws.rs.core.Response.serverError()
- .entity(t.getMessage())
- .build();
+
+ if (Boolean.valueOf(System.getProperty(TcBotSystemProperties.DEV_MODE)))
+ t.printStackTrace();
+
+ return Response.serverError().entity(t.getMessage()).build();
}
}
\ No newline at end of file
diff --git a/jetty-launcher/build.gradle b/jetty-launcher/build.gradle
index 89f0588..c0659f0 100644
--- a/jetty-launcher/build.gradle
+++ b/jetty-launcher/build.gradle
@@ -29,7 +29,7 @@ repositories {
mainClassName = 'org.apache.ignite.ci.TcHelperJettyLauncher'
applicationDefaultJvmArgs = ["-Dteamcity.helper.home=../work",
"-Dteamcity.bot.regionsize=16", // 16g Durable Memory region
- "-Dhttp.maxConnections=120",
+ "-Dhttp.maxConnections=70",
"-server",
"-Xmx16g",
"-XX:+AlwaysPreTouch",
diff --git a/jetty-launcher/src/main/java/org/apache/ignite/ci/TcHelperJettyLauncher.java b/jetty-launcher/src/main/java/org/apache/ignite/ci/TcHelperJettyLauncher.java
index d11a8e3..ce1f991 100644
--- a/jetty-launcher/src/main/java/org/apache/ignite/ci/TcHelperJettyLauncher.java
+++ b/jetty-launcher/src/main/java/org/apache/ignite/ci/TcHelperJettyLauncher.java
@@ -23,6 +23,9 @@ import static org.apache.ignite.ci.web.Launcher.*;
* Starts TC Helper REST server in production mode.
*/
public class TcHelperJettyLauncher {
+ /**
+ * @param args Args.
+ */
public static void main(String[] args) throws Exception {
runServer(false);
}