|
What this is
Other links
The source code
/*
* Copyright 2001-2004 The Apache Software 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 tadm;
import java.util.Enumeration;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.Tag;
import javax.servlet.jsp.tagext.TagSupport;
import org.apache.tomcat.core.Context;
import org.apache.tomcat.core.ContextManager;
import org.apache.tomcat.core.TomcatException;
/**
* A context administration class. Contexts can be
* viewed, added, and removed from the context manager.
*
*/
public class ContextAdmin extends TagSupport {
private ContextManager cm;
String ctxPath;
String docBase;
String ctxPathParam;
String docBaseParam;
String action;
String host;
String value;
// PageContext pageContext;
public ContextAdmin() {}
public int doStartTag() throws JspException {
try {
HttpServletRequest req=(HttpServletRequest)pageContext.
getRequest();
cm=(ContextManager)pageContext.getAttribute("cm");
if( cm==null )
throw new JspException( "Can't find context manager" );
Context ctx=null;
if( ctxPath==null && ctxPathParam!=null ) {
ctxPath=req.getParameter( ctxPathParam );
}
if( docBase==null && docBaseParam!=null) {
docBase=req.getParameter( docBaseParam );
}
if( ctxPath != null ) {
if( debug>0 ) log("Finding " + ctxPath );
Enumeration en=cm.getContexts();
while( en.hasMoreElements() ) {
ctx=(Context)en.nextElement();
// XXX virtual host
if( ctxPath.equals( ctx.getPath())) {
pageContext.setAttribute("ctx", ctx);
break;
}
}
}
if( ctx==null ) {
throw new JspException("Can't find context " + ctxPath );
}
if("removeContext".equals( action ) )
removeContext( cm , ctx);
if("setLogger".equals( action ) )
setLogFile( ctx, value );
if("addContext".equals( action ) )
addContext( cm, host, ctxPath, docBase );
} catch (Exception ex ) {
ex.printStackTrace();
}
return EVAL_BODY_INCLUDE;
}
public int doEndTag() throws JspException {
return EVAL_PAGE;
}
public void setParent( Tag parent ) {
super.setParent( parent);
}
// -------------------- Properties --------------------
public void setCtxPath( String ctx ) {
ctxPath=ctx;
}
public void setCtxPathParam( String ctx ) {
ctxPathParam=ctx;
}
public void setDocBaseParam( String ctx ) {
docBaseParam=ctx;
}
public void setCtxHost( String host ) {
this.host=host;
}
public void setAction( String action ) {
this.action=action;
}
public void setDocBase( String docBase ) {
this.docBase=docBase;
}
public void setValue( String s ) {
this.value=s;
}
private void removeContext( ContextManager cm, Context ctx)
throws TomcatException
{
if( debug > 0 ) log("Removing " + ctx );
cm.removeContext( ctx );
}
private void setLogFile( Context ctx, String dest )
throws TomcatException
{
// try {
// QueueLogger logger=new QueueLogger();
// if( debug > 0 ) log ("Setting logger " + dest );
// logger.setPath( dest );
// logger.open();
// LogManager logManager=(LogManager)ctx.getContextManager().
// getNote("tc.LogManager");
// logManager.addChannel("temp.log", logger );
// Log log=Log.getLog( "temp.log", ctx );
// ctx.setLog( log );
// ctx.setServletLog( log );
// } catch( Exception ex ) {
// ex.printStackTrace();
// }
}
private void addContext( ContextManager cm, String host, String path,
String docBase)
throws TomcatException
{
if( ! docBase.startsWith("/") ) {
docBase=cm.getHome() + "/" + docBase;
}
if( debug > 0 )
log("Adding " + path + " " + docBase);
Context context = new Context();
context.setContextManager(cm);
context.setPath(path);
context.setDocBase(docBase);
cm.addContext(context);
context.init();
}
// --------------------
private static int debug=0;
private void log(String s ) {
System.out.println(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.