Class DruidAvaticaHandler

java.lang.Object
org.eclipse.jetty.util.component.AbstractLifeCycle
org.eclipse.jetty.util.component.ContainerLifeCycle
org.eclipse.jetty.server.Handler.Abstract
org.apache.druid.sql.avatica.DruidAvaticaHandler
All Implemented Interfaces:
org.apache.calcite.avatica.server.AvaticaHandler, org.apache.calcite.avatica.server.MetricsAwareAvaticaHandler, org.eclipse.jetty.server.Handler, org.eclipse.jetty.server.Request.Handler, org.eclipse.jetty.util.component.Container, org.eclipse.jetty.util.component.Destroyable, org.eclipse.jetty.util.component.Dumpable, org.eclipse.jetty.util.component.Dumpable.DumpableContainer, org.eclipse.jetty.util.component.LifeCycle, org.eclipse.jetty.util.thread.Invocable
Direct Known Subclasses:
DruidAvaticaJsonHandler, DruidAvaticaProtobufHandler

public abstract class DruidAvaticaHandler extends org.eclipse.jetty.server.Handler.Abstract implements org.apache.calcite.avatica.server.MetricsAwareAvaticaHandler
Base class for Druid's custom Avatica server handlers that are compatible with Jetty 12.

This class provides a Jetty 12-compatible implementation of MetricsAwareAvaticaHandler to enable Druid's JDBC support via Apache Calcite's Avatica server. Since Calcite's Avatica server does not natively support Jetty 12, this custom implementation allows Druid to continue using Avatica for JDBC connectivity during the Jetty 12 migration.

Concrete implementations handle different wire protocols:

  • Nested Class Summary

    Nested classes/interfaces inherited from class org.eclipse.jetty.server.Handler.Abstract

    org.eclipse.jetty.server.Handler.Abstract.NonBlocking

    Nested classes/interfaces inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle

    org.eclipse.jetty.util.component.AbstractLifeCycle.AbstractLifeCycleListener, org.eclipse.jetty.util.component.AbstractLifeCycle.StopException

    Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Container

    org.eclipse.jetty.util.component.Container.InheritedListener, org.eclipse.jetty.util.component.Container.Listener

    Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Dumpable

    org.eclipse.jetty.util.component.Dumpable.DumpableContainer, org.eclipse.jetty.util.component.Dumpable.DumpAppendable

    Nested classes/interfaces inherited from interface org.eclipse.jetty.server.Handler

    org.eclipse.jetty.server.Handler.Abstract, org.eclipse.jetty.server.Handler.AbstractContainer, org.eclipse.jetty.server.Handler.Collection, org.eclipse.jetty.server.Handler.Container, org.eclipse.jetty.server.Handler.Sequence, org.eclipse.jetty.server.Handler.Singleton, org.eclipse.jetty.server.Handler.Wrapper

    Nested classes/interfaces inherited from interface org.eclipse.jetty.util.thread.Invocable

    org.eclipse.jetty.util.thread.Invocable.Callable, org.eclipse.jetty.util.thread.Invocable.InvocationType, org.eclipse.jetty.util.thread.Invocable.ReadyTask, org.eclipse.jetty.util.thread.Invocable.Task

    Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.LifeCycle

    org.eclipse.jetty.util.component.LifeCycle.Listener

    Nested classes/interfaces inherited from interface org.eclipse.jetty.server.Request.Handler

    org.eclipse.jetty.server.Request.Handler.AbortException
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected final org.apache.calcite.avatica.metrics.MetricsSystem
     
    protected final org.apache.calcite.avatica.metrics.Timer
     
    protected final org.apache.calcite.avatica.remote.Service
     
    protected final ThreadLocal<org.apache.calcite.avatica.util.UnsynchronizedBuffer>
     

    Fields inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle

    FAILED, STARTED, STARTING, STOPPED, STOPPING

    Fields inherited from interface org.eclipse.jetty.util.component.Dumpable

    LEGEND

    Fields inherited from interface org.eclipse.jetty.util.thread.Invocable

    __nonBlocking, NOOP

    Fields inherited from interface org.apache.calcite.avatica.server.MetricsAwareAvaticaHandler

    HANDLER_PREFIX, REQUEST_TIMER_NAME
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    DruidAvaticaHandler(DruidMeta druidMeta, AvaticaMonitor avaticaMonitor, Class<?> timerClass)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    org.apache.calcite.avatica.metrics.MetricsSystem
     
    void
    setServerRpcMetadata(org.apache.calcite.avatica.remote.Service.RpcMetadataResponse metadata)
     

    Methods inherited from class org.eclipse.jetty.server.Handler.Abstract

    destroy, doStart, doStop, getInvocationType, getServer, setServer

    Methods inherited from class org.eclipse.jetty.util.component.ContainerLifeCycle

    addBean, addBean, addEventListener, addManaged, contains, dump, dump, dump, dumpObjects, dumpStdErr, getBean, getBeans, getBeans, getContainedBeans, getContainedBeans, installBean, installBean, isAuto, isManaged, isUnmanaged, manage, removeBean, removeBeans, removeEventListener, setBeans, start, stop, unmanage, updateBean, updateBean, updateBeans, updateBeans

    Methods inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle

    getEventListeners, getState, getState, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, setEventListeners, start, stop, toString

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

    Methods inherited from interface org.eclipse.jetty.util.component.Container

    getCachedBeans, getEventListeners

    Methods inherited from interface org.eclipse.jetty.util.component.Destroyable

    destroy

    Methods inherited from interface org.eclipse.jetty.util.component.Dumpable

    dumpSelf

    Methods inherited from interface org.eclipse.jetty.util.component.Dumpable.DumpableContainer

    isDumpable

    Methods inherited from interface org.eclipse.jetty.server.Handler

    getServer, setServer

    Methods inherited from interface org.eclipse.jetty.util.component.LifeCycle

    addEventListener, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeEventListener, start, stop

    Methods inherited from interface org.eclipse.jetty.server.Request.Handler

    getInvocationType, handle
  • Field Details

    • service

      protected final org.apache.calcite.avatica.remote.Service service
    • metrics

      protected final org.apache.calcite.avatica.metrics.MetricsSystem metrics
    • requestTimer

      protected final org.apache.calcite.avatica.metrics.Timer requestTimer
    • threadLocalBuffer

      protected final ThreadLocal<org.apache.calcite.avatica.util.UnsynchronizedBuffer> threadLocalBuffer
  • Constructor Details

  • Method Details

    • getMetrics

      public org.apache.calcite.avatica.metrics.MetricsSystem getMetrics()
      Specified by:
      getMetrics in interface org.apache.calcite.avatica.server.MetricsAwareAvaticaHandler
    • setServerRpcMetadata

      public void setServerRpcMetadata(org.apache.calcite.avatica.remote.Service.RpcMetadataResponse metadata)
      Specified by:
      setServerRpcMetadata in interface org.apache.calcite.avatica.server.AvaticaHandler