Package org.apache.druid.sql.avatica
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:
DruidAvaticaJsonHandler- JSON-based protocolDruidAvaticaProtobufHandler- Protocol Buffers-based protocol
-
Nested Class Summary
Nested classes/interfaces inherited from class org.eclipse.jetty.server.Handler.Abstract
org.eclipse.jetty.server.Handler.Abstract.NonBlockingNested classes/interfaces inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
org.eclipse.jetty.util.component.AbstractLifeCycle.AbstractLifeCycleListener, org.eclipse.jetty.util.component.AbstractLifeCycle.StopExceptionNested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Container
org.eclipse.jetty.util.component.Container.InheritedListener, org.eclipse.jetty.util.component.Container.ListenerNested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Dumpable
org.eclipse.jetty.util.component.Dumpable.DumpableContainer, org.eclipse.jetty.util.component.Dumpable.DumpAppendableNested 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.WrapperNested 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.TaskNested classes/interfaces inherited from interface org.eclipse.jetty.util.component.LifeCycle
org.eclipse.jetty.util.component.LifeCycle.ListenerNested classes/interfaces inherited from interface org.eclipse.jetty.server.Request.Handler
org.eclipse.jetty.server.Request.Handler.AbortException -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final org.apache.calcite.avatica.metrics.MetricsSystemprotected final org.apache.calcite.avatica.metrics.Timerprotected final org.apache.calcite.avatica.remote.Serviceprotected final ThreadLocal<org.apache.calcite.avatica.util.UnsynchronizedBuffer>Fields inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
FAILED, STARTED, STARTING, STOPPED, STOPPINGFields inherited from interface org.eclipse.jetty.util.component.Dumpable
LEGENDFields inherited from interface org.eclipse.jetty.util.thread.Invocable
__nonBlocking, NOOPFields inherited from interface org.apache.calcite.avatica.server.MetricsAwareAvaticaHandler
HANDLER_PREFIX, REQUEST_TIMER_NAME -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedDruidAvaticaHandler(DruidMeta druidMeta, AvaticaMonitor avaticaMonitor, Class<?> timerClass) -
Method Summary
Modifier and TypeMethodDescriptionorg.apache.calcite.avatica.metrics.MetricsSystemvoidsetServerRpcMetadata(org.apache.calcite.avatica.remote.Service.RpcMetadataResponse metadata) Methods inherited from class org.eclipse.jetty.server.Handler.Abstract
destroy, doStart, doStop, getInvocationType, getServer, setServerMethods 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, updateBeansMethods inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
getEventListeners, getState, getState, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, setEventListeners, start, stop, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.eclipse.jetty.util.component.Container
getCachedBeans, getEventListenersMethods inherited from interface org.eclipse.jetty.util.component.Destroyable
destroyMethods inherited from interface org.eclipse.jetty.util.component.Dumpable
dumpSelfMethods inherited from interface org.eclipse.jetty.util.component.Dumpable.DumpableContainer
isDumpableMethods inherited from interface org.eclipse.jetty.server.Handler
getServer, setServerMethods inherited from interface org.eclipse.jetty.util.component.LifeCycle
addEventListener, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeEventListener, start, stopMethods 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
-
-
Constructor Details
-
DruidAvaticaHandler
protected DruidAvaticaHandler(DruidMeta druidMeta, AvaticaMonitor avaticaMonitor, Class<?> timerClass)
-
-
Method Details
-
getMetrics
public org.apache.calcite.avatica.metrics.MetricsSystem getMetrics()- Specified by:
getMetricsin interfaceorg.apache.calcite.avatica.server.MetricsAwareAvaticaHandler
-
setServerRpcMetadata
public void setServerRpcMetadata(org.apache.calcite.avatica.remote.Service.RpcMetadataResponse metadata) - Specified by:
setServerRpcMetadatain interfaceorg.apache.calcite.avatica.server.AvaticaHandler
-