annotate mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialUrlSupport.java @ 678:fd0c1e91bd46

mercurial url support + some tests
author Pavel Sher <pavel.sher@gmail.com>
date Sun, 24 Nov 2013 17:22:43 +0100
parents
children 31a1aca3305c
rev   line source
678
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
1 package jetbrains.buildServer.buildTriggers.vcs.mercurial;
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
2
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
3 import jetbrains.buildServer.vcs.*;
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
4 import jetbrains.buildServer.vcs.impl.VcsRootImpl;
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
5 import org.jetbrains.annotations.NotNull;
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
6 import org.jetbrains.annotations.Nullable;
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
7
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
8 import java.util.HashMap;
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
9 import java.util.Map;
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
10
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
11 public class MercurialUrlSupport implements UrlSupport {
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
12
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
13 private final MercurialVcsSupport myVcsSupport;
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
14
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
15 public MercurialUrlSupport(@NotNull MercurialVcsSupport vcsSupport) {
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
16 myVcsSupport = vcsSupport;
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
17 }
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
18
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
19 @Nullable
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
20 public Map<String, String> convertToVcsRootProperties(@NotNull VcsUrl url) throws VcsException {
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
21 String fetchUrl = url.getUrl();
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
22
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
23 boolean testRequired = true;
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
24 MavenVcsUrl mavenUrl = url.asMavenVcsUrl();
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
25 if (mavenUrl != null && !"hg".equals(mavenUrl.getProviderSchema())) {
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
26 return null;
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
27 }
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
28
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
29 if (mavenUrl != null) {
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
30 fetchUrl = mavenUrl.getProviderSpecificPart();
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
31 testRequired = false;
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
32 }
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
33
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
34 Map<String, String> res = new HashMap<String, String>(myVcsSupport.getDefaultVcsProperties());
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
35 res.put(Constants.REPOSITORY_PROP, fetchUrl);
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
36 Credentials credentials = url.getCredentials();
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
37 if (credentials != null) {
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
38 res.put(Constants.USERNAME, credentials.getUsername());
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
39 res.put(Constants.PASSWORD, credentials.getPassword());
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
40 }
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
41
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
42 if (testRequired) {
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
43 try {
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
44 TestConnectionSupport testConnectionSupport = myVcsSupport.getTestConnectionSupport();
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
45 assert testConnectionSupport != null;
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
46 testConnectionSupport.testConnection(new VcsRootImpl(-1, res));
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
47 } catch (VcsException e) {
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
48 return null;
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
49 }
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
50 }
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
51
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
52 return res;
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
53 }
fd0c1e91bd46 mercurial url support + some tests
Pavel Sher <pavel.sher@gmail.com>
parents:
diff changeset
54 }