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.tomcat.maven.common.run.EmbeddedRegistry;
24
25
26 /**
27 * <p>
28 * Shuts down all possibly started embedded tomcat servers. This will be automatically down
29 * through a shutdown hook or you may call this Mojo to shut them down explictly.
30 * </p>
31 * <p>
32 * By default the <code>shutdown</code> goal is not bound to any phase. For integration tests
33 * you might want to bind it to <code>post-integration-test</code>.
34 * </p>
35 *
36 * @author Mark Michaelis
37 * @goal shutdown
38 * @requiresDependencyResolution runtime
39 * @since 1.1
40 */
41 public class ShutdownMojo
42 extends AbstractI18NTomcat6Mojo
43 {
44
45 /**
46 * Ignore error when shutdown
47 *
48 * @parameter expression="${maven.tomcat.skipErrorOnShutdown}" default-value="false"
49 * @since 2.0
50 */
51 protected boolean skipErrorOnShutdown;
52
53 /**
54 * Shuts down all embedded tomcats which got started up to now.
55 *
56 * @throws MojoExecutionException if shutting down one or all servers failed
57 */
58 public void execute()
59 throws MojoExecutionException
60 {
61 try
62 {
63 EmbeddedRegistry.getInstance().shutdownAll( getLog() );
64 }
65 catch ( Exception e )
66 {
67 if ( !skipErrorOnShutdown )
68 {
69 throw new MojoExecutionException( messagesProvider.getMessage( "ShutdownMojo.shutdownError" ), e );
70 }
71 }
72 }
73 }