## org.apache.jk.core
Class JkHandler

    java.lang.Object
      org.apache.jk.core.JkHandler

All Implemented Interfaces:
  java.util.EventListener, javax.management.MBeanRegistration, javax.management.NotificationListener

Direct Known Subclasses:
  AprImpl, ChannelShm, ChannelSocket, HandlerDispatch, HandlerRequest, JkCoyoteHandler, JkMX, JniHandler, ModJkMX, WorkerDummy

public class JkHandler
extends java.lang.Object
implements javax.management.MBeanRegistration, javax.management.NotificationListener

Author:
  Costin Manolache

Field Summary
`protected java.lang.String` `domain`
`static int` `ERROR`
`static int` `HANDLE_FLUSH`
`static int` `HANDLE_RECEIVE_PACKET`
`static int` `HANDLE_SEND_PACKET`
`static int` `HANDLE_THREAD_END`
`protected int` `id`
`static int` `LAST`
`protected javax.management.MBeanServer` `mserver`
`protected java.lang.String` `name`
`protected JkHandler` `next`
`protected java.lang.String` `nextName`
`static int` `OK`
`protected javax.management.ObjectName` `oname`
`protected java.util.Properties` `properties`
`protected WorkerEnv` `wEnv`

Constructor Summary
`JkHandler()`

Method Summary
`void` `addHandlerCallback(JkHandler w)` Experimental, will be replaced.
`MsgContext` `createMsgContext()`
`void` `destroy()` Clean up and stop the handler
`java.lang.String` `getDomain()`
`int` `getId()`
`java.lang.String` `getName()`
`java.lang.String` `getNext()`
`javax.management.ObjectName` `getObjectName()`
`java.lang.String` `getProperty(java.lang.String name)`
`void` `handleNotification(javax.management.Notification notification, java.lang.Object handback)`
`void` `init()` Should register the request types it can handle, same style as apache2.
`int` `invoke(Msg msg, MsgContext mc)`
`void` `pause()`
`void` `postDeregister()`
`void` `postRegister(java.lang.Boolean registrationDone)`
`void` `preDeregister()`
`javax.management.ObjectName` `preRegister(javax.management.MBeanServer server, javax.management.ObjectName oname)`
`void` `resume()`
`void` `setId(int id)` Set the id of the worker.
`void` `setName(java.lang.String s)` Set the name of the handler.
`void` `setNext(JkHandler h)` Catalina-style "recursive" invocation.
`void` `setNext(java.lang.String s)`
`void` `setProperty(java.lang.String name, java.lang.String value)`
`void` `setWorkerEnv(WorkerEnv we)`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### OK

    public static final int OK

See Also:
  Constant Field Values

### LAST

    public static final int LAST

See Also:
  Constant Field Values

### ERROR

    public static final int ERROR

See Also:
  Constant Field Values

### properties

    protected java.util.Properties properties

### wEnv

    protected WorkerEnv wEnv

### next

    protected JkHandler next

### nextName

    protected java.lang.String nextName

### name

    protected java.lang.String name

### id

    protected int id

### HANDLE_RECEIVE_PACKET

    public static final int HANDLE_RECEIVE_PACKET

See Also:
  Constant Field Values

### HANDLE_SEND_PACKET

    public static final int HANDLE_SEND_PACKET

See Also:
  Constant Field Values

### HANDLE_FLUSH

    public static final int HANDLE_FLUSH

See Also:
  Constant Field Values

### HANDLE_THREAD_END

    public static final int HANDLE_THREAD_END

See Also:
  Constant Field Values

### domain

    protected java.lang.String domain

### oname

    protected javax.management.ObjectName oname

### mserver

    protected javax.management.MBeanServer mserver

Constructor Detail

### JkHandler

    public JkHandler()

Method Detail

### setWorkerEnv

    public void setWorkerEnv(WorkerEnv we)

### setName

    public void setName(java.lang.String s)

  Set the name of the handler. Will allways be called by worker env after creating the worker.

### getName

    public java.lang.String getName()

### setId

    public void setId(int id)

  Set the id of the worker. We use an id for faster dispatch. Since we expect a decent number of handler in system, the id is unique - that means we may have to allocate bigger dispatch tables. ( easy to fix if needed )

### getId

    public int getId()

### setNext

    public void setNext(JkHandler h)

  Catalina-style "recursive" invocation. A chain is used for Apache/3.3 style iterative invocation.

### setNext

    public void setNext(java.lang.String s)

### getNext

    public java.lang.String getNext()

### init

    public void init()
              throws java.io.IOException

  Should register the request types it can handle, same style as apache2.

  Throws:
    `java.io.IOException`

### destroy

    public void destroy()
                 throws java.io.IOException

  Clean up and stop the handler

  Throws:
    `java.io.IOException`

### createMsgContext

    public MsgContext createMsgContext()

### invoke

    public int invoke(Msg msg,
                      MsgContext mc)
               throws java.io.IOException

  Throws:
    `java.io.IOException`

### setProperty

    public void setProperty(java.lang.String name,
                            java.lang.String value)

### getProperty

    public java.lang.String getProperty(java.lang.String name)

### addHandlerCallback

    public void addHandlerCallback(JkHandler w)

  Experimental, will be replaced. This allows handlers to be notified when other handlers are added.

### handleNotification

    public void handleNotification(javax.management.Notification notification,
                                   java.lang.Object handback)

  Specified by:
    `handleNotification` in interface `javax.management.NotificationListener`

### getObjectName

    public javax.management.ObjectName getObjectName()

### getDomain

    public java.lang.String getDomain()

### preRegister

    public javax.management.ObjectName preRegister(javax.management.MBeanServer server,
                                                   javax.management.ObjectName oname)
                                            throws java.lang.Exception

  Specified by:
    `preRegister` in interface `javax.management.MBeanRegistration`
  Throws:
    `java.lang.Exception`

### postRegister

    public void postRegister(java.lang.Boolean registrationDone)

  Specified by:
    `postRegister` in interface `javax.management.MBeanRegistration`

### preDeregister

    public void preDeregister()
                       throws java.lang.Exception

  Specified by:
    `preDeregister` in interface `javax.management.MBeanRegistration`
  Throws:
    `java.lang.Exception`

### postDeregister

    public void postDeregister()

  Specified by:
    `postDeregister` in interface `javax.management.MBeanRegistration`

### pause

    public void pause()
               throws java.lang.Exception

  Throws:
    `java.lang.Exception`

### resume

    public void resume()
                throws java.lang.Exception

  Throws:
    `java.lang.Exception`

Copyright © 2000-2003 Apache Software Foundation. All Rights Reserved.