You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by co...@apache.org on 2001/03/08 02:09:53 UTC

cvs commit: jakarta-tomcat/src/share/org/apache/tomcat/modules/generators StaticInterceptor.java

costin      01/03/07 17:09:53

  Modified:    src/share/org/apache/tomcat/modules/config
                        ContextXmlReader.java ServerXmlReader.java
               src/share/org/apache/tomcat/modules/generators
                        StaticInterceptor.java
  Log:
  Added code to support ant properties in the config file.
  This is not completed, but should work fine for global
  modules.
  
  This doesn't/shouldn't affect the code stability in any way - if you don't
  use properties nothing will change in tomcat's behavior.
  
  This should allow us to clean/clarify the paths and what's relative
  to what, and provide more flexibility in the configuraton.
  
  Revision  Changes    Path
  1.7       +1 -1      jakarta-tomcat/src/share/org/apache/tomcat/modules/config/ContextXmlReader.java
  
  Index: ContextXmlReader.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/modules/config/ContextXmlReader.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- ContextXmlReader.java	2001/02/27 17:09:37	1.6
  +++ ContextXmlReader.java	2001/03/08 01:09:50	1.7
  @@ -152,7 +152,7 @@
   		    xh.setParent("setContextManager") );
   	
   	// Virtual host support - if Context is inside a <Host>
  -	xh.addRule( "Host", xh.setVariable( "current_host", "name"));
  +	xh.addRule( "Host", xh.setVar( "current_host", "name"));
   	xh.addRule( "Host", xh.setProperties());
   
   	xh.addRule( "Context", new XmlAction() {
  
  
  
  1.8       +46 -0     jakarta-tomcat/src/share/org/apache/tomcat/modules/config/ServerXmlReader.java
  
  Index: ServerXmlReader.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/modules/config/ServerXmlReader.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- ServerXmlReader.java	2001/02/27 17:09:37	1.7
  +++ ServerXmlReader.java	2001/03/08 01:09:50	1.8
  @@ -70,6 +70,7 @@
   import org.apache.tomcat.core.*;
   import org.apache.tomcat.modules.server.*;
   import org.apache.tomcat.util.log.*;
  +import org.apache.tomcat.util.IntrospectionUtils;
   import org.xml.sax.*;
   
   /**
  @@ -115,6 +116,7 @@
   	XmlMapper xh=new XmlMapper();
   	xh.setDebug( debug );
   	xh.addRule( "ContextManager", xh.setProperties() );
  +	setPropertiesRules( cm, xh );
   	setTagRules( xh );
   	addDefaultTags(cm, xh);
   	addTagRules( cm, xh );
  @@ -161,6 +163,48 @@
   	}
       }
   
  +    static class CMPropertySource
  +	implements IntrospectionUtils.PropertySource
  +    {
  +	ContextManager cm;
  +	
  +	CMPropertySource( ContextManager cm ) {
  +	    this.cm=cm;
  +	}
  +	
  +	public String getProperty( String key ) {
  +	    if( "tomcat.home".equals( key ) ) {
  +		return cm.getHome();
  +	    }
  +	    // XXX add other "predefined" properties
  +	    return cm.getProperty( key );
  +	}
  +    }
  +
  +    public void setPropertiesRules( ContextManager cm, XmlMapper xh )
  +	throws TomcatException
  +    {
  +	CMPropertySource propS=new CMPropertySource( cm );
  +	xh.setPropertySource( propS );
  +	
  +	xh.addRule( "ContextManager/property", new XmlAction() {
  +		public void start(SaxContext ctx ) throws Exception {
  +		    AttributeList attributes = ctx.getCurrentAttributes();
  +		    String name=attributes.getValue("name");
  +		    String value=attributes.getValue("value");
  +		    if( name==null || value==null ) return;
  +		    XmlMapper xm=ctx.getMapper();
  +		    
  +		    ContextManager cm1=(ContextManager)ctx.currentObject();
  +		    // replace ${foo} in value
  +		    value=xm.replaceProperties( value );
  +		    if( cm1.getDebug() > 0 )
  +			cm1.log("Setting " + name + "=" + value);
  +		    cm1.setProperty( name, value );
  +		}
  +	    });
  +    }
  +
       public void addTagRules( ContextManager cm, XmlMapper xh )
   	throws TomcatException
       {
  @@ -224,6 +268,7 @@
       public static Vector getUserConfigFiles(File master) {
   	File dir = new File(master.getParent());
   	String[] names = dir.list();
  +	//	System.out.println("getUserConfigFiles " + dir );
   
   	String masterName=master.getAbsolutePath();
   
  @@ -231,6 +276,7 @@
   	String ext=FileUtil.getExtension( masterName );
   	
   	Vector v = new Vector();
  +	if( names==null ) return v;
   	for (int i=0; i<names.length; ++i) {
   	    if( names[i].startsWith( base )
   		&& ( ext==null || names[i].endsWith( ext )) ) {
  
  
  
  1.6       +3 -1      jakarta-tomcat/src/share/org/apache/tomcat/modules/generators/StaticInterceptor.java
  
  Index: StaticInterceptor.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/modules/generators/StaticInterceptor.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- StaticInterceptor.java	2001/02/20 03:16:52	1.5
  +++ StaticInterceptor.java	2001/03/08 01:09:52	1.6
  @@ -90,7 +90,7 @@
       }
   
       public void engineInit(ContextManager cm) throws TomcatException {
  -	super.engineInit( cm );
  +	//	if( debug>0 ) log("Engine init " );
   	
   	try {
   	    realFileNote = cm.getNoteId( ContextManager.REQUEST_NOTE,
  @@ -104,6 +104,7 @@
       public void contextInit( Context ctx)
   	throws TomcatException
       {
  +	//if( debug>0 ) log("Ctx init " + ctx );
   	FileHandler fileHandler=new FileHandler();
   	DirHandler dirHandler=new DirHandler();
   	fileHandler.setModule( this );
  @@ -119,6 +120,7 @@
       }
   
       public int requestMap(Request req) {
  +	//	if( debug>0 ) log("Req map " + req);
   	if( req.getHandler() != null )
   	    return 0;