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...@locus.apache.org on 2000/11/22 02:10:31 UTC

cvs commit: jakarta-tomcat/src/share/org/apache/tomcat/util/xml XmlMapper.java

costin      00/11/21 17:10:31

  Modified:    src/etc  server.xml
               src/share/org/apache/tomcat/helper ServerXmlHelper.java
               src/share/org/apache/tomcat/startup EmbededTomcat.java
               src/share/org/apache/tomcat/util/xml XmlMapper.java
  Log:
  Fixed EmbededTomcat ( use the new session interceptors ).
  
  Small change in server.xml handling - allow "shortcuts" in connector
  names ( yes, it's a bit slower, but it's only at startup and it's not
  visible - 4 Class.forName instead of 1 is nothing compared with the
  rest of the startup tasks ).
  
  Revision  Changes    Path
  1.52      +3 -5      jakarta-tomcat/src/etc/server.xml
  
  Index: server.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/etc/server.xml,v
  retrieving revision 1.51
  retrieving revision 1.52
  diff -u -r1.51 -r1.52
  --- server.xml	2000/11/21 00:31:11	1.51
  +++ server.xml	2000/11/22 01:10:29	1.52
  @@ -99,7 +99,7 @@
   
         <!-- ==================== Interceptors ==================== -->
           <ContextInterceptor 
  -            className="org.apache.tomcat.context.DefaultCMSetter" />
  +            className="org.apache.tomcat.context.DefaultCMSetter" >
   
           <!-- 
            ContextInterceptor className="org.apache.tomcat.context.LogEvents" 
  @@ -137,8 +137,7 @@
           <!-- Session interceptor will extract the session id from cookies and 
                deal with URL rewriting ( by fixing the URL )
             -->
  -        <RequestInterceptor 
  -            className="org.apache.tomcat.modules.session.SessionId" />
  +        <RequestInterceptor className="SessionId" />
   
           <!-- Find the container ( context and prefix/extension map ) 
                for a request.
  @@ -180,8 +179,7 @@
           <!-- Plug a session manager. You can plug in more advanced session
                modules.
             -->
  -        <RequestInterceptor 
  -            className="org.apache.tomcat.modules.session.SimpleSessionStore" />
  +        <RequestInterceptor className="SimpleSessionStore" />
   
           <!-- Check if the request requires an authenticated role.
             -->
  
  
  
  1.8       +15 -5     jakarta-tomcat/src/share/org/apache/tomcat/helper/ServerXmlHelper.java
  
  Index: ServerXmlHelper.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/helper/ServerXmlHelper.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- ServerXmlHelper.java	2000/11/02 21:44:38	1.7
  +++ ServerXmlHelper.java	2000/11/22 01:10:30	1.8
  @@ -80,6 +80,16 @@
       private static StringManager sm =
   	StringManager.getManager("org.apache.tomcat.resources");
   
  +    public static final String[] MODULE_PKGS={
  +	"org.apache.tomcat.modules.session.",
  +	"org.apache.tomcat.modules.server.",
  +	"org.apache.tomcat.modules.config.",
  +	"org.apache.tomcat.modules.security.",
  +	"org.apache.tomcat.request.", // OLD
  +	"org.apache.tomcat.context." // OLD
  +    };
  +       
  +    
       public ServerXmlHelper() {
       }
   
  @@ -94,7 +104,7 @@
   
       public static void setInterceptorRules( XmlMapper xh ) {
   	xh.addRule( "ContextManager/ContextInterceptor",
  -		    xh.objectCreate(null, "className"));
  +		    xh.objectCreate(null, "className", MODULE_PKGS));
   	xh.addRule( "ContextManager/ContextInterceptor",
   		    xh.setProperties() );
   	xh.addRule( "ContextManager/ContextInterceptor",
  @@ -104,7 +114,7 @@
   				 "org.apache.tomcat.core.BaseInterceptor"));
   
   	xh.addRule( "ContextManager/RequestInterceptor",
  -		    xh.objectCreate(null, "className"));
  +		    xh.objectCreate(null, "className", MODULE_PKGS));
   	xh.addRule( "ContextManager/RequestInterceptor",
   		    xh.setProperties() );
   	xh.addRule( "ContextManager/RequestInterceptor",
  @@ -139,7 +149,7 @@
   	
   	// Configure context interceptors
   	xh.addRule( "Context/Interceptor",
  -		    xh.objectCreate(null, "className"));
  +		    xh.objectCreate(null, "className", MODULE_PKGS));
   	xh.addRule( "Context/Interceptor",
   		    xh.setProperties() );
   	xh.addRule( "Context/Interceptor",
  @@ -149,7 +159,7 @@
   				 "org.apache.tomcat.core.BaseInterceptor"));
   	// Old style 
   	xh.addRule( "Context/RequestInterceptor",
  -		    xh.objectCreate(null, "className"));
  +		    xh.objectCreate(null, "className", MODULE_PKGS));
   	xh.addRule( "Context/RequestInterceptor",
   		    xh.setProperties() );
   	xh.addRule( "Context/RequestInterceptor",
  @@ -167,7 +177,7 @@
   
       public void setConnectorHelper( XmlMapper xh ) {
   	xh.addRule( "ContextManager/Connector",
  -		    xh.objectCreate(null, "className"));
  +		    xh.objectCreate(null, "className", MODULE_PKGS));
   	xh.addRule( "ContextManager/Connector",
   		    xh.setParent( "setContextManager",
   				  "org.apache.tomcat.core.ContextManager") );
  
  
  
  1.31      +3 -3      jakarta-tomcat/src/share/org/apache/tomcat/startup/EmbededTomcat.java
  
  Index: EmbededTomcat.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/startup/EmbededTomcat.java,v
  retrieving revision 1.30
  retrieving revision 1.31
  diff -u -r1.30 -r1.31
  --- EmbededTomcat.java	2000/11/02 21:45:05	1.30
  +++ EmbededTomcat.java	2000/11/22 01:10:30	1.31
  @@ -6,7 +6,7 @@
   import org.apache.tomcat.core.*;
   import org.apache.tomcat.request.*;
   import org.apache.tomcat.modules.server.*;
  -import org.apache.tomcat.session.StandardSessionInterceptor;
  +import org.apache.tomcat.modules.session.*;
   import org.apache.tomcat.context.*;
   import org.apache.tomcat.util.log.*;
   import java.security.*;
  @@ -360,7 +360,7 @@
   	// 	LogEvents logEventsI=new LogEvents();
   	// 	addRequestInterceptor( logEventsI );
   
  -	SessionInterceptor sessI=new SessionInterceptor();
  +	SessionId sessI=new SessionId();
   	addInterceptor( sessI );
   
   	SimpleMapper1 mapI=new SimpleMapper1();
  @@ -375,7 +375,7 @@
   	addInterceptor( staticI );
   	mapI.setDebug(0);
   
  -	addInterceptor( new StandardSessionInterceptor());
  +	addInterceptor( new SimpleSessionStore());
   	
   	// access control ( find if a resource have constraints )
   	AccessInterceptor accessI=new AccessInterceptor();
  
  
  
  1.29      +33 -1     jakarta-tomcat/src/share/org/apache/tomcat/util/xml/XmlMapper.java
  
  Index: XmlMapper.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/util/xml/XmlMapper.java,v
  retrieving revision 1.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- XmlMapper.java	2000/11/01 21:39:35	1.28
  +++ XmlMapper.java	2000/11/22 01:10:30	1.29
  @@ -515,6 +515,15 @@
   	return new ObjectCreate( classN, attrib);
       }
   
  +    /** Create an object using an attribute value as the class name
  +	If no attribute use classN as a default. If the class name
  +	has no ".", use the third parameter as prefix
  +     */
  +    public XmlAction objectCreate( String classN, String attrib,String pref[])
  +    {
  +	return new ObjectCreate( classN, attrib, pref);
  +    }
  +
       /** Set object properties using XML attributes
        */
       public XmlAction setProperties(  ) {
  @@ -594,6 +603,7 @@
   class ObjectCreate extends XmlAction {
       String className;
       String attrib;
  +    String pref[]=null;
   
       /**
        * Create an object of the specified class name.
  @@ -619,6 +629,13 @@
   	this.attrib=attrib;
       }
   
  +    public ObjectCreate(String classN, String attrib, String pref[]) {
  +	className=classN;
  +	this.attrib=attrib;
  +	this.pref=pref;
  +    }
  +
  +    
       public void start( SaxContext ctx) throws Exception {
   	String tag=ctx.getCurrentElement();
   	String classN=className;
  @@ -627,8 +644,23 @@
   	    AttributeList attributes = ctx.getCurrentAttributes();
   	    if (attributes.getValue(attrib) != null)
   		classN= attributes.getValue(attrib);
  +	}
  +	Class c=null;
  +	if( pref!=null && classN.indexOf( "." ) <0 ) {
  +	    for( int i=0; i<pref.length; i++ ) {
  +		try {
  +		    c=Class.forName( pref[i] + classN );
  +		    if( c!=null ) break;
  +		} catch( Exception ex ) {
  +		    if( ctx.getDebug() > 0 )
  +			ctx.log( "Try " + pref[i] + classN );
  +		    // ignore
  +		}
  +	    }
  +	}
  +	if( c==null ) {
  +	    c=Class.forName( classN );
   	}
  -	Class c=Class.forName( classN );
   	Object o=c.newInstance();
   	ctx.pushObject(o);
   	if( ctx.getDebug() > 0 )