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