|
What this is
Other links
The source code/* * Copyright 1999-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 org.apache.ajp.tomcat4.config; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.util.Date; import org.apache.catalina.Context; /** Generates automatic Netscape nsapi_redirect configurations based on the Tomcat server.xml settings and the war contexts initialized during startup.
@author Costin Manolache @author Larry Isaacs @author Gal Shachor @author Bill Barker */ public class NSConfig extends BaseJkConfig { public static final String WORKERS_CONFIG = "/conf/jk/workers.properties"; public static final String NS_CONFIG = "/conf/auto/obj.conf"; public static final String NSAPI_LOG_LOCATION = "/logs/nsapi_redirect.log"; /** default location of nsapi plug-in. */ public static final String NSAPI_REDIRECTOR; //set up some defaults based on OS type static{ String os = System.getProperty("os.name").toLowerCase(); if(os.indexOf("windows")>=0){ NSAPI_REDIRECTOR = "bin/nsapi_redirect.dll"; }else if(os.indexOf("netware")>=0){ NSAPI_REDIRECTOR = "bin/nsapi_rd.nlm"; }else{ NSAPI_REDIRECTOR = "bin/nsapi_redirector.so"; } } private File objConfig = null; private File nsapiJk = null; private String objectName = "servlet"; public NSConfig() { } //-------------------- Properties -------------------- /** set the path to the output file for the auto-generated isapi_redirect registry file. If this path is relative then getRegConfig() will resolve it absolutely against the getConfigHome() path. @param path String path to a file */ public void setObjConfig(String path) { objConfig= (path==null)?null:new File(path); } /** set the path to the nsapi plugin module @param path String path to a file */ public void setNsapiJk(String path) { nsapiJk=( path==null?null:new File(path)); } /** Set the name for the Object that implements the jk_service call. @param name Name of the obj.conf Object */ public void setObjectName(String name) { objectName = name; } // -------------------- Initialize/guess defaults -------------------- /** Initialize defaults for properties that are not set explicitely */ protected void initProperties() { super.initProperties(); objConfig=getConfigFile( objConfig, configHome, NS_CONFIG); workersConfig=getConfigFile( workersConfig, configHome, WORKERS_CONFIG); if( nsapiJk == null ) nsapiJk=new File(NSAPI_REDIRECTOR); else nsapiJk =getConfigFile( nsapiJk, configHome, NSAPI_REDIRECTOR ); jkLog=getConfigFile( jkLog, configHome, NSAPI_LOG_LOCATION); } // -------------------- Generate config -------------------- protected PrintWriter getWriter() throws IOException { String abObjConfig = objConfig.getAbsolutePath(); return new PrintWriter(new FileWriter(abObjConfig,append)); } protected boolean generateJkHead(PrintWriter mod_jk) { log("Generating netscape web server config = "+objConfig ); generateNsapiHead( mod_jk ); mod_jk.println(""); objfile.println(); objfile.println("#######################################################"); objfile.println("# New object to execute your servlet requests."); objfile.println("#######################################################"); objfile.println(""); objfile.println(); } // -------------------- Forward all mode -------------------- /** Forward all requests for a context to tomcat. The default. */ protected void generateStupidMappings(Context context, PrintWriter objfile ) { String ctxPath = context.getPath(); String nPath=("".equals(ctxPath)) ? "/" : ctxPath; if( noRoot && "".equals(ctxPath) ) { log("Ignoring root context in forward-all mode "); return; } objfile.println(""); } // -------------------- Netscape serves static mode -------------------- // This is not going to work for all apps. We fall back to stupid mode. protected void generateContextMappings(Context context, PrintWriter objfile ) { String ctxPath = context.getPath(); String nPath=("".equals(ctxPath)) ? "/" : ctxPath; if( noRoot && "".equals(ctxPath) ) { log("Ignoring root context in non-forward-all mode "); return; } objfile.println(""); } /** Add a Netscape extension mapping. */ protected boolean addMapping( String ctxPath, String ext, PrintWriter objfile ) { if( debug > 0 ) log( "Adding extension map for " + ctxPath + "/*." + ext ); if(! ext.startsWith("/") ) ext = "/" + ext; if(ext.length() > 1) objfile.println("NameTrans fn=\"assign-name\" from=\"" + ctxPath + ext + "\" name=\"" + objectName + "\""); return true; } /** Add a fulling specified Netscape mapping. */ protected boolean addMapping( String fullPath, PrintWriter objfile ) { if( debug > 0 ) log( "Adding map for " + fullPath ); objfile.println("NameTrans fn=\"assign-name\" from=\"" + fullPath + "\" name=\"" + objectName + "\""); return true; } } |
... 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.