1 package org.apache.maven.plugin.cxx.utils.release;
2
3 /*
4 * Copyright (C) 2011-2016, Neticoa SAS France - Tous droits réservés.
5 * Author(s) : Franck Bonin, Neticoa SAS France
6 *
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 *
19 */
20
21 import java.util.List;
22 import org.apache.maven.plugin.MojoExecutionException;
23 import org.apache.maven.plugin.MojoFailureException;
24 import org.apache.maven.project.MavenProject;
25 import org.apache.maven.shared.release.env.ReleaseEnvironment;
26 import org.apache.maven.shared.release.ReleaseResult;
27 import org.apache.maven.plugin.logging.Log;
28
29 /**
30 * A phase in the cxx release/branch goal.
31 *
32 * $FB derived from org.apache.maven.shared.release.phase.ReleasePhase;
33 * @author
34 */
35 public interface CxxReleasePhase
36 {
37 /**
38 * The Plexus role.
39 */
40 String ROLE = CxxReleasePhase.class.getName();
41
42 /**
43 * Execute the phase.
44 *
45 * @param releaseDescriptor the configuration to use
46 * @param releaseEnvironment the environmental configuration, such as Maven settings, Maven home, etc.
47 * @param reactorProjects the reactor projects
48 * @throws ReleaseExecutionException an exception during the execution of the phase
49 * @throws ReleaseFailureException a failure during the execution of the phase
50 * @return the release result
51 */
52 ReleaseResult run( CxxReleaseDescriptor releaseDescriptor, ReleaseEnvironment releaseEnvironment,
53 List<MavenProject> reactorProjects )
54 throws MojoExecutionException, MojoFailureException;
55
56 /**
57 * Clean up after a phase if it leaves any additional files in the checkout.
58 *
59 * @param reactorProjects the reactor projects
60 * @return the release result
61 */
62 ReleaseResult clean( List<MavenProject> reactorProjects );
63
64 /**
65 *
66 *
67 * @param log
68 */
69 void setLog( Log log );
70 }
71