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