Mercurial > hg > mercurial
changeset 309:33305b2022c2
Take caches and plugin data dirs from PluginConfig
line wrap: on
line diff
--- a/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/PluginConfig.java Wed Sep 14 13:46:50 2011 +0400 +++ b/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/PluginConfig.java Wed Sep 14 15:00:30 2011 +0400 @@ -1,10 +1,19 @@ package jetbrains.buildServer.buildTriggers.vcs.mercurial; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.File; + /** * @author dmitry.neverov */ public interface PluginConfig { + @Nullable String getHgPath(); + @NotNull + File getCachesDir(); + }
--- a/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/CommandFactory.java Wed Sep 14 13:46:50 2011 +0400 +++ b/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/CommandFactory.java Wed Sep 14 15:00:30 2011 +0400 @@ -4,7 +4,6 @@ import jetbrains.buildServer.buildTriggers.vcs.mercurial.command.MergeBaseCommand; import jetbrains.buildServer.buildTriggers.vcs.mercurial.command.Settings; import jetbrains.buildServer.buildTriggers.vcs.mercurial.command.VersionCommand; -import jetbrains.buildServer.serverSide.ServerPaths; import jetbrains.buildServer.util.FileUtil; import jetbrains.buildServer.vcs.VcsException; import org.jetbrains.annotations.NotNull; @@ -25,9 +24,9 @@ private final File myLogTemplate; - public CommandFactory(@NotNull final ServerPaths paths) throws IOException { - myDefaultWorkingDir = new File(paths.getCachesDir(), "mercurial"); - myLogTemplate = createLogTemplate(paths.getPluginDataDirectory()); + public CommandFactory(@NotNull final ServerPluginConfig config) throws IOException { + myDefaultWorkingDir = config.getCachesDir(); + myLogTemplate = createLogTemplate(config.getPluginDataDir()); }
--- a/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupport.java Wed Sep 14 13:46:50 2011 +0400 +++ b/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupport.java Wed Sep 14 15:00:30 2011 +0400 @@ -64,16 +64,15 @@ private final CommandFactory myCommandFactory; public MercurialVcsSupport(@NotNull final VcsManager vcsManager, - @NotNull final ServerPaths paths, @NotNull final SBuildServer server, @NotNull final EventDispatcher<BuildServerListener> dispatcher, @NotNull final ServerPluginConfig config, @NotNull final HgPathProvider hgPathProvider, @NotNull final CommandFactory commandFactory) { myVcsManager = vcsManager; - myDefaultWorkFolderParent = new File(paths.getCachesDir(), "mercurial"); + myConfig = config; + myDefaultWorkFolderParent = myConfig.getCachesDir(); myMirrorManager = new MirrorManager(myDefaultWorkFolderParent); - myConfig = config; myHgPathProvider = hgPathProvider; myCommandFactory = commandFactory; dispatcher.addListener(new BuildServerAdapter() {
--- a/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerPluginConfig.java Wed Sep 14 13:46:50 2011 +0400 +++ b/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerPluginConfig.java Wed Sep 14 15:00:30 2011 +0400 @@ -1,5 +1,9 @@ package jetbrains.buildServer.buildTriggers.vcs.mercurial; +import org.jetbrains.annotations.NotNull; + +import java.io.File; + /** * @author dmitry.neverov */ @@ -7,4 +11,7 @@ public boolean isUsePullProtocol(); + @NotNull + public File getPluginDataDir(); + }
--- a/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerPluginConfigImpl.java Wed Sep 14 13:46:50 2011 +0400 +++ b/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerPluginConfigImpl.java Wed Sep 14 15:00:30 2011 +0400 @@ -1,13 +1,25 @@ package jetbrains.buildServer.buildTriggers.vcs.mercurial; +import jetbrains.buildServer.serverSide.ServerPaths; import jetbrains.buildServer.serverSide.TeamCityProperties; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import java.io.File; + /** * @author dmitry.neverov */ public class ServerPluginConfigImpl implements ServerPluginConfig { + private final File myCachesDir; + private final File myPluginDataDir; + + public ServerPluginConfigImpl(@NotNull final ServerPaths paths) { + myCachesDir = new File(paths.getCachesDir(), "mercurial"); + myPluginDataDir = paths.getPluginDataDirectory(); + } + public boolean isUsePullProtocol() { return TeamCityProperties.getBooleanOrTrue("teamcity.hg.use.pull.protocol"); } @@ -16,4 +28,14 @@ public String getHgPath() { return TeamCityProperties.getPropertyOrNull("teamcity.hg.server.path"); } + + @NotNull + public File getCachesDir() { + return myCachesDir; + } + + @NotNull + public File getPluginDataDir() { + return myPluginDataDir; + } }
--- a/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupportTest.java Wed Sep 14 13:46:50 2011 +0400 +++ b/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupportTest.java Wed Sep 14 15:00:30 2011 +0400 @@ -44,7 +44,6 @@ public class MercurialVcsSupportTest extends BaseMercurialTestCase { private MercurialVcsSupport myVcs; - private ServerPaths myServerPaths; private String myRep2Path = new File("mercurial-tests/testData/rep2").getAbsolutePath(); private ServerPluginConfig myPluginConfig; @@ -60,11 +59,11 @@ EventDispatcher<BuildServerListener> dispatcher = EventDispatcher.create(BuildServerListener.class); - File systemDir = myTempFiles.createTempDir(); - myServerPaths = new ServerPaths(systemDir.getAbsolutePath(), systemDir.getAbsolutePath(), systemDir.getAbsolutePath()); - assertTrue(new File(myServerPaths.getCachesDir()).mkdirs()); - myPluginConfig = createPluginConfig(); - myVcs = new MercurialVcsSupport((VcsManager)vcsManagerMock.proxy(), myServerPaths, (SBuildServer)serverMock.proxy(), dispatcher, myPluginConfig, new ServerHgPathProvider(myPluginConfig), new CommandFactory(myServerPaths)); + myPluginConfig = new ServerPluginConfigBuilder() + .cachesDir(myTempFiles.createTempDir()) + .pluginDataDir(myTempFiles.createTempDir()) + .build(); + myVcs = new MercurialVcsSupport((VcsManager)vcsManagerMock.proxy(), (SBuildServer)serverMock.proxy(), dispatcher, myPluginConfig, new ServerHgPathProvider(myPluginConfig), new CommandFactory(myPluginConfig)); } protected String getTestDataPath() { @@ -151,7 +150,7 @@ ByteArrayOutputStream output = buildPatch(vcsRoot, null, "4:b06a290a363b", new CheckoutRules("")); checkPatchResult(output.toByteArray()); - File clonedReposParentDir = new File(myServerPaths.getCachesDir(), "mercurial"); + File clonedReposParentDir = myPluginConfig.getCachesDir(); assertTrue(clonedReposParentDir.isDirectory()); assertTrue(1 == clonedReposParentDir.list(new FilenameFilter() { public boolean accept(final File dir, final String name) { @@ -502,17 +501,5 @@ public void test_collect_changes_using_checkout_rules() { assertTrue(myVcs.getCollectChangesPolicy() instanceof CollectChangesByCheckoutRules); } - - private ServerPluginConfig createPluginConfig() { - return new ServerPluginConfig() { - public boolean isUsePullProtocol() { - return true; - } - - public String getHgPath() { - return null; - } - }; - } }
--- a/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerPluginConfigBuilder.java Wed Sep 14 13:46:50 2011 +0400 +++ b/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerPluginConfigBuilder.java Wed Sep 14 15:00:30 2011 +0400 @@ -2,6 +2,8 @@ import org.jetbrains.annotations.NotNull; +import java.io.File; + /** * @author dmitry.neverov */ @@ -9,11 +11,14 @@ private boolean myUsePullProtocol = true; private String myHgPath; + private File myCachesDir; + private File myPluginDataDir; @NotNull public ServerPluginConfig build() { return new ServerPluginConfig() { + public boolean isUsePullProtocol() { return myUsePullProtocol; } @@ -21,6 +26,20 @@ public String getHgPath() { return myHgPath; } + + @NotNull + public File getCachesDir() { + if (myCachesDir == null) + throw new IllegalStateException("Caches dir is not set"); + return myCachesDir; + } + + @NotNull + public File getPluginDataDir() { + if (myPluginDataDir == null) + throw new IllegalStateException("Plugin data dir is not set"); + return myPluginDataDir; + } }; } @@ -34,4 +53,14 @@ myHgPath = hgPath; return this; } + + public ServerPluginConfigBuilder cachesDir(File cachesDir) { + myCachesDir = cachesDir; + return this; + } + + public ServerPluginConfigBuilder pluginDataDir(File pluginDataDir) { + myPluginDataDir = pluginDataDir; + return this; + } }
--- a/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/SettingsTest.java Wed Sep 14 13:46:50 2011 +0400 +++ b/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/SettingsTest.java Wed Sep 14 15:00:30 2011 +0400 @@ -123,6 +123,7 @@ } private Settings createSettings(@NotNull final VcsRoot root) { - return new Settings(new ServerHgPathProvider(new ServerPluginConfigImpl()), root); + ServerPluginConfig config = new ServerPluginConfigBuilder().build(); + return new Settings(new ServerHgPathProvider(config), root); } }
--- a/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/VcsRootBuilder.java Wed Sep 14 13:46:50 2011 +0400 +++ b/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/VcsRootBuilder.java Wed Sep 14 15:00:30 2011 +0400 @@ -18,7 +18,7 @@ private String myHgPath; public VcsRootImpl build() throws IOException { - VcsRootImpl vcsRoot = new VcsRootImpl(1, Constants.VCS_NAME); + VcsRootImpl vcsRoot = new VcsRootImpl(myRootId, Constants.VCS_NAME); vcsRoot.addProperty(Constants.REPOSITORY_PROP, myRepository); vcsRoot.addProperty(Constants.HG_COMMAND_PATH_PROP, myHgPath != null ? myHgPath : Util.getHgPath()); vcsRoot.addProperty(Constants.USERNAME, myUsername);
--- a/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/BaseCommandTestCase.java Wed Sep 14 13:46:50 2011 +0400 +++ b/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/BaseCommandTestCase.java Wed Sep 14 15:00:30 2011 +0400 @@ -73,7 +73,8 @@ MirrorManager mirrorManager = new MirrorManager(parentDir); VcsRoot vcsRoot = new VcsRootImpl(1, vcsRootProps); - Settings settings = new Settings(new ServerHgPathProvider(new ServerPluginConfigImpl()), vcsRoot); + ServerPluginConfig config = new ServerPluginConfigBuilder().build(); + Settings settings = new Settings(new ServerHgPathProvider(config), vcsRoot); final File workingDir = mirrorManager.getMirrorDir(settings.getRepositoryUrl()); settings.setCustomWorkingDir(workingDir); try {
--- a/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CloneCommandTest.java Wed Sep 14 13:46:50 2011 +0400 +++ b/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CloneCommandTest.java Wed Sep 14 15:00:30 2011 +0400 @@ -42,7 +42,8 @@ root.addProperty(Constants.HG_COMMAND_PATH_PROP, Util.getHgPath()); File workingDir = myTempFiles.createTempDir(); - Settings settings = new Settings(new ServerHgPathProvider(new ServerPluginConfigImpl()), root); + ServerPluginConfig config = new ServerPluginConfigBuilder().cachesDir(myTempFiles.createTempDir()).build(); + Settings settings = new Settings(new ServerHgPathProvider(config), root); settings.setCustomWorkingDir(workingDir); CloneCommand clone = new CloneCommand(settings, workingDir);
--- a/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/VersionCommandTest.java Wed Sep 14 13:46:50 2011 +0400 +++ b/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/VersionCommandTest.java Wed Sep 14 15:00:30 2011 +0400 @@ -1,9 +1,6 @@ package jetbrains.buildServer.buildTriggers.vcs.mercurial.command; -import jetbrains.buildServer.buildTriggers.vcs.mercurial.HgVersion; -import jetbrains.buildServer.buildTriggers.vcs.mercurial.ServerHgPathProvider; -import jetbrains.buildServer.buildTriggers.vcs.mercurial.ServerPluginConfigImpl; -import jetbrains.buildServer.buildTriggers.vcs.mercurial.VcsRootBuilder; +import jetbrains.buildServer.buildTriggers.vcs.mercurial.*; import jetbrains.buildServer.vcs.impl.VcsRootImpl; import junit.framework.TestCase; import org.testng.annotations.Test; @@ -18,7 +15,8 @@ public void test() throws Exception { VcsRootImpl root = new VcsRootBuilder().repository("some/repository").build(); - Settings settings = new Settings(new ServerHgPathProvider(new ServerPluginConfigImpl()), root); + ServerPluginConfig config = new ServerPluginConfigBuilder().build(); + Settings settings = new Settings(new ServerHgPathProvider(config), root); VersionCommand versionCommand = new VersionCommand(settings, new File("..")); HgVersion version = versionCommand.execute(); assertNotNull(version);