1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.shared.release.phase;
20
21 import org.apache.maven.scm.manager.NoSuchScmProviderException;
22 import org.apache.maven.scm.provider.ScmProvider;
23 import org.apache.maven.scm.repository.ScmRepository;
24 import org.apache.maven.scm.repository.ScmRepositoryException;
25 import org.apache.maven.shared.release.ReleaseExecutionException;
26 import org.apache.maven.shared.release.ReleaseFailureException;
27 import org.apache.maven.shared.release.config.ReleaseDescriptor;
28 import org.apache.maven.shared.release.env.ReleaseEnvironment;
29 import org.apache.maven.shared.release.scm.ReleaseScmRepositoryException;
30 import org.apache.maven.shared.release.scm.ScmRepositoryConfigurator;
31
32
33
34
35
36
37 public abstract class AbstractReleasePomsPhase extends AbstractReleasePhase {
38
39
40
41 private final ScmRepositoryConfigurator scmRepositoryConfigurator;
42
43 protected AbstractReleasePomsPhase(ScmRepositoryConfigurator scmRepositoryConfigurator) {
44 this.scmRepositoryConfigurator = scmRepositoryConfigurator;
45 }
46
47 protected ScmRepository getScmRepository(ReleaseDescriptor releaseDescriptor, ReleaseEnvironment releaseEnvironment)
48 throws ReleaseFailureException, ReleaseExecutionException {
49 try {
50 return scmRepositoryConfigurator.getConfiguredRepository(
51 releaseDescriptor, releaseEnvironment.getSettings());
52 } catch (ScmRepositoryException exception) {
53 throw new ReleaseScmRepositoryException(exception.getMessage(), exception.getValidationMessages());
54 } catch (NoSuchScmProviderException exception) {
55 throw new ReleaseExecutionException(
56 "Unable to configure SCM repository: " + exception.getMessage(), exception);
57 }
58 }
59
60 protected ScmProvider getScmProvider(ScmRepository scmRepository) throws ReleaseExecutionException {
61 try {
62 return scmRepositoryConfigurator.getRepositoryProvider(scmRepository);
63 } catch (NoSuchScmProviderException exception) {
64 throw new ReleaseExecutionException(
65 "Unable to configure SCM repository: " + exception.getMessage(), exception);
66 }
67 }
68 }