|
What this is
Other links
The source code
/*
* Copyright 1999-2004 The Apache Sofware Foundation.
*
* 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 org.apache.tomcat.startup;
import java.util.Hashtable;
import org.apache.tomcat.core.TomcatException;
import org.apache.tomcat.util.IntrospectionUtils;
import org.apache.tomcat.util.res.StringManager;
/**
* Main entry point to several Tomcat functions. Uses EmbededTomcat to
* start and init tomcat, and special functions to stop, configure, etc.
*
* It is intended as a replacement for the shell command - EmbededTomcat
* is the "real" tomcat-specific object that deals with tomcat internals,
* this is just a wrapper.
*
* It can be used in association with Main.java - in order to set the
* CLASSPATH.
*
* @deprecated Use individual tasks instead: StopTomcat, EmbededTomcat, EnableConfig, etc.
* @author Costin Manolache
*/
public class Tomcat {
private static StringManager sm =
StringManager.getManager("org.apache.tomcat.resources");
EmbededTomcat tomcat=new EmbededTomcat();
// relative to TOMCAT_HOME
static final String DEFAULT_CONFIG="conf/server.xml";
Hashtable attributes=new Hashtable();
public Tomcat() {
}
//-------------------- Properties --------------------
public void setHome(String home) {
if( dL > 0 ) debug( "setHome " + home );
attributes.put( "home", home );
}
public void setH(String home) {
setHome( home );
}
public void setInstall(String install) {
attributes.put( "install", install );
}
public void setI(String install) {
setInstall( install );
}
public void setArgs(String args[]) {
attributes.put("args", args);
}
public void setConfig( String s ) {
attributes.put( "config" , s );
}
public void setF( String s ) {
setConfig( s );
}
public void setAction(String s ) {
attributes.put("action",s);
attributes.put(s, "true" );
}
public void setSandbox( boolean b ) {
if( b ) attributes.put( "sandbox", "true" );
}
public void setStop( boolean b ) {
if( b ) attributes.put( "stop", "true" );
}
public void setEnableAdmin( boolean b ) {
if( b ) attributes.put( "enableAdmin", "true" );
}
public void setParentClassLoader( ClassLoader cl ) {
attributes.put( "parentClassLoader", cl );
}
public void setCommonClassLoader( ClassLoader cl ) {
attributes.put( "commonClassLoader", cl );
}
public void setAppsClassLoader( ClassLoader cl ) {
attributes.put( "appsClassLoader", cl );
}
public void setContainerClassLoader( ClassLoader cl ) {
attributes.put( "containerClassLoader", cl );
}
// -------------------- execute --------------------
public void execute() throws Exception {
if( attributes.get("home")==null )
attributes.put("home", System.getProperty("tomcat.home"));
if( attributes.get("stop") != null ) {
stopTomcat();
} else if( attributes.get("enableAdmin") != null ){
enableAdmin();
} else if( attributes.get("help") != null ) {
printUsage();
} else {
startTomcat();
}
}
// -------------------- Actions --------------------
public void enableAdmin() throws TomcatException
{
try {
EnableAdmin task= new EnableAdmin();
task.setHome( (String)attributes.get("home") );
task.processArgs( (String[])attributes.get("args"));
task.execute();
} catch (Exception te) {
te.printStackTrace();
throw new TomcatException( te );
}
}
public void stopTomcat() throws TomcatException {
try {
StopTomcat task= new StopTomcat();
task.setHome( (String)attributes.get("home") );
task.processArgs( (String[])attributes.get("args"));
task.execute();
} catch (Exception te) {
throw new TomcatException( te );
}
}
public void startTomcat() throws TomcatException {
try {
EmbededTomcat task= new EmbededTomcat();
task.setHome( (String)attributes.get("home") );
task.processArgs( (String[])attributes.get("args"));
task.execute();
} catch (Exception te) {
throw new TomcatException( te );
}
}
// -------------------- Command-line args processing --------------------
public static void printUsage() {
//System.out.println(sm.getString("tomcat.usage"));
System.out.println("Usage: java org.apache.tomcat.startup.Tomcat {options}");
System.out.println(" Options are:");
System.out.println(" -ajpid file Use this file instead of conf/ajp12.id");
System.out.println(" Use with -stop option");
System.out.println(" -config file (or -f file) Use this file instead of server.xml");
System.out.println(" -enableAdmin Updates admin webapp config to \"trusted\"");
System.out.println(" -help (or help) Show this usage report");
System.out.println(" -home dir Use this directory as tomcat.home");
System.out.println(" -install dir (or -i dir) Use this directory as tomcat.install");
System.out.println(" -sandbox Enable security manager (includes java.policy)");
System.out.println(" -stop Shut down currently running Tomcat");
System.out.println();
System.out.println("In the absence of \"-enableAdmin\" and \"-stop\", Tomcat will be started");
}
/** Process arguments - set object properties from the list of args.
*/
public boolean processArgs(String[] args) {
setArgs(args);
try {
return IntrospectionUtils.processArgs( this, args );
} catch( Exception ex ) {
ex.printStackTrace();
return false;
}
}
/** Callback from argument processing
*/
public void setProperty(String s,Object v) {
if ( dL > 0 ) debug( "Generic property " + s );
attributes.put(s,v);
}
/** Called by Main to set non-string properties
*/
public void setAttribute(String s,Object o) {
if ( "args".equals(s) ) {
String args[]=(String[])o;
boolean ok=processArgs( args );
if ( ! ok ) {
printUsage();
return;
}
}
attributes.put(s,o);
}
// -------------------- Main --------------------
public static void main(String args[] ) {
try {
Tomcat tomcat=new Tomcat();
tomcat.processArgs( args );
tomcat.execute();
} catch(Exception ex ) {
ex.printStackTrace();
System.exit(1);
}
}
private static int dL=0;
private void debug( String s ) {
System.out.println("Tomcat: " + s );
}
}
|
| ... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.