Mercurial > hg > mercurial
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 } |