View Javadoc

1   package org.apache.maven.shared.release.phase;
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  import org.apache.maven.project.MavenProject;
23  import org.apache.maven.settings.Settings;
24  import org.apache.maven.shared.release.ReleaseExecutionException;
25  import org.apache.maven.shared.release.ReleaseFailureException;
26  import org.apache.maven.shared.release.ReleaseResult;
27  import org.apache.maven.shared.release.config.ReleaseDescriptor;
28  import org.apache.maven.shared.release.env.DefaultReleaseEnvironment;
29  import org.codehaus.plexus.logging.AbstractLogEnabled;
30  
31  import java.util.List;
32  
33  /**
34   * Base class for all phases.
35   *
36   * @author <a href="mailto:brett@apache.org">Brett Porter</a>
37   */
38  public abstract class AbstractReleasePhase
39      extends AbstractLogEnabled
40      implements ReleasePhase
41  {
42      public ReleaseResult clean( List<MavenProject> reactorProjects )
43      {
44          // nothing to do by default
45  
46          return getReleaseResultSuccess();
47      }
48  
49      public ReleaseResult execute( ReleaseDescriptor releaseDescriptor,
50                                    Settings settings,
51                                    List<MavenProject> reactorProjects )
52          throws ReleaseExecutionException, ReleaseFailureException
53      {
54          return execute( releaseDescriptor, new DefaultReleaseEnvironment().setSettings( settings ), reactorProjects );
55      }
56  
57      public ReleaseResult simulate( ReleaseDescriptor releaseDescriptor,
58                                     Settings settings,
59                                     List<MavenProject> reactorProjects )
60          throws ReleaseExecutionException, ReleaseFailureException
61      {
62          return simulate( releaseDescriptor, new DefaultReleaseEnvironment().setSettings( settings ), reactorProjects );
63      }
64  
65      protected void logInfo( ReleaseResult result, String message )
66      {
67          result.appendInfo( message );
68          getLogger().info( message );
69      }
70  
71      protected void logWarn( ReleaseResult result, String message )
72      {
73          result.appendWarn( message );
74          getLogger().warn( message );
75      }
76  
77      protected void logError( ReleaseResult result, String message )
78      {
79          result.appendWarn( message );
80          getLogger().error( message );
81      }
82  
83      protected void logDebug( ReleaseResult result, String message )
84      {
85          result.appendDebug( message );
86          getLogger().debug( message );
87      }
88  
89      protected void logDebug( ReleaseResult result, String message, Exception e )
90      {
91          result.appendDebug( message, e );
92          getLogger().debug( message, e );
93      }
94      
95      protected ReleaseResult getReleaseResultSuccess()
96      {
97          ReleaseResult result = new ReleaseResult();
98  
99          result.setResultCode( ReleaseResult.SUCCESS );
100 
101         return result;
102     }
103 }