costin      02/02/06 09:36:07

  Modified:    jk/java/org/apache/jk/core WorkerEnv.java
  Log:
  Moved the process() logic in the HandlerDispatch, it doesn't have to be hardcoded.
  Added a 'home' property.
  Added 'notes' for the workerenv ( for generic properties stored by handlers )
  Removed the channel, consolidate Handler as the main 'plugin' mechanism.
  
  Revision  Changes    Path
  1.4       +35 -76    
jakarta-tomcat-connectors/jk/java/org/apache/jk/core/WorkerEnv.java
  
  Index: WorkerEnv.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/core/WorkerEnv.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- WorkerEnv.java    26 Jan 2002 07:22:23 -0000      1.3
  +++ WorkerEnv.java    6 Feb 2002 17:36:07 -0000       1.4
  @@ -79,26 +79,19 @@
   
       Hashtable properties;
   
  -    Webapp webapps[]=new Webapp[20];
  +    Object webapps[]=new Object[20];
       int webappCnt=0;
   
       public static final int ENDPOINT_NOTE=0;
       public static final int REQUEST_NOTE=1;
       int noteId[]=new int[4];
       String noteName[][]=new String[4][];
  +    private Object notes[]=new Object[32];
   
  -    static final int MAX_HANDLERS=32;
  -    static final int RESERVED=16;  // reserved names, backward compat
  -
  -    // Note that we don't make distinction between in and out
  -    // messages ( i.e. one id is used only in one direction )
  -    Handler handlers[]=new Handler[MAX_HANDLERS];
  -    String handlerNames[]=new String[MAX_HANDLERS];
  -    int currentId=RESERVED;
  -
  -    Hashtable workers=new Hashtable();
  -    Hashtable channels=new Hashtable();
  -
  +    Hashtable handlersMap=new Hashtable();
  +    // base dir for the jk webapp
  +    String home;
  +    
       public WorkerEnv() {
           for( int i=0; i<noteId.length; i++ ) {
               noteId[i]=7;
  @@ -106,9 +99,9 @@
           }
       }
       
  -    public int addWebapp( Webapp wa ) {
  +    public int addWebapp( Object wa ) {
           if( webappCnt >= webapps.length ) {
  -            Webapp newWebapps[]=new Webapp[ webapps.length + 20 ];
  +            Object newWebapps[]=new Object[ webapps.length + 20 ];
               System.arraycopy( webapps, 0, newWebapps, 0, webapps.length);
               webapps=newWebapps;
           }
  @@ -116,94 +109,60 @@
           return webappCnt++;
       }
   
  -    public Webapp getWebapp( int i ) {
  +    public void setJkHome( String s ) {
  +        home=s;
  +    }
  +
  +    public String getJkHome() {
  +        return home;
  +    }
  +    
  +    public Object getWebapp( int i ) {
           return webapps[i];
       }
   
       public int getWebappCount() {
           return webappCnt;
       }
  +    
  +    public final Object getNote(int i ) {
  +        return notes[i];
  +    }
   
  -    public void addHandler( Handler h ) {
  -        h.setWorkerEnv( this );
  -        h.init();
  +    public final void setNote(int i, Object o ) {
  +        notes[i]=o;
       }
   
       public int getNoteId( int type, String name ) {
  +        for( int i=0; i<noteId[type]; i++ ) {
  +            if( name.equals( noteName[type][i] ))
  +                return i;
  +        }
           int id=noteId[type]++;
           noteName[type][id]=name;
           return id;
       }
   
  -    public int registerMessageType( int id, String name, Handler h,
  -                                 String sig[] )
  -    {
  -     if( id < 0 ) {
  -         // try to find it by name
  -         for( int i=0; i< handlerNames.length; i++ )
  -             if( name.equals( handlerNames[i] ) ) return i;
  -         handlerNames[currentId]=name;
  -         handlers[currentId]=h;
  -         currentId++;
  -         return currentId;
  -     }
  -     // fixed id
  -     handlerNames[id]=name;
  -     handlers[id]=h;
  -     return id;
  -    }
  -
  -    public int processCallbacks( Channel ch, Endpoint ep, Msg hBuf )
  -        throws IOException
  -    {
  -        int type=hBuf.getByte();
  -        
  -        if( type > handlers.length ||
  -            handlers[type]==null ) {
  -         d( "Invalid handler " + type );
  -         return 500;
  -     }
  -
  -        if( dL > 0 )
  -            d( "Received " + type + " " + handlerNames[type]);
  -        
  -     Handler handler=handlers[type];
  -
  -        return handler.callback( type, ch, ep, hBuf );
  -    }
  -
  -    public void addWorker( String name, Worker w ) {
  +    public void addHandler( String name, JkHandler w ) {
           w.setWorkerEnv( this );
  -        workers.put( name, w );
  -    }
  -
  -    public Worker getWorker( String name ) {
  -        return (Worker)workers.get(name);
  +        w.setName( name );
  +        handlersMap.put( name, w );
       }
   
  -    public void addChannel( String name, Channel c ) {
  -        c.setWorkerEnv( this );
  -        channels.put( name, c );
  +    public JkHandler getHandler( String name ) {
  +        return (JkHandler)handlersMap.get(name);
       }
   
       public void start() throws IOException {
  -        Enumeration en=workers.keys();
  +        Enumeration en=handlersMap.keys();
           while( en.hasMoreElements() ) {
               String n=(String)en.nextElement();
  -            Worker w=(Worker)workers.get(n);
  +            JkHandler w=(JkHandler)handlersMap.get(n);
               w.init();
           }
  -
  -        en=channels.keys();
  -        while( en.hasMoreElements() ) {
  -            String n=(String)en.nextElement();
  -            Channel ch=(Channel)channels.get(n);
  -            ch.init();
  -        }
       }
       
  -
  -    private static final int dL=10;
  +    private static final int dL=0;
       private static void d(String s ) {
           System.err.println( "WorkerEnv: " + s );
       }
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to