~ubuntu-branches/ubuntu/utopic/jetty/utopic-proposed

« back to all changes in this revision

Viewing changes to modules/maven-plugin/src/main/java/org/mortbay/jetty/plugin/JettyStopMojo.java

  • Committer: Bazaar Package Importer
  • Author(s): Torsten Werner
  • Date: 2009-08-09 08:48:10 UTC
  • Revision ID: james.westby@ubuntu.com-20090809084810-k522b97ind2robyd
ImportĀ upstreamĀ versionĀ 6.1.19

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
//========================================================================
 
2
//$Id: JettyStopMojo.java 5222 2009-05-29 07:34:32Z dyu $
 
3
//Copyright 2000-2004 Mort Bay Consulting Pty. Ltd.
 
4
//------------------------------------------------------------------------
 
5
//Licensed under the Apache License, Version 2.0 (the "License");
 
6
//you may not use this file except in compliance with the License.
 
7
//You may obtain a copy of the License at 
 
8
//http://www.apache.org/licenses/LICENSE-2.0
 
9
//Unless required by applicable law or agreed to in writing, software
 
10
//distributed under the License is distributed on an "AS IS" BASIS,
 
11
//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
12
//See the License for the specific language governing permissions and
 
13
//limitations under the License.
 
14
//========================================================================
 
15
 
 
16
package org.mortbay.jetty.plugin;
 
17
 
 
18
import java.io.OutputStream;
 
19
import java.net.ConnectException;
 
20
import java.net.InetAddress;
 
21
import java.net.Socket;
 
22
 
 
23
import org.apache.maven.plugin.AbstractMojo;
 
24
import org.apache.maven.plugin.MojoExecutionException;
 
25
import org.apache.maven.plugin.MojoFailureException;
 
26
 
 
27
/**
 
28
 * JettyStopMojo - stops a running instance of jetty.
 
29
 * The ff are required:
 
30
 * -DstopKey=someKey
 
31
 * -DstopPort=somePort
 
32
 * 
 
33
 * @author David Yu
 
34
 * 
 
35
 * @goal stop
 
36
 * @description Stops jetty that is configured with <stopKey> and <stopPort>.
 
37
 */
 
38
 
 
39
public class JettyStopMojo extends AbstractMojo
 
40
{
 
41
    
 
42
    /**
 
43
     * Port to listen to stop jetty on sending stop command
 
44
     * @parameter
 
45
     * @required
 
46
     */
 
47
    protected int stopPort;
 
48
    
 
49
    /**
 
50
     * Key to provide when stopping jetty on executing java -DSTOP.KEY=<stopKey> 
 
51
     * -DSTOP.PORT=<stopPort> -jar start.jar --stop
 
52
     * @parameter
 
53
     * @required
 
54
     */
 
55
    protected String stopKey;
 
56
 
 
57
    public void execute() throws MojoExecutionException, MojoFailureException 
 
58
    {
 
59
        if (stopPort <= 0)
 
60
            throw new MojoExecutionException("Please specify a valid port"); 
 
61
        if (stopKey == null)
 
62
            throw new MojoExecutionException("Please specify a valid stopKey");  
 
63
 
 
64
        try
 
65
        {        
 
66
            Socket s=new Socket(InetAddress.getByName("127.0.0.1"),stopPort);
 
67
            s.setSoLinger(false, 0);
 
68
            
 
69
            OutputStream out=s.getOutputStream();
 
70
            out.write((stopKey+"\r\nstop\r\n").getBytes());
 
71
            out.flush();
 
72
            s.close();
 
73
        }
 
74
        catch (ConnectException e)
 
75
        {
 
76
            getLog().info("Jetty not running!");
 
77
        }
 
78
        catch (Exception e)
 
79
        {
 
80
            getLog().error(e);
 
81
        }
 
82
    }
 
83
 
 
84
}