net.lightbody.bmp.proxy.jetty.stop.Main Maven / Gradle / Ivy
The newest version!
// ========================================================================
// $Id: Main.java,v 1.4 2004/05/09 20:32:48 gregwilkins Exp $
// Copyright 2002-2004 Mort Bay Consulting Pty. Ltd.
// ------------------------------------------------------------------------
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// ========================================================================
package net.lightbody.bmp.proxy.jetty.stop;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
/*-------------------------------------------*/
/** Main stop class.
* This class is intended to be the main class listed in the MANIFEST.MF of
* the stop.jar archive. It allows an application started with the
* command "java -jar start.jar" to be stopped.
*
* Programs started with start.jar may be stopped with the stop.jar, which connects
* via a local port to stop the server. The default port can be set with the
* STOP.PORT system property (a port of < 0 disables the stop mechanism). If the STOP.KEY
* system property is set, then a random key is generated and written to stdout. This key
* must be passed to the stop.jar.
*
* @author Greg Wilkins
* @version $Revision: 1.4 $
*/
public class Main
{
private boolean _debug = System.getProperty("DEBUG",null)!=null;
private String _config = System.getProperty("START", "net/lightbody/bmp/proxy/jetty/start/start.config");
private int _port = Integer.getInteger("STOP.PORT",8079).intValue();
private String _key = System.getProperty("STOP.KEY","jetty");
public static void main(String[] args)
{
new Main().stop();
}
void stop()
{
try
{
if (_port<=0)
System.err.println("START.PORT system property must be specified");
if (_key==null)
{
_key="";
System.err.println("Using empty key");
}
Socket s=new Socket(InetAddress.getByName("127.0.0.1"),_port);
OutputStream out=s.getOutputStream();
out.write((_key+"\r\nstop\r\n").getBytes());
out.flush();
s.shutdownOutput();
s.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}