annotate mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerPluginConfigImpl.java @ 579:da75e774d237

Clean mirrors on the server relying on last used time
author Dmitry Neverov <dmitry.neverov@jetbrains.com>
date Wed, 27 Mar 2013 21:49:46 +0400
parents 40c085517770
children d693048e77ae
rev   line source
256
73708ca4521f Add ability to disable pull protocol
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
1 package jetbrains.buildServer.buildTriggers.vcs.mercurial;
73708ca4521f Add ability to disable pull protocol
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
2
456
f9bf9ec48347 Option to force use of revsets for some vcs root
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 442
diff changeset
3 import com.intellij.openapi.diagnostic.Logger;
514
89e9c06fbc76 Move TeamCity-specific logic to separate module
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 511
diff changeset
4 import jetbrains.buildServer.serverSide.CachePaths;
256
73708ca4521f Add ability to disable pull protocol
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
5 import jetbrains.buildServer.serverSide.TeamCityProperties;
579
da75e774d237 Clean mirrors on the server relying on last used time
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 578
diff changeset
6 import jetbrains.buildServer.util.Dates;
309
33305b2022c2 Take caches and plugin data dirs from PluginConfig
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 280
diff changeset
7 import org.jetbrains.annotations.NotNull;
280
8c1fd2e565ae Implement mercurial detection on the agents
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 256
diff changeset
8 import org.jetbrains.annotations.Nullable;
256
73708ca4521f Add ability to disable pull protocol
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
9
309
33305b2022c2 Take caches and plugin data dirs from PluginConfig
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 280
diff changeset
10 import java.io.File;
256
73708ca4521f Add ability to disable pull protocol
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
11
73708ca4521f Add ability to disable pull protocol
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
12 /**
73708ca4521f Add ability to disable pull protocol
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
13 * @author dmitry.neverov
73708ca4521f Add ability to disable pull protocol
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
14 */
329
ef091b782acc Add ability to specify timeout for pull operation (teamcity.hg.pull.timeout.seconds)
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 256
diff changeset
15 public class ServerPluginConfigImpl implements ServerPluginConfig {
ef091b782acc Add ability to specify timeout for pull operation (teamcity.hg.pull.timeout.seconds)
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 256
diff changeset
16
456
f9bf9ec48347 Option to force use of revsets for some vcs root
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 442
diff changeset
17 private static final Logger LOG = Logger.getInstance(ServerPluginConfigImpl.class.getName());
329
ef091b782acc Add ability to specify timeout for pull operation (teamcity.hg.pull.timeout.seconds)
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 256
diff changeset
18 private static final String PULL_TIMEOUT_SECONDS = "teamcity.hg.pull.timeout.seconds";
330
dd55596a5753 Add ability to specify timeout for pull operation (teamcity.hg.pull.timeout.seconds)
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 309
diff changeset
19 public static final int DEFAULT_PULL_TIMEOUT_SECONDS = 3600;
dd55596a5753 Add ability to specify timeout for pull operation (teamcity.hg.pull.timeout.seconds)
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 309
diff changeset
20
309
33305b2022c2 Take caches and plugin data dirs from PluginConfig
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 280
diff changeset
21 private final File myCachesDir;
33305b2022c2 Take caches and plugin data dirs from PluginConfig
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 280
diff changeset
22
514
89e9c06fbc76 Move TeamCity-specific logic to separate module
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 511
diff changeset
23 public ServerPluginConfigImpl(@NotNull final CachePaths paths) {
89e9c06fbc76 Move TeamCity-specific logic to separate module
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 511
diff changeset
24 myCachesDir = paths.getCacheDirectory("mercurial");
309
33305b2022c2 Take caches and plugin data dirs from PluginConfig
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 280
diff changeset
25 }
256
73708ca4521f Add ability to disable pull protocol
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
26
73708ca4521f Add ability to disable pull protocol
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
27 public boolean isUsePullProtocol() {
73708ca4521f Add ability to disable pull protocol
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
28 return TeamCityProperties.getBooleanOrTrue("teamcity.hg.use.pull.protocol");
73708ca4521f Add ability to disable pull protocol
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
29 }
329
ef091b782acc Add ability to specify timeout for pull operation (teamcity.hg.pull.timeout.seconds)
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 256
diff changeset
30
280
8c1fd2e565ae Implement mercurial detection on the agents
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 256
diff changeset
31 @Nullable
8c1fd2e565ae Implement mercurial detection on the agents
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 256
diff changeset
32 public String getHgPath() {
8c1fd2e565ae Implement mercurial detection on the agents
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 256
diff changeset
33 return TeamCityProperties.getPropertyOrNull("teamcity.hg.server.path");
8c1fd2e565ae Implement mercurial detection on the agents
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 256
diff changeset
34 }
309
33305b2022c2 Take caches and plugin data dirs from PluginConfig
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 280
diff changeset
35
33305b2022c2 Take caches and plugin data dirs from PluginConfig
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 280
diff changeset
36 @NotNull
33305b2022c2 Take caches and plugin data dirs from PluginConfig
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 280
diff changeset
37 public File getCachesDir() {
33305b2022c2 Take caches and plugin data dirs from PluginConfig
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 280
diff changeset
38 return myCachesDir;
33305b2022c2 Take caches and plugin data dirs from PluginConfig
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 280
diff changeset
39 }
33305b2022c2 Take caches and plugin data dirs from PluginConfig
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 280
diff changeset
40
419
743dc1646555 Add option to not use revsets
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 408
diff changeset
41 public boolean dontUseRevsets() {
743dc1646555 Add option to not use revsets
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 408
diff changeset
42 return TeamCityProperties.getBoolean("teamcity.hg.dont.use.revsets");
743dc1646555 Add option to not use revsets
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 408
diff changeset
43 }
743dc1646555 Add option to not use revsets
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 408
diff changeset
44
329
ef091b782acc Add ability to specify timeout for pull operation (teamcity.hg.pull.timeout.seconds)
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 256
diff changeset
45 public int getPullTimeout() {
ef091b782acc Add ability to specify timeout for pull operation (teamcity.hg.pull.timeout.seconds)
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 256
diff changeset
46 int timeout = TeamCityProperties.getInteger(PULL_TIMEOUT_SECONDS, DEFAULT_PULL_TIMEOUT_SECONDS);
ef091b782acc Add ability to specify timeout for pull operation (teamcity.hg.pull.timeout.seconds)
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 256
diff changeset
47 return timeout > 0 ? timeout : DEFAULT_PULL_TIMEOUT_SECONDS;
ef091b782acc Add ability to specify timeout for pull operation (teamcity.hg.pull.timeout.seconds)
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 256
diff changeset
48 }
442
6c43663744d9 getCurrentVersion do pull only when remote repository is updated
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 419
diff changeset
49
565
844fc8f99c29 Add ability to limit number of nodes in DAG
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 460
diff changeset
50 public int getMaxDagNodesCount() {
844fc8f99c29 Add ability to limit number of nodes in DAG
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 460
diff changeset
51 return TeamCityProperties.getInteger("teamcity.hg.maxDagNodesCount", 0);
844fc8f99c29 Add ability to limit number of nodes in DAG
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 460
diff changeset
52 }
844fc8f99c29 Add ability to limit number of nodes in DAG
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 460
diff changeset
53
578
40c085517770 Truncate command output in the logs
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 571
diff changeset
54 public int getLogOutputLimit() {
40c085517770 Truncate command output in the logs
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 571
diff changeset
55 return TeamCityProperties.getInteger("teamcity.hg.logOutputLimitChars", 2048);
40c085517770 Truncate command output in the logs
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 571
diff changeset
56 }
40c085517770 Truncate command output in the logs
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 571
diff changeset
57
511
f2666e817701 Detect changes in subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 460
diff changeset
58 public boolean detectSubrepoChanges() {
546
dc7aae21ef23 Use single option for subrepo changes
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 542
diff changeset
59 return TeamCityProperties.getBooleanOrTrue("teamcity.hg.detectSubrepoChanges");
538
8468457fe4d3 Report subrepo changes - initial version
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 529
diff changeset
60 }
8468457fe4d3 Report subrepo changes - initial version
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 529
diff changeset
61
529
33a6be414903 TW-17489 support bookmarks
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 514
diff changeset
62 public boolean bookmarksEnabled() {
33a6be414903 TW-17489 support bookmarks
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 514
diff changeset
63 return TeamCityProperties.getBooleanOrTrue("teamcity.hg.enableBookmarks");
33a6be414903 TW-17489 support bookmarks
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 514
diff changeset
64 }
579
da75e774d237 Clean mirrors on the server relying on last used time
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 578
diff changeset
65
da75e774d237 Clean mirrors on the server relying on last used time
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 578
diff changeset
66 public long getMirrorExpirationTimeoutMillis() {
da75e774d237 Clean mirrors on the server relying on last used time
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 578
diff changeset
67 int days = TeamCityProperties.getInteger("teamcity.hg.mirrorExpirationTimeoutDays", 7);
da75e774d237 Clean mirrors on the server relying on last used time
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 578
diff changeset
68 return days * Dates.ONE_DAY;
da75e774d237 Clean mirrors on the server relying on last used time
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 578
diff changeset
69 }
256
73708ca4521f Add ability to disable pull protocol
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
70 }