1 package org.apache.maven.shared.release; 2 3 /* 4 * Licensed to the Apache Software Foundation (ASF) under one 5 * or more contributor license agreements. See the NOTICE file 6 * distributed with this work for additional information 7 * regarding copyright ownership. The ASF licenses this file 8 * to you under the Apache License, Version 2.0 (the 9 * "License"); you may not use this file except in compliance 10 * with the License. You may obtain a copy of the License at 11 * 12 * http://www.apache.org/licenses/LICENSE-2.0 13 * 14 * Unless required by applicable law or agreed to in writing, 15 * software distributed under the License is distributed on an 16 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 17 * KIND, either express or implied. See the License for the 18 * specific language governing permissions and limitations 19 * under the License. 20 */ 21 22 /** 23 * Release management classes. 24 * 25 * @author <a href="mailto:brett@apache.org">Brett Porter</a> 26 */ 27 public interface ReleaseManager 28 { 29 /** 30 * Prepare a release. 31 * 32 * @param prepareRequest all prepare arguments 33 * @throws ReleaseExecutionException if there is a problem performing the release 34 * @throws ReleaseFailureException if there is a problem performing the release 35 * @since 2.3 36 */ 37 void prepare( ReleasePrepareRequest prepareRequest ) throws ReleaseExecutionException, ReleaseFailureException; 38 39 ReleaseResult prepareWithResult( ReleasePrepareRequest prepareRequest ); 40 41 ReleaseResult performWithResult( ReleasePerformRequest performRequest ); 42 43 /** 44 * Perform a release 45 * 46 * @param performRequest all perform arguments 47 * @throws ReleaseExecutionException if there is a problem performing the release 48 * @throws ReleaseFailureException if there is a problem performing the release 49 * @since 2.3 50 */ 51 void perform( ReleasePerformRequest performRequest ) 52 throws ReleaseExecutionException, ReleaseFailureException; 53 54 /** 55 * Clean a release. 56 * 57 * @param cleanRequest all clean arguments 58 * @throws ReleaseFailureException 59 * @since 2.3 60 */ 61 void clean( ReleaseCleanRequest cleanRequest ) throws ReleaseFailureException; 62 63 /** 64 * Rollback changes made by the previous release 65 * 66 * @param rollbackRequest all rollback arguments 67 * @throws ReleaseExecutionException if there is a problem during release rollback 68 * @throws ReleaseFailureException if there is a problem during release rollback 69 * @since 2.3 70 */ 71 void rollback( ReleaseRollbackRequest rollbackRequest ) 72 throws ReleaseExecutionException, ReleaseFailureException; 73 74 /** 75 * Branch a project 76 * 77 * @param branchRequest all branch arguments 78 * @throws ReleaseExecutionException if there is a problem during release branch 79 * @throws ReleaseFailureException if there is a problem during release branch 80 * @since 2.3 81 */ 82 void branch( ReleaseBranchRequest branchRequest ) throws ReleaseExecutionException, ReleaseFailureException; 83 84 /** 85 * Update version numbers for a project 86 * 87 * @param updateVersionsRequest all update versions arguments 88 * @throws ReleaseExecutionException if there is a problem during update versions 89 * @throws ReleaseFailureException if there is a problem during update versions 90 * @since 2.3 91 */ 92 void updateVersions( ReleaseUpdateVersionsRequest updateVersionsRequest ) 93 throws ReleaseExecutionException, ReleaseFailureException; 94 }