View Javadoc

1   package org.apache.tomcat.maven.plugin.tomcat6;
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.plugin.MojoExecutionException;
23  import org.apache.maven.plugins.annotations.Mojo;
24  import org.apache.maven.plugins.annotations.Parameter;
25  import org.apache.maven.plugins.annotations.ResolutionScope;
26  import org.apache.tomcat.maven.common.run.EmbeddedRegistry;
27  
28  
29  /**
30   * <p>
31   * Shuts down all possibly started embedded Tomcat servers. This will be automatically done
32   * through a shutdown hook or you may call this Mojo to shut them down explictly.
33   * </p>
34   * <p>
35   * By default the <code>shutdown</code> goal is not bound to any phase. For integration tests
36   * you might want to bind it to <code>post-integration-test</code>.
37   * </p>
38   *
39   * @author Mark Michaelis
40   * @since 1.1
41   */
42  @Mojo( name = "shutdown", requiresDependencyResolution = ResolutionScope.RUNTIME, threadSafe = true )
43  public class ShutdownMojo
44      extends AbstractI18NTomcat6Mojo
45  {
46  
47      /**
48       * Ignore error when shutdown
49       *
50       * @since 2.0
51       */
52      @Parameter( property = "maven.tomcat.skipErrorOnShutdown", defaultValue = "false" )
53      protected boolean skipErrorOnShutdown;
54  
55      /**
56       * Skip execution
57       *
58       * @since 2.0
59       */
60      @Parameter( property = "maven.tomcat.skipShutdown", defaultValue = "false" )
61      protected boolean skip;
62  
63      /**
64       * Shuts down all embedded tomcats which got started up to now.
65       *
66       * @throws MojoExecutionException if shutting down one or all servers failed
67       */
68      public void execute()
69          throws MojoExecutionException
70      {
71          if ( skip )
72          {
73              getLog().info( "skip execution" );
74              return;
75          }
76          try
77          {
78              EmbeddedRegistry.getInstance().shutdownAll( getLog() );
79          }
80          catch ( Exception e )
81          {
82              if ( !skipErrorOnShutdown )
83              {
84                  throw new MojoExecutionException( messagesProvider.getMessage( "ShutdownMojo.shutdownError" ), e );
85              }
86          }
87      }
88  }