1 package org.apache.maven.shared.release.stubs;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.util.HashMap;
23 import java.util.Map;
24
25 import org.apache.maven.scm.manager.NoSuchScmProviderException;
26 import org.apache.maven.scm.repository.ScmRepository;
27 import org.apache.maven.scm.repository.ScmRepositoryException;
28
29
30
31
32 public class ScmManagerStub
33 extends org.apache.maven.scm.manager.ScmManagerStub
34 {
35 private Exception e;
36
37 private Map<String, ScmRepository> scmRepositoriesForUrl = new HashMap<>();
38
39 @Override
40 public ScmRepository makeScmRepository( String scmUrl )
41 throws ScmRepositoryException, NoSuchScmProviderException
42 {
43 if ( e != null )
44 {
45 if ( e instanceof ScmRepositoryException )
46 {
47 throw (ScmRepositoryException) e;
48 }
49 else if ( e instanceof NoSuchScmProviderException )
50 {
51 throw (NoSuchScmProviderException) e;
52 }
53 else
54 {
55 throw new RuntimeException( e );
56 }
57 }
58
59 if ( scmRepositoriesForUrl.isEmpty() )
60 {
61
62 return getScmRepository();
63 }
64
65 ScmRepository repository = scmRepositoriesForUrl.get( scmUrl );
66 if ( repository == null )
67 {
68 throw new ScmRepositoryException( "Unexpected URL: " + scmUrl );
69 }
70 return repository;
71 }
72
73 public void addScmRepositoryForUrl( String url, ScmRepository repository )
74 {
75 scmRepositoriesForUrl.put( url, repository );
76 }
77
78 public void setException( Exception e )
79 {
80 this.e = e;
81 }
82 }