tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From cos...@apache.org
Subject cvs commit: jakarta-tomcat/src/share/org/apache/tomcat/startup StopTomcat.java
Date Mon, 19 Feb 2001 19:48:52 GMT
costin      01/02/19 11:48:51

  Modified:    src/share/org/apache/tomcat/startup StopTomcat.java
  Log:
  Guess tomcat.home using introspection utils.
  
  Now "java -jar ~/dist/tomcat/lib/stop-tomcat.jar" is all you need,
  no more scripts ( "cd", -DTOMCAT_HOME, etc )
  ( or double-click if your file manager supports it )
  
  ( I use some gnome .desktop actions in a panel menu - less typing :-)
  
  Revision  Changes    Path
  1.4       +83 -33    jakarta-tomcat/src/share/org/apache/tomcat/startup/StopTomcat.java
  
  Index: StopTomcat.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/startup/StopTomcat.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- StopTomcat.java	2001/02/07 07:01:29	1.3
  +++ StopTomcat.java	2001/02/19 19:48:50	1.4
  @@ -59,10 +59,10 @@
   package org.apache.tomcat.startup;
   
   import org.apache.tomcat.util.StringManager;
  +import org.apache.tomcat.util.IntrospectionUtils;
   import java.io.*;
   import java.net.*;
   import java.util.*;
  -
   // Depends: StringManager, resources
   
   
  @@ -77,6 +77,10 @@
   	StringManager.getManager("org.apache.tomcat.resources");
   
       String tomcatHome;
  +
  +    String host=null;
  +    int port=-1;
  +    String secret;
       
       public StopTomcat() 
       {
  @@ -94,6 +98,23 @@
   	System.getProperties().put("tomcat.home", s);
       }
   
  +    public void setHost( String h ) {
  +	host=h;
  +    }
  +
  +    public void setPort( int port ) {
  +	this.port=port;
  +    }
  +
  +    /** When tomcat is started, a secret ( random ) key will be generated
  +	in ajp12.id. If you run StopTomcat from the same host, it'll
  +	read the key and use it. If you run from a different host, you'll
  +	have to specify it manually
  +    */
  +    public void setSecret( String s ) {
  +	secret=s;
  +    }
  +    
       // -------------------- Ant execute --------------------
   
       public void execute() throws Exception {
  @@ -112,45 +133,54 @@
       // -------------------- Implementation --------------------
       
       void stopTomcat() throws Exception {
  -	String tchome=getTomcatInstall();
  -	int port=8007;
  -	InetAddress address=null;
  +	String tchome=getTomcatHome();
  +
  +	if( secret==null ) {
  +	    try {
  +		BufferedReader rd=new BufferedReader
  +		    ( new FileReader( tchome + "/conf/ajp12.id"));
  +		String line=rd.readLine();
  +
  +		if( port < 0 ) {
  +		    try {
  +			port=Integer.parseInt( line );
  +		    } catch(NumberFormatException ex ) {
  +			ex.printStackTrace();
  +		    }
  +		}
  +		
  +		line=rd.readLine();
  +		if( host==null ) host=line;
  +		line=rd.readLine();
  +		if( secret==null ) secret=line;
  +		if( "".equals( secret ) )
  +		    secret=null;
  +		
  +	    } catch( IOException ex ) {
  +		//ex.printStackTrace();
  +		System.out.println("Can't read " + tchome + "/conf/ajp12.id");
  +		System.out.println(ex.toString());
  +		return;
  +	    }
  +	}
   	
  -	try {
  -	    BufferedReader rd=new BufferedReader
  -		( new FileReader( tchome + "/conf/ajp12.id"));
  -	    String portLine=rd.readLine();
  -	    
  +	System.out.println("Stoping tomcat on " + host + ":" +port +" "
  +			   + secret);
  +	InetAddress address=null;
  +	if( host!=null && !"".equals( host )) {
   	    try {
  -		port=Integer.parseInt( portLine );
  -	    } catch(NumberFormatException ex ) {
  +		address=InetAddress.getByName( host );
  +	    } catch( UnknownHostException ex ) {
   		ex.printStackTrace();
   	    }
  -	    String addLine=rd.readLine();
  -	    if( addLine!=null && !"".equals( addLine )) {
  -		try {
  -		    address=InetAddress.getByName( addLine );
  -		} catch( UnknownHostException ex ) {
  -		    ex.printStackTrace();
  -		}
  -	    }
  -	    String secret=rd.readLine();
  -	    if( "".equals( secret ) )
  -		secret=null;
  -
  -	    System.out.println("Stoping tomcat on " + address + ":" +port +" "
  -			       + secret);
  -	    stopTomcat( address,port, secret );
  -	    
  -	} catch( IOException ex ) {
  -	    ex.printStackTrace();
   	}
  -
  +	stopTomcat( address,port, secret );
       }
       
  -    public String getTomcatInstall() {
  +    public String getTomcatHome() {
   	// Use the "tomcat.home" property to resolve the default filename
  -	String tchome = System.getProperty("tomcat.home");
  +	String tchome=IntrospectionUtils.guessHome("tomcat.home",
  +						   "stop-tomcat.jar");
   	if (tchome == null) {
   	    System.out.println(sm.getString("tomcat.nohome"));
   	    tchome = ".";
  @@ -179,7 +209,6 @@
   	} catch(IOException ex ) {
   	    System.out.println("Error stopping Tomcat with Ajp12 on " +
   				      address + ":" + portInt + " " + ex);
  -	    throw ex;
   	}
       }
   
  @@ -220,6 +249,27 @@
   		i++;
   		if (i < args.length)
   		    System.getProperties().put("tomcat.home", args[i]);
  +		else
  +		    return false;
  +	    }
  +	    if (arg.equals("-host") ) {
  +		i++;
  +		if (i < args.length)
  +		    host=args[i];
  +		else
  +		    return false;
  +	    }
  +	    if (arg.equals("-port") ) {
  +		i++;
  +		if (i < args.length)
  +		    port=Integer.parseInt( args[i] );
  +		else
  +		    return false;
  +	    }
  +	    if (arg.equals("-pass") ) {
  +		i++;
  +		if (i < args.length)
  +		    secret=args[i];
   		else
   		    return false;
   	    }
  
  
  

Mime
View raw message