Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[refactor] Migrate Usages of Streamable to Writeable #34389

Closed
talevy opened this issue Oct 11, 2018 · 6 comments · Fixed by #44647
Closed

[refactor] Migrate Usages of Streamable to Writeable #34389

talevy opened this issue Oct 11, 2018 · 6 comments · Fixed by #44647
Labels

Comments

@talevy
Copy link
Contributor

talevy commented Oct 11, 2018

Reason for migration

Implementers of the Streamable interface almost always declare a no arg constructor that is exclusively used for creating "empty" objects on which you then call #readFrom(StreamInput). Because #readFrom(StreamInput) isn't part of the constructor the fields on implementers cannot be final. It is these reasons that this interface has fallen out of favor compared to Writeable

Migration plan

Some steps have already begun:

Next Steps:

  • following similar changes done in the previous PRs, keep attacking classes not implementing Writeable and Writeable.Reader. List of class hierarchy is listed below

Example Migration

Let's assume there is a concrete class that does not have any constraints via inheritance, and can simply be migrated from Streamable to Writeable, it is best to do the following:

  1. If there are infrastructure constraints inhibiting removal of Streamable, it is best to replace the readFrom method override with a method that throws an exception. This ensures that the Streamable interface for this class is never actually used.
@Override
public void readFrom(StreamInput in) throws IOException {
    throw new UnsupportedOperationException("usage of Streamable is to be replaced by Writeable");
}
  1. Migrate the original readFrom implementation into a Writeable.Reader-compatible constructor
public SearchRequest(StreamInput in) throws IOException {
  super(in); // depending on inheritance
  ... // set variables
}
  1. make instance variables final
  2. Remove the empty constructor. Assuming there is an empty constructor just for Streamable, and not for something like request builders for the transport client, it should be possible. Otherwise, leave it be :(

Classes (757 as of opening this issue) that implement Streamble

Class Hierarchy

ShardId(org.elasticsearch.index.shard)
SearchHits (org.elasticsearch.search)
Alias (org.elasticsearch.action.admin.indices.alias)
FlushStats (org.elasticsearch.index.flush)
RecoveryStats (org.elasticsearch.index.recovery)
Item in MultiSearchResponse (org.elasticsearch.action.search)
ShardInfo in ReplicationResponse (org.elasticsearch.action.support.replication)
IndexingStats (org.elasticsearch.index.shard)
ClusterBlock (org.elasticsearch.cluster.block)
ShardCounts in SyncedFlushResponse (org.elasticsearch.action.admin.indices.flush)
TestStreamable in BytesStreamsTests (org.elasticsearch.common.io.stream)
PendingClusterTask (org.elasticsearch.cluster.service)
QueryExplanation (org.elasticsearch.action.admin.indices.validate.query)
AggregatedDfs (org.elasticsearch.search.dfs)
EmptyResult in TransportBroadcastByNodeAction (org.elasticsearch.action.support.broadcast.node)
MultiTermVectorsItemResponse (org.elasticsearch.action.termvectors)
WatchExecutionSnapshot (org.elasticsearch.xpack.core.watcher.execution)
SearchHit (org.elasticsearch.search)
AnalyzeTokenList in DetailAnalyzeResponse (org.elasticsearch.action.admin.indices.analyze)
MergeStats (org.elasticsearch.index.merge)
StoreFilesMetaData in TransportNodesListShardStoreMetaData (org.elasticsearch.indices.store)
Failure in MultiGetResponse (org.elasticsearch.action.get)
DocumentField (org.elasticsearch.common.document)
BulkItemResponse (org.elasticsearch.action.bulk)
AnalyzeToken in AnalyzeResponse (org.elasticsearch.action.admin.indices.analyze)
ShardSegments (org.elasticsearch.action.admin.indices.segments)
File in RecoveryState (org.elasticsearch.indices.recovery)
MultiGetItemResponse (org.elasticsearch.action.get)
Stats in IndexingStats (org.elasticsearch.index.shard)
Item in MultiGetRequest (org.elasticsearch.action.get)
ShardUpgradeResult (org.elasticsearch.action.admin.indices.upgrade.post)
ApplicationResourcePrivileges in RoleDescriptor (org.elasticsearch.xpack.core.security.authz)
RefreshStats (org.elasticsearch.index.refresh)
TranslogStats (org.elasticsearch.index.translog)
CharFilteredText in DetailAnalyzeResponse (org.elasticsearch.action.admin.indices.analyze)
RecoveryState (org.elasticsearch.indices.recovery)
GetStats (org.elasticsearch.index.get)
ShardsSyncedFlushResult (org.elasticsearch.indices.flush)
VerificationFailure (org.elasticsearch.repositories)
CommitStats (org.elasticsearch.index.engine)
FieldDataStats (org.elasticsearch.index.fielddata)
StoreStats (org.elasticsearch.index.store)
IndicesPrivileges in RoleDescriptor (org.elasticsearch.xpack.core.security.authz)
SearchPhaseResult (org.elasticsearch.search)
    QueryFetchSearchResult (org.elasticsearch.search.fetch)
    ScrollQuerySearchResult (org.elasticsearch.search.query)
    FetchSearchResult (org.elasticsearch.search.fetch)
    QuerySearchResult (org.elasticsearch.search.query)
    CanMatchResponse in SearchTransportService (org.elasticsearch.action.search)
    TestSearchPhaseResult in SearchAsyncActionTests (org.elasticsearch.action.search)
    ScrollQueryFetchSearchResult (org.elasticsearch.search.fetch)
    DfsSearchResult (org.elasticsearch.search.dfs)
    Anonymous in executePhaseOnShard() in Anonymous in testLotsOfShards() in CanMatchPreFilterSearchPhaseTests (org.elasticsearch.action.search)
WarmerStats (org.elasticsearch.index.warmer)
GetResult (org.elasticsearch.index.get)
Failure in MultiTermVectorsResponse (org.elasticsearch.action.termvectors)
IndexShardStats (org.elasticsearch.action.admin.indices.stats)
SnapshotStats (org.elasticsearch.action.admin.cluster.snapshots.status)
BoundTransportAddress (org.elasticsearch.common.transport)
SegmentsStats (org.elasticsearch.index.engine)
QueuedWatch (org.elasticsearch.xpack.core.watcher.execution)
WriteRequest (org.elasticsearch.action.support)
    DeleteRoleRequest (org.elasticsearch.xpack.core.security.action.role)
    PutRoleMappingRequest (org.elasticsearch.xpack.core.security.action.rolemapping)
    PutPrivilegesRequest (org.elasticsearch.xpack.core.security.action.privilege)
    PutUserRequest (org.elasticsearch.xpack.core.security.action.user)
    ReplicatedWriteRequest (org.elasticsearch.action.support.replication)
        DeleteRequest (org.elasticsearch.action.delete)
        BulkShardOperationsRequest (org.elasticsearch.xpack.ccr.action.bulk)
        TestRequest in TransportWriteActionTests (org.elasticsearch.action.support.replication)
        IndexRequest (org.elasticsearch.action.index)
        BulkShardRequest (org.elasticsearch.action.bulk)
        ResyncReplicationRequest (org.elasticsearch.action.resync)
    UpdateRequest (org.elasticsearch.action.update)
    ChangePasswordRequest (org.elasticsearch.xpack.core.security.action.user)
    PutRoleRequest (org.elasticsearch.xpack.core.security.action.role)
    DeletePrivilegesRequest (org.elasticsearch.xpack.core.security.action.privilege)
    SetEnabledRequest (org.elasticsearch.xpack.core.security.action.user)
    DeleteUserRequest (org.elasticsearch.xpack.core.security.action.user)
    DeleteRoleMappingRequest (org.elasticsearch.xpack.core.security.action.rolemapping)
    BulkRequest (org.elasticsearch.action.bulk)
StoreStatus in IndicesShardStoresResponse (org.elasticsearch.action.admin.indices.shards)
RestoreInfo (org.elasticsearch.snapshots)
ShardStats (org.elasticsearch.action.admin.indices.stats)
SnapshotStatus (org.elasticsearch.action.admin.cluster.snapshots.status)
InternalAggregations (org.elasticsearch.search.aggregations)
Counters (org.elasticsearch.xpack.core.watcher.common.stats)
HighlightField (org.elasticsearch.search.fetch.subphase.highlight)
CompletionStats (org.elasticsearch.search.suggest.completion)
ClusterSearchShardsGroup (org.elasticsearch.action.admin.cluster.shards)
NodeIndicesStats (org.elasticsearch.indices)
Index in RecoveryState (org.elasticsearch.indices.recovery)
TransportMessage (org.elasticsearch.transport)
    LocalHostMockMessage in IndexAuditTrailTests (org.elasticsearch.xpack.security.audit.index)
    TransportRequest (org.elasticsearch.transport)
        FailedShardEntry in ShardStateAction (org.elasticsearch.cluster.action.shard)
        BroadcastShardRequest (org.elasticsearch.action.support.broadcast)
            ShardValidateQueryRequest (org.elasticsearch.action.admin.indices.validate.query)
            ShardUpgradeRequest (org.elasticsearch.action.admin.indices.upgrade.post)
        ShardFetchRequest (org.elasticsearch.search.fetch)
            ShardFetchSearchRequest (org.elasticsearch.search.fetch)
        RecoveryFilesInfoRequest (org.elasticsearch.indices.recovery)
        RecoveryFinalizeRecoveryRequest (org.elasticsearch.indices.recovery)
        PreShardSyncedFlushRequest in SyncedFlushService (org.elasticsearch.indices.flush)
        ShardSyncedFlushRequest in SyncedFlushService (org.elasticsearch.indices.flush)
        MasterPingRequest in MasterFaultDetection (org.elasticsearch.discovery.zen)
        ProxyRequest in TransportActionProxy (org.elasticsearch.transport)
        HandshakeRequest in TransportService (org.elasticsearch.transport)
        AllocateDangledRequest in LocalAllocateDangledIndices (org.elasticsearch.gateway)
        LeaveRequest in MembershipAction (org.elasticsearch.discovery.zen)
        BytesTransportRequest (org.elasticsearch.transport)
        StringMessageRequest in AbstractSimpleTransportTestCase (org.elasticsearch.transport)
        TestRequest in TransportClientNodesServiceTests (org.elasticsearch.client.transport)
        ActionRequest (org.elasticsearch.action)
            FakeRequest in testPluginCanRegisterAction() in ActionModuleTests (org.elasticsearch.action)
            SamlInvalidateSessionRequest (org.elasticsearch.xpack.core.security.action.saml)
            MonitoringBulkRequest (org.elasticsearch.xpack.core.monitoring.action)
            PutWatchRequest (org.elasticsearch.protocol.xpack.watcher)
            PutWatchRequest (org.elasticsearch.protocol.xpack.watcher)
            HasPrivilegesRequest (org.elasticsearch.xpack.core.security.action.user)
            Request in FindFileStructureAction (org.elasticsearch.xpack.core.ml.action)
            BroadcastRequest (org.elasticsearch.action.support.broadcast)
                UpgradeRequest (org.elasticsearch.action.admin.indices.upgrade.post)
                SyncedFlushRequest (org.elasticsearch.action.admin.indices.flush)
                UpgradeStatusRequest (org.elasticsearch.action.admin.indices.upgrade.get)
                IndicesSegmentsRequest (org.elasticsearch.action.admin.indices.segments)
                RecoveryRequest (org.elasticsearch.action.admin.indices.recovery)
                ForceMergeRequest (org.elasticsearch.action.admin.indices.forcemerge)
                ValidateQueryRequest (org.elasticsearch.action.admin.indices.validate.query)
                FlushRequest (org.elasticsearch.action.admin.indices.flush)
                IndicesStatsRequest (org.elasticsearch.action.admin.indices.stats)
                Request in TransportBroadcastByNodeActionTests (org.elasticsearch.action.support.broadcast.node)
                DummyBroadcastRequest in BroadcastReplicationTests (org.elasticsearch.action.support.replication)
                RefreshRequest (org.elasticsearch.action.admin.indices.refresh)
                ClearIndicesCacheRequest (org.elasticsearch.action.admin.indices.cache.clear)
            PutCalendarRequest (org.elasticsearch.client.ml)
            AuthenticateRequest (org.elasticsearch.xpack.core.security.action.user)
            Request in DeleteExpiredDataAction (org.elasticsearch.xpack.core.ml.action)
            Request in ValidateDetectorAction (org.elasticsearch.xpack.core.ml.action)
            Request in DeleteModelSnapshotAction (org.elasticsearch.xpack.core.ml.action)
            MultiTermVectorsRequest (org.elasticsearch.action.termvectors)
            DeleteForecastRequest (org.elasticsearch.client.ml)
            LivenessRequest (org.elasticsearch.action.admin.cluster.node.liveness)
            Request in ValidateJobConfigAction (org.elasticsearch.xpack.core.ml.action)
            SimulatePipelineRequest (org.elasticsearch.action.ingest)
            Request in PreviewDatafeedAction (org.elasticsearch.xpack.core.ml.action)
            GetOverallBucketsRequest (org.elasticsearch.client.ml)
            Request in GetRollupIndexCapsAction (org.elasticsearch.xpack.core.rollup.action)
            Request in GetCalendarsAction (org.elasticsearch.xpack.core.ml.action)
            Request in GetCalendarEventsAction (org.elasticsearch.xpack.core.ml.action)
            UpdateJobRequest (org.elasticsearch.client.ml)
            Request in GetModelSnapshotsAction (org.elasticsearch.xpack.core.ml.action)
            GetDatafeedRequest (org.elasticsearch.client.ml)
            PostDataRequest (org.elasticsearch.client.ml)
            XPackInfoRequest (org.elasticsearch.protocol.xpack)
            XPackInfoRequest (org.elasticsearch.protocol.xpack)
            MockIndicesRequest (org.elasticsearch.action)
                MockIndicesRequest in LoggingAuditTrailTests (org.elasticsearch.xpack.security.audit.logfile)
                MockIndicesRequest in LoggingAuditTrailFilterTests (org.elasticsearch.xpack.security.audit.logfile)
            ClearScrollRequest (org.elasticsearch.action.search)
            SamlPrepareAuthenticationRequest (org.elasticsearch.xpack.core.security.action.saml)
            PutPrivilegesRequest (org.elasticsearch.xpack.core.security.action.privilege)
            PutUserRequest (org.elasticsearch.xpack.core.security.action.user)
            Request in GetInfluencersAction (org.elasticsearch.xpack.core.ml.action)
            GetPrivilegesRequest (org.elasticsearch.xpack.core.security.action.privilege)
            AbstractSqlRequest (org.elasticsearch.xpack.sql.action)
                SqlClearCursorRequest (org.elasticsearch.xpack.sql.action)
                AbstractSqlQueryRequest (org.elasticsearch.xpack.sql.action)
                    SqlTranslateRequest (org.elasticsearch.xpack.sql.action)
                    SqlQueryRequest (org.elasticsearch.xpack.sql.action)
            SearchRequest (org.elasticsearch.action.search)
            Request in PutCalendarAction (org.elasticsearch.xpack.core.ml.action)
            Request in GrokProcessorGetAction (org.elasticsearch.ingest.common)
            MultiSearchRequest (org.elasticsearch.action.search)
            Request in MlInfoAction (org.elasticsearch.xpack.core.ml.action)
            MainRequest (org.elasticsearch.action.main)
            GetWatchRequest (org.elasticsearch.xpack.core.watcher.transport.actions.get)
            MasterNodeRequest (org.elasticsearch.action.support.master)
                AcknowledgedRequest (org.elasticsearch.action.support.master)
                    Request in UpdateJobAction (org.elasticsearch.xpack.core.ml.action)
                    Request in DeleteCalendarAction (org.elasticsearch.xpack.core.ml.action)
                    DeleteRepositoryRequest (org.elasticsearch.action.admin.cluster.repositories.delete)
                    PutStoredScriptRequest (org.elasticsearch.action.admin.cluster.storedscripts)
                    Request in DeleteDatafeedAction (org.elasticsearch.xpack.core.ml.action)
                    DeleteStoredScriptRequest (org.elasticsearch.action.admin.cluster.storedscripts)
                    Request in DeleteFilterAction (org.elasticsearch.xpack.core.ml.action)
                    RolloverRequest (org.elasticsearch.action.admin.indices.rollover)
                    Request in DeleteForecastAction (org.elasticsearch.xpack.core.ml.action)
                    OpenIndexRequest (org.elasticsearch.action.admin.indices.open)
                    UpdateSettingsRequest (org.elasticsearch.action.admin.indices.settings.put)
                        Anonymous in createTestInstance() in UpdateSettingsRequestTests (org.elasticsearch.action.admin.indices.settings.put)
                    PutRepositoryRequest (org.elasticsearch.action.admin.cluster.repositories.put)
                    Request in PutRollupJobAction (org.elasticsearch.xpack.core.rollup.action)
                    ClusterUpdateSettingsRequest (org.elasticsearch.action.admin.cluster.settings)
                    ResizeRequest (org.elasticsearch.action.admin.indices.shrink)
                    CreateIndexRequest (org.elasticsearch.action.admin.indices.create)
                    Request in PutDatafeedAction (org.elasticsearch.xpack.core.ml.action)
                    PutLicenseRequest (org.elasticsearch.license)
                    Request in DeleteAutoFollowPatternAction (org.elasticsearch.xpack.core.ccr.action)
                    Request in PutJobAction (org.elasticsearch.xpack.core.ml.action)
                    DeleteIndexRequest (org.elasticsearch.action.admin.indices.delete)
                    VerifyRepositoryRequest (org.elasticsearch.action.admin.cluster.repositories.verify)
                    Request in DeleteJobAction (org.elasticsearch.xpack.core.ml.action)
                    ClusterRerouteRequest (org.elasticsearch.action.admin.cluster.reroute)
                    IndicesAliasesRequest (org.elasticsearch.action.admin.indices.alias)
                    UpgradeSettingsRequest (org.elasticsearch.action.admin.indices.upgrade.post)
                    DeletePipelineRequest (org.elasticsearch.action.ingest)
                    PutLicenseRequest (org.elasticsearch.protocol.xpack.license)
                    PutLicenseRequest (org.elasticsearch.protocol.xpack.license)
                    CloseIndexRequest (org.elasticsearch.action.admin.indices.close)
                    Request in CreateAndFollowIndexAction (org.elasticsearch.xpack.core.ccr.action)
                    PutMappingRequest (org.elasticsearch.action.admin.indices.mapping.put)
                    PutPipelineRequest (org.elasticsearch.action.ingest)
                    Request in DeleteRollupJobAction (org.elasticsearch.xpack.core.rollup.action)
                    Request in UpdateDatafeedAction (org.elasticsearch.xpack.core.ml.action)
                    DeleteLicenseRequest (org.elasticsearch.protocol.xpack.license)
                    DeleteLicenseRequest (org.elasticsearch.protocol.xpack.license)
                    Request in RevertModelSnapshotAction (org.elasticsearch.xpack.core.ml.action)
                    Request in DeleteCalendarEventAction (org.elasticsearch.xpack.core.ml.action)
                    PostStartBasicRequest (org.elasticsearch.license)
                    Request in PutAutoFollowPatternAction (org.elasticsearch.xpack.core.ccr.action)
                Request in OpenJobAction (org.elasticsearch.xpack.core.ml.action)
                WatcherServiceRequest (org.elasticsearch.xpack.core.watcher.transport.actions.service)
                PostStartTrialRequest (org.elasticsearch.license)
                GetSnapshotsRequest (org.elasticsearch.action.admin.cluster.snapshots.get)
                CreateSnapshotRequest (org.elasticsearch.action.admin.cluster.snapshots.create)
                Request in StartPersistentTaskAction (org.elasticsearch.persistent)
                Request in UpdatePersistentTaskStatusAction (org.elasticsearch.persistent)
                DeleteIndexTemplateRequest (org.elasticsearch.action.admin.indices.template.delete)
                Request in TransportMasterNodeActionTests (org.elasticsearch.action.support.master)
                Request in UpdateInternalOrPrivateAction in InternalOrPrivateSettingsPlugin (org.elasticsearch.indices.settings)
                RestoreSnapshotRequest (org.elasticsearch.action.admin.cluster.snapshots.restore)
                SnapshotsStatusRequest (org.elasticsearch.action.admin.cluster.snapshots.status)
                XPackUsageRequest (org.elasticsearch.protocol.xpack)
                XPackUsageRequest (org.elasticsearch.protocol.xpack)
                PutIndexTemplateRequest (org.elasticsearch.action.admin.indices.template.put)
                Request in RemovePersistentTaskAction (org.elasticsearch.persistent)
                Request in StartDatafeedAction (org.elasticsearch.xpack.core.ml.action)
                DeleteSnapshotRequest (org.elasticsearch.action.admin.cluster.snapshots.delete)
                MasterNodeReadRequest (org.elasticsearch.action.support.master)
                    GetLicenseRequest (org.elasticsearch.protocol.xpack.license)
                    GetLicenseRequest (org.elasticsearch.protocol.xpack.license)
                    GetStoredScriptRequest (org.elasticsearch.action.admin.cluster.storedscripts)
                    Request in IndexUpgradeAction (org.elasticsearch.xpack.core.upgrade.actions)
                    PendingClusterTasksRequest (org.elasticsearch.action.admin.cluster.tasks)
                    ClusterInfoRequest (org.elasticsearch.action.support.master.info)
                        GetIndexRequest (org.elasticsearch.action.admin.indices.get)
                        GetMappingsRequest (org.elasticsearch.action.admin.indices.mapping.get)
                    IndicesShardStoresRequest (org.elasticsearch.action.admin.indices.shards)
                    GetAliasesRequest (org.elasticsearch.action.admin.indices.alias.get)
                    ClusterGetSettingsRequest (org.elasticsearch.action.admin.cluster.settings)
                    Request in GetDatafeedsStatsAction (org.elasticsearch.xpack.core.ml.action)
                    IndexUpgradeInfoRequest (org.elasticsearch.protocol.xpack.migration)
                    IndexUpgradeInfoRequest (org.elasticsearch.protocol.xpack.migration)
                    Request in DeprecationInfoAction (org.elasticsearch.xpack.core.deprecation)
                    ClusterSearchShardsRequest (org.elasticsearch.action.admin.cluster.shards)
                    GetBasicStatusRequest (org.elasticsearch.license)
                    GetTrialStatusRequest (org.elasticsearch.license)
                    Request in GetDatafeedsAction (org.elasticsearch.xpack.core.ml.action)
                    GetIndexTemplatesRequest (org.elasticsearch.action.admin.indices.template.get)
                    TypesExistsRequest (org.elasticsearch.action.admin.indices.exists.types)
                    ClusterHealthRequest (org.elasticsearch.action.admin.cluster.health)
                    ClusterStateRequest (org.elasticsearch.action.admin.cluster.state)
                    GetPipelineRequest (org.elasticsearch.action.ingest)
                    GetRepositoriesRequest (org.elasticsearch.action.admin.cluster.repositories.get)
                    Request in GetJobsAction (org.elasticsearch.xpack.core.ml.action)
                    GetSettingsRequest (org.elasticsearch.action.admin.indices.settings.get)
                    IndicesExistsRequest (org.elasticsearch.action.admin.indices.exists.indices)
                Request in FinalizeJobExecutionAction (org.elasticsearch.xpack.core.ml.action)
                ClusterAllocationExplainRequest (org.elasticsearch.action.admin.cluster.allocation)
                Request in CompletionPersistentTaskAction (org.elasticsearch.persistent)
                UpdateIndexShardSnapshotStatusRequest in SnapshotShardsService (org.elasticsearch.snapshots)
            Request in GetBucketsAction (org.elasticsearch.xpack.core.ml.action)
            Request in GetRecordsAction (org.elasticsearch.xpack.core.ml.action)
            ReplicationRequest (org.elasticsearch.action.support.replication)
                BasicReplicationRequest (org.elasticsearch.action.support.replication)
                Request in TransportReplicationActionTests (org.elasticsearch.action.support.replication)
                ShardFlushRequest (org.elasticsearch.action.admin.indices.flush)
                Request in ReplicationOperationTests (org.elasticsearch.action.support.replication)
                ReplicatedWriteRequest (org.elasticsearch.action.support.replication)
                Request in GlobalCheckpointSyncAction (org.elasticsearch.index.seqno)
            GetFieldMappingsRequest (org.elasticsearch.action.admin.indices.mapping.get)
            GetInfluencersRequest (org.elasticsearch.client.ml)
            SingleShardRequest (org.elasticsearch.action.support.single.shard)
                MultiGetShardRequest (org.elasticsearch.action.get)
                GetRequest (org.elasticsearch.action.get)
                Request in ShardChangesAction (org.elasticsearch.xpack.ccr.action)
                ExplainRequest (org.elasticsearch.action.explain)
                FieldCapabilitiesIndexRequest (org.elasticsearch.action.fieldcaps)
                GetFieldMappingsIndexRequest (org.elasticsearch.action.admin.indices.mapping.get)
                TermVectorsRequest (org.elasticsearch.action.termvectors)
                Request in PainlessExecuteAction (org.elasticsearch.painless)
                AnalyzeRequest (org.elasticsearch.action.admin.indices.analyze)
                MultiTermVectorsShardRequest (org.elasticsearch.action.termvectors)
            PutJobRequest (org.elasticsearch.client.ml)
            SearchScrollRequest (org.elasticsearch.action.search)
            ActivateWatchRequest (org.elasticsearch.xpack.core.watcher.transport.actions.activate)
            Request in UpdateFilterAction (org.elasticsearch.xpack.core.ml.action)
            GetBucketsRequest (org.elasticsearch.client.ml)
            DeleteRoleMappingRequest (org.elasticsearch.xpack.core.security.action.rolemapping)
            SamlAuthenticateRequest (org.elasticsearch.xpack.core.security.action.saml)
            OpenJobRequest (org.elasticsearch.client.ml)
            PutRoleMappingRequest (org.elasticsearch.xpack.core.security.action.rolemapping)
            Request in GetFiltersAction (org.elasticsearch.xpack.core.ml.action)
            SearchTemplateRequest (org.elasticsearch.script.mustache)
            GetJobRequest (org.elasticsearch.client.ml)
            Request in FollowIndexAction (org.elasticsearch.xpack.core.ccr.action)
            ChangePasswordRequest (org.elasticsearch.xpack.core.security.action.user)
            RemoteInfoRequest (org.elasticsearch.action.admin.cluster.remote)
            PutDatafeedRequest (org.elasticsearch.client.ml)
            DeleteDatafeedRequest (org.elasticsearch.client.ml)
            FieldCapabilitiesRequest (org.elasticsearch.action.fieldcaps)
            GraphExploreRequest (org.elasticsearch.protocol.xpack.graph)
            GraphExploreRequest (org.elasticsearch.protocol.xpack.graph)
            Request in UpdateModelSnapshotAction (org.elasticsearch.xpack.core.ml.action)
            DeleteRoleRequest (org.elasticsearch.xpack.core.security.action.role)
            Request in GetCertificateInfoAction (org.elasticsearch.xpack.core.ssl.action)
            RankEvalRequest (org.elasticsearch.index.rankeval)
            AbstractBulkByScrollRequest (org.elasticsearch.index.reindex)
                DeleteByQueryRequest (org.elasticsearch.index.reindex)
                AbstractBulkIndexByScrollRequest (org.elasticsearch.index.reindex)
                    UpdateByQueryRequest (org.elasticsearch.index.reindex)
                    ReindexRequest (org.elasticsearch.index.reindex)
                DummyAbstractBulkByScrollRequest in AsyncBulkByScrollActionTests (org.elasticsearch.index.reindex)
            GetUsersRequest (org.elasticsearch.xpack.core.security.action.user)
            FlushJobRequest (org.elasticsearch.client.ml)
            GetJobStatsRequest (org.elasticsearch.client.ml)
            DeleteWatchRequest (org.elasticsearch.protocol.xpack.watcher)
            DeleteWatchRequest (org.elasticsearch.protocol.xpack.watcher)
            Request in UnfollowIndexAction (org.elasticsearch.xpack.core.ccr.action)
            Request in PostCalendarEventsAction (org.elasticsearch.xpack.core.ml.action)
            DeletePrivilegesRequest (org.elasticsearch.xpack.core.security.action.privilege)
            InvalidateTokenRequest (org.elasticsearch.xpack.core.security.action.token)
            ExecuteWatchRequest (org.elasticsearch.xpack.core.watcher.transport.actions.execute)
            Request in GetRollupCapsAction (org.elasticsearch.xpack.core.rollup.action)
            Request in PutFilterAction (org.elasticsearch.xpack.core.ml.action)
            TestRequest in TransportActionFilterChainTests (org.elasticsearch.action.support)
            MultiGetRequest (org.elasticsearch.action.get)
            CloseJobRequest (org.elasticsearch.client.ml)
            BaseNodesRequest (org.elasticsearch.action.support.nodes)
                WatcherStatsRequest (org.elasticsearch.xpack.core.watcher.transport.actions.stats)
                NodesReloadSecureSettingsRequest (org.elasticsearch.action.admin.cluster.node.reload)
                Request in TransportNodesListGatewayMetaState (org.elasticsearch.gateway)
                ClearRolesCacheRequest (org.elasticsearch.xpack.core.security.action.role)
                Request in TransportNodesListGatewayStartedShards (org.elasticsearch.gateway)
                NodesStatsRequest (org.elasticsearch.action.admin.cluster.node.stats)
                Request in TransportNodesSnapshotsStatus (org.elasticsearch.action.admin.cluster.snapshots.status)
                Request in TransportNodesListShardStoreMetaData (org.elasticsearch.indices.store)
                NodesInfoRequest (org.elasticsearch.action.admin.cluster.node.info)
                TestNodesRequest in TransportNodesActionTests (org.elasticsearch.action.support.nodes)
                ClusterStatsRequest (org.elasticsearch.action.admin.cluster.stats)
                ClearRealmCacheRequest (org.elasticsearch.xpack.core.security.action.realm)
                NodesRequest in TestTaskPlugin (org.elasticsearch.action.admin.cluster.node.tasks)
                NodesUsageRequest (org.elasticsearch.action.admin.cluster.node.usage)
                CancellableNodesRequest in CancellableTasksTests (org.elasticsearch.action.admin.cluster.node.tasks)
                NodesHotThreadsRequest (org.elasticsearch.action.admin.cluster.node.hotthreads)
                NodesRequest in TransportTasksActionTests (org.elasticsearch.action.admin.cluster.node.tasks)
            Request in GetCategoriesAction (org.elasticsearch.xpack.core.ml.action)
            GetRolesRequest (org.elasticsearch.xpack.core.security.action.role)
            Request in UpdateCalendarJobAction (org.elasticsearch.xpack.core.ml.action)
            BaseTasksRequest (org.elasticsearch.action.support.tasks)
                Request in StopRollupJobAction (org.elasticsearch.xpack.core.rollup.action)
                CancelTasksRequest (org.elasticsearch.action.admin.cluster.node.tasks.cancel)
                StatsRequest in CcrStatsAction (org.elasticsearch.xpack.core.ccr.action)
                ListTasksRequest (org.elasticsearch.action.admin.cluster.node.tasks.list)
                Request in StartRollupJobAction (org.elasticsearch.xpack.core.rollup.action)
                Request in GetRollupJobsAction (org.elasticsearch.xpack.core.rollup.action)
                Request in IsolateDatafeedAction (org.elasticsearch.xpack.core.ml.action)
                Request in StopDatafeedAction (org.elasticsearch.xpack.core.ml.action)
                UnblockTestTasksRequest in TestTaskPlugin (org.elasticsearch.action.admin.cluster.node.tasks)
                Request in CloseJobAction (org.elasticsearch.xpack.core.ml.action)
                JobTaskRequest (org.elasticsearch.xpack.core.ml.action)
                    Request in ForecastJobAction (org.elasticsearch.xpack.core.ml.action)
                    Request in PostDataAction (org.elasticsearch.xpack.core.ml.action)
                    Request in UpdateProcessAction (org.elasticsearch.xpack.core.ml.action)
                    Request in PersistJobAction (org.elasticsearch.xpack.core.ml.action)
                    Request in KillProcessAction (org.elasticsearch.xpack.core.ml.action)
                    Request in FlushJobAction (org.elasticsearch.xpack.core.ml.action)
                TestTasksRequest in TestPersistentTasksPlugin (org.elasticsearch.persistent)
                RethrottleRequest (org.elasticsearch.index.reindex)
                TestTasksRequest in TransportTasksActionTests (org.elasticsearch.action.admin.cluster.node.tasks)
                Request in GetJobsStatsAction (org.elasticsearch.xpack.core.ml.action)
            ResyncRequest in PrimaryReplicaSyncer (org.elasticsearch.index.shard)
            ForecastJobRequest (org.elasticsearch.client.ml)
            CreateTokenRequest (org.elasticsearch.xpack.core.security.action.token)
            MultiSearchTemplateRequest (org.elasticsearch.script.mustache)
            GetTaskRequest (org.elasticsearch.action.admin.cluster.node.tasks.get)
            Request in GetOverallBucketsAction (org.elasticsearch.xpack.core.ml.action)
            GetRoleMappingsRequest (org.elasticsearch.xpack.core.security.action.rolemapping)
            GetCategoriesRequest (org.elasticsearch.client.ml)
            GetCalendarsRequest (org.elasticsearch.client.ml)
            AckWatchRequest (org.elasticsearch.xpack.core.watcher.transport.actions.ack)
            SamlLogoutRequest (org.elasticsearch.xpack.core.security.action.saml)
            PutRoleRequest (org.elasticsearch.xpack.core.security.action.role)
            DeleteJobRequest (org.elasticsearch.client.ml)
            InstanceShardOperationRequest (org.elasticsearch.action.support.single.instance)
                Request in TransportInstanceSingleOperationActionTests (org.elasticsearch.action.support.single.instance)
                UpdateRequest (org.elasticsearch.action.update)
            SetEnabledRequest (org.elasticsearch.xpack.core.security.action.user)
            BulkRequest (org.elasticsearch.action.bulk)
            DeleteUserRequest (org.elasticsearch.xpack.core.security.action.user)
            Anonymous in testRequestValidation() in RestHighLevelClientTests (org.elasticsearch.client)
        ConcreteShardRequest in TransportReplicationAction (org.elasticsearch.action.support.replication)
            ConcreteReplicaRequest in TransportReplicationAction (org.elasticsearch.action.support.replication)
        InFlightOpsRequest in SyncedFlushService (org.elasticsearch.indices.flush)
        RemoteHostMockTransportRequest in IndexAuditTrailTests (org.elasticsearch.xpack.security.audit.index)
        RecoveryFileChunkRequest (org.elasticsearch.indices.recovery)
        Version0Request in AbstractSimpleTransportTestCase (org.elasticsearch.transport)
            Version1Request in AbstractSimpleTransportTestCase (org.elasticsearch.transport)
        PingRequest in NodesFaultDetection (org.elasticsearch.discovery.zen)
        QuerySearchRequest (org.elasticsearch.search.query)
        BaseNodeRequest (org.elasticsearch.action.support.nodes)
            Node in ClearRolesCacheRequest (org.elasticsearch.xpack.core.security.action.role)
            NodeRequest in TransportNodesListShardStoreMetaData (org.elasticsearch.indices.store)
            NodeRequest in TransportNodesListGatewayMetaState (org.elasticsearch.gateway)
            CancellableNodeRequest in CancellableTasksTests (org.elasticsearch.action.admin.cluster.node.tasks)
            NodeRequest in TransportTasksActionTests (org.elasticsearch.action.admin.cluster.node.tasks)
            NodeRequest in TransportNodesReloadSecureSettingsAction (org.elasticsearch.action.admin.cluster.node.reload)
            NodeStatsRequest in TransportNodesStatsAction (org.elasticsearch.action.admin.cluster.node.stats)
            NodeUsageRequest in TransportNodesUsageAction (org.elasticsearch.action.admin.cluster.node.usage)
            NodeRequest in TransportNodesListGatewayStartedShards (org.elasticsearch.gateway)
            Node in WatcherStatsRequest (org.elasticsearch.xpack.core.watcher.transport.actions.stats)
            ClusterStatsNodeRequest in TransportClusterStatsAction (org.elasticsearch.action.admin.cluster.stats)
            NodeRequest in TransportNodesHotThreadsAction (org.elasticsearch.action.admin.cluster.node.hotthreads)
            TestNodeRequest in TransportNodesActionTests (org.elasticsearch.action.support.nodes)
            NodeRequest in TransportNodesSnapshotsStatus (org.elasticsearch.action.admin.cluster.snapshots.status)
            Node in ClearRealmCacheRequest (org.elasticsearch.xpack.core.security.action.realm)
            NodeInfoRequest in TransportNodesInfoAction (org.elasticsearch.action.admin.cluster.node.info)
            NodeRequest in TestTaskPlugin (org.elasticsearch.action.admin.cluster.node.tasks)
        CommitClusterStateRequest in PublishClusterStateAction (org.elasticsearch.discovery.zen)
        StartRecoveryRequest (org.elasticsearch.indices.recovery)
        MockCompositeIndicesRequest in AuthorizationServiceTests (org.elasticsearch.xpack.security.authz)
        Empty in TransportRequest (org.elasticsearch.transport)
        RecoveryHandoffPrimaryContextRequest (org.elasticsearch.indices.recovery)
        JoinRequest in MembershipAction (org.elasticsearch.discovery.zen)
        SimpleTestRequest in TransportActionProxyTests (org.elasticsearch.transport)
        ValidateJoinRequest in MembershipAction (org.elasticsearch.discovery.zen)
        Req in TcpTransportTests (org.elasticsearch.transport)
        RejoinClusterRequest in ZenDiscovery (org.elasticsearch.discovery.zen)
        StartedShardEntry in ShardStateAction (org.elasticsearch.cluster.action.shard)
        RecoveryCleanFilesRequest (org.elasticsearch.indices.recovery)
        ScrollFreeContextRequest in SearchTransportService (org.elasticsearch.action.search)
            SearchFreeContextRequest in SearchTransportService (org.elasticsearch.action.search)
        RecoveryTranslogOperationsRequest (org.elasticsearch.indices.recovery)
        UnicastPingRequest in UnicastZenPing (org.elasticsearch.discovery.zen)
        InternalScrollSearchRequest (org.elasticsearch.search.internal)
        NodeTaskRequest in TransportTasksAction (org.elasticsearch.action.support.tasks)
        NodeMappingRefreshRequest in NodeMappingRefreshAction (org.elasticsearch.cluster.action.index)
        RecoveryWaitForClusterStateRequest (org.elasticsearch.indices.recovery)
        VerifyNodeRepositoryRequest in VerifyNodeRepositoryAction (org.elasticsearch.repositories)
        RecoveryPrepareForTranslogOperationsRequest (org.elasticsearch.indices.recovery)
        BanParentTaskRequest in TransportCancelTasksAction (org.elasticsearch.action.admin.cluster.node.tasks.cancel)
        ShardActiveRequest in IndicesStore (org.elasticsearch.indices.store)
        TestRequest in AbstractSimpleTransportTestCase (org.elasticsearch.transport)
        ShardSearchTransportRequest (org.elasticsearch.search.internal)
        NodeRequest in TransportBroadcastByNodeAction (org.elasticsearch.action.support.broadcast.node)
    RemoteHostMockMessage in IndexAuditTrailTests (org.elasticsearch.xpack.security.audit.index)
        MockIndicesTransportMessage in IndexAuditTrailTests (org.elasticsearch.xpack.security.audit.index)
    TransportResponse (org.elasticsearch.transport)
        Empty in TransportResponse (org.elasticsearch.transport)
        SearchPhaseResult (org.elasticsearch.search)
            QueryFetchSearchResult (org.elasticsearch.search.fetch)
            ScrollQuerySearchResult (org.elasticsearch.search.query)
            FetchSearchResult (org.elasticsearch.search.fetch)
            QuerySearchResult (org.elasticsearch.search.query)
            CanMatchResponse in SearchTransportService (org.elasticsearch.action.search)
            TestSearchPhaseResult in SearchAsyncActionTests (org.elasticsearch.action.search)
            ScrollQueryFetchSearchResult (org.elasticsearch.search.fetch)
            DfsSearchResult (org.elasticsearch.search.dfs)
            Anonymous in executePhaseOnShard() in Anonymous in testLotsOfShards() in CanMatchPreFilterSearchPhaseTests (org.elasticsearch.action.search)
        InFlightOpsResponse in SyncedFlushService (org.elasticsearch.indices.flush)
        SimpleTestResponse in TransportActionProxyTests (org.elasticsearch.transport)
        RecoveryTranslogOperationsResponse (org.elasticsearch.indices.recovery)
        PreSyncedFlushResponse in SyncedFlushService (org.elasticsearch.indices.flush)
        NodeResponse in TransportBroadcastByNodeAction (org.elasticsearch.action.support.broadcast.node)
        AllocateDangledResponse in LocalAllocateDangledIndices (org.elasticsearch.gateway)
        VersionHandshakeResponse in TcpTransport (org.elasticsearch.transport)
        ShardSyncedFlushResponse in SyncedFlushService (org.elasticsearch.indices.flush)
        NodeTasksResponse in TransportTasksAction (org.elasticsearch.action.support.tasks)
        TestResponse in TransportClientNodesServiceTests (org.elasticsearch.client.transport)
        TestResponse in AbstractSimpleTransportTestCase (org.elasticsearch.transport)
        UnicastPingResponse in UnicastZenPing (org.elasticsearch.discovery.zen)
        PingResponse in NodesFaultDetection (org.elasticsearch.discovery.zen)
        StringMessageResponse in AbstractSimpleTransportTestCase (org.elasticsearch.transport)
        ActionResponse (org.elasticsearch.action)
            GetAliasesResponse (org.elasticsearch.action.admin.indices.alias.get)
            XPackInfoResponse (org.elasticsearch.protocol.xpack)
            XPackInfoResponse (org.elasticsearch.protocol.xpack)
            RestoreSnapshotResponse (org.elasticsearch.action.admin.cluster.snapshots.restore)
            Response in PutFilterAction (org.elasticsearch.xpack.core.ml.action)
            GetLicenseResponse (org.elasticsearch.license)
            AuthenticateResponse (org.elasticsearch.xpack.core.security.action.user)
            OpenJobResponse (org.elasticsearch.client.ml)
            BaseNodesResponse (org.elasticsearch.action.support.nodes)
                NodesStoreFilesMetaData in TransportNodesListShardStoreMetaData (org.elasticsearch.indices.store)
                ClusterStatsResponse (org.elasticsearch.action.admin.cluster.stats)
                NodesResponse in TaskManagerTestCase (org.elasticsearch.action.admin.cluster.node.tasks)
                WatcherStatsResponse (org.elasticsearch.xpack.core.watcher.transport.actions.stats)
                TestNodesResponse in TransportNodesActionTests (org.elasticsearch.action.support.nodes)
                NodesUsageResponse (org.elasticsearch.action.admin.cluster.node.usage)
                NodesSnapshotStatus in TransportNodesSnapshotsStatus (org.elasticsearch.action.admin.cluster.snapshots.status)
                NodesGatewayMetaState in TransportNodesListGatewayMetaState (org.elasticsearch.gateway)
                NodesHotThreadsResponse (org.elasticsearch.action.admin.cluster.node.hotthreads)
                NodesGatewayStartedShards in TransportNodesListGatewayStartedShards (org.elasticsearch.gateway)
                ClearRolesCacheResponse (org.elasticsearch.xpack.core.security.action.role)
                ClearRealmCacheResponse (org.elasticsearch.xpack.core.security.action.realm)
                NodesStatsResponse (org.elasticsearch.action.admin.cluster.node.stats)
                NodesResponse in TestTaskPlugin (org.elasticsearch.action.admin.cluster.node.tasks)
                NodesReloadSecureSettingsResponse (org.elasticsearch.action.admin.cluster.node.reload)
                NodesInfoResponse (org.elasticsearch.action.admin.cluster.node.info)
            PutRoleMappingResponse (org.elasticsearch.xpack.core.security.action.rolemapping)
            Response in GrokProcessorGetAction (org.elasticsearch.ingest.common)
            GetSettingsResponse (org.elasticsearch.action.admin.indices.settings.get)
            ExplainResponse (org.elasticsearch.action.explain)
            BroadcastResponse (org.elasticsearch.action.support.broadcast)
                IndicesSegmentResponse (org.elasticsearch.action.admin.indices.segments)
                IndicesStatsResponse (org.elasticsearch.action.admin.indices.stats)
                Response in TransportBroadcastByNodeActionTests (org.elasticsearch.action.support.broadcast.node)
                RecoveryResponse (org.elasticsearch.action.admin.indices.recovery)
                UpgradeResponse (org.elasticsearch.action.admin.indices.upgrade.post)
                RefreshResponse (org.elasticsearch.action.admin.indices.refresh)
                ValidateQueryResponse (org.elasticsearch.action.admin.indices.validate.query)
                ClearIndicesCacheResponse (org.elasticsearch.action.admin.indices.cache.clear)
                FlushResponse (org.elasticsearch.action.admin.indices.flush)
                ForceMergeResponse (org.elasticsearch.action.admin.indices.forcemerge)
                UpgradeStatusResponse (org.elasticsearch.action.admin.indices.upgrade.get)
            Response in GetDatafeedsAction (org.elasticsearch.xpack.core.ml.action)
            HasPrivilegesResponse (org.elasticsearch.xpack.core.security.action.user)
            BulkResponse (org.elasticsearch.action.bulk)
            Response in UpdateModelSnapshotAction (org.elasticsearch.xpack.core.ml.action)
            CreateTokenResponse (org.elasticsearch.xpack.core.security.action.token)
            DeleteRoleMappingResponse (org.elasticsearch.xpack.core.security.action.rolemapping)
            PutWatchResponse (org.elasticsearch.protocol.xpack.watcher)
            PutWatchResponse (org.elasticsearch.protocol.xpack.watcher)
            MultiSearchResponse (org.elasticsearch.action.search)
            DeletePrivilegesResponse (org.elasticsearch.xpack.core.security.action.privilege)
            PutRoleResponse (org.elasticsearch.xpack.core.security.action.role)
            Response in PreviewDatafeedAction (org.elasticsearch.xpack.core.ml.action)
            TermVectorsResponse (org.elasticsearch.action.termvectors)
            PutUserResponse (org.elasticsearch.xpack.core.security.action.user)
            MonitoringBulkResponse (org.elasticsearch.xpack.core.monitoring.action)
            Response in GetCertificateInfoAction (org.elasticsearch.xpack.core.ssl.action)
            GetRoleMappingsResponse (org.elasticsearch.xpack.core.security.action.rolemapping)
            Response in GetRollupCapsAction (org.elasticsearch.xpack.core.rollup.action)
            SqlClearCursorResponse (org.elasticsearch.xpack.sql.action)
            Response in PutDatafeedAction (org.elasticsearch.xpack.core.ml.action)
            Response in RevertModelSnapshotAction (org.elasticsearch.xpack.core.ml.action)
            FieldCapabilitiesIndexResponse (org.elasticsearch.action.fieldcaps)
            ForecastJobResponse (org.elasticsearch.client.ml)
            Response in GetCalendarsAction (org.elasticsearch.xpack.core.ml.action)
            ExecuteWatchResponse (org.elasticsearch.xpack.core.watcher.transport.actions.execute)
            GetPipelineResponse (org.elasticsearch.action.ingest)
            GetMappingsResponse (org.elasticsearch.action.admin.indices.mapping.get)
            Response in ShardChangesAction (org.elasticsearch.xpack.ccr.action)
            GetTrialStatusResponse (org.elasticsearch.license)
            AbstractResultResponse (org.elasticsearch.client.ml)
                GetDatafeedResponse (org.elasticsearch.client.ml)
                GetBucketsResponse (org.elasticsearch.client.ml)
                GetRecordsResponse (org.elasticsearch.client.ml)
                GetJobStatsResponse (org.elasticsearch.client.ml)
                GetOverallBucketsResponse (org.elasticsearch.client.ml)
                GetInfluencersResponse (org.elasticsearch.client.ml)
                GetCalendarsResponse (org.elasticsearch.client.ml)
                GetCategoriesResponse (org.elasticsearch.client.ml)
                GetJobResponse (org.elasticsearch.client.ml)
            MultiGetShardResponse (org.elasticsearch.action.get)
            AliasesExistResponse (org.elasticsearch.action.admin.indices.alias.exists)
            SamlPrepareAuthenticationResponse (org.elasticsearch.xpack.core.security.action.saml)
            SyncedFlushResponse (org.elasticsearch.action.admin.indices.flush)
            Response in GetFiltersAction (org.elasticsearch.xpack.core.ml.action)
            SimulatePipelineResponse (org.elasticsearch.action.ingest)
            GetLicenseResponse (org.elasticsearch.protocol.xpack.license)
            GetLicenseResponse (org.elasticsearch.protocol.xpack.license)
            IndicesShardStoresResponse (org.elasticsearch.action.admin.indices.shards)
            Response in GetCategoriesAction (org.elasticsearch.xpack.core.ml.action)
            DeleteWatchResponse (org.elasticsearch.protocol.xpack.watcher)
            DeleteWatchResponse (org.elasticsearch.protocol.xpack.watcher)
            Response in GetRecordsAction (org.elasticsearch.xpack.core.ml.action)
            ClusterAllocationExplainResponse (org.elasticsearch.action.admin.cluster.allocation)
            PendingClusterTasksResponse (org.elasticsearch.action.admin.cluster.tasks)
            Response in GetModelSnapshotsAction (org.elasticsearch.xpack.core.ml.action)
            BaseTasksResponse (org.elasticsearch.action.support.tasks)
                Response in StartRollupJobAction (org.elasticsearch.xpack.core.rollup.action)
                Response in FlushJobAction (org.elasticsearch.xpack.core.ml.action)
                Response in StopDatafeedAction (org.elasticsearch.xpack.core.ml.action)
                Response in KillProcessAction (org.elasticsearch.xpack.core.ml.action)
                Response in IsolateDatafeedAction (org.elasticsearch.xpack.core.ml.action)
                StatsResponses in CcrStatsAction (org.elasticsearch.xpack.core.ccr.action)
                Response in GetJobsStatsAction (org.elasticsearch.xpack.core.ml.action)
                Response in StopRollupJobAction (org.elasticsearch.xpack.core.rollup.action)
                UnblockTestTasksResponse in TestTaskPlugin (org.elasticsearch.action.admin.cluster.node.tasks)
                Response in PersistJobAction (org.elasticsearch.xpack.core.ml.action)
                Response in CloseJobAction (org.elasticsearch.xpack.core.ml.action)
                Response in UpdateProcessAction (org.elasticsearch.xpack.core.ml.action)
                ListTasksResponse (org.elasticsearch.action.admin.cluster.node.tasks.list)
                Response in ForecastJobAction (org.elasticsearch.xpack.core.ml.action)
                Response in PostDataAction (org.elasticsearch.xpack.core.ml.action)
                TestTasksResponse in TestPersistentTasksPlugin (org.elasticsearch.persistent)
                Response in GetRollupJobsAction (org.elasticsearch.xpack.core.rollup.action)
                TestTasksResponse in TransportTasksActionTests (org.elasticsearch.action.admin.cluster.node.tasks)
            AnalyzeResponse (org.elasticsearch.action.admin.indices.analyze)
            Response in GetDatafeedsStatsAction (org.elasticsearch.xpack.core.ml.action)
            SqlTranslateResponse (org.elasticsearch.xpack.sql.action)
            DeleteRoleResponse (org.elasticsearch.xpack.core.security.action.role)
            Response in FindFileStructureAction (org.elasticsearch.xpack.core.ml.action)
            ReplicationResponse (org.elasticsearch.action.support.replication)
                BulkShardOperationsResponse (org.elasticsearch.xpack.ccr.action.bulk)
                ResyncReplicationResponse (org.elasticsearch.action.resync)
                BulkShardResponse (org.elasticsearch.action.bulk)
                TestResponse in TransportReplicationActionTests (org.elasticsearch.action.support.replication)
                TestResponse in TransportWriteActionTests (org.elasticsearch.action.support.replication)
                DocWriteResponse (org.elasticsearch.action)
            IndicesExistsResponse (org.elasticsearch.action.admin.indices.exists.indices)
            CloseJobResponse (org.elasticsearch.client.ml)
            PersistentTaskResponse (org.elasticsearch.persistent)
            InvalidateTokenResponse (org.elasticsearch.xpack.core.security.action.token)
            Response in GetOverallBucketsAction (org.elasticsearch.xpack.core.ml.action)
            Response in DeprecationInfoAction (org.elasticsearch.xpack.core.deprecation)
            Response in PutJobAction (org.elasticsearch.xpack.core.ml.action)
            RemoteInfoResponse (org.elasticsearch.action.admin.cluster.remote)
            GetUsersResponse (org.elasticsearch.xpack.core.security.action.user)
            SnapshotsStatusResponse (org.elasticsearch.action.admin.cluster.snapshots.status)
            GetResponse (org.elasticsearch.action.get)
            Response in PainlessExecuteAction (org.elasticsearch.painless)
            Response in DeleteExpiredDataAction (org.elasticsearch.xpack.core.ml.action)
            Response in UpdateInternalOrPrivateAction in InternalOrPrivateSettingsPlugin (org.elasticsearch.indices.settings)
            GetFieldMappingsResponse (org.elasticsearch.action.admin.indices.mapping.get)
            FieldCapabilitiesResponse (org.elasticsearch.action.fieldcaps)
            MultiTermVectorsResponse (org.elasticsearch.action.termvectors)
            GraphExploreResponse (org.elasticsearch.protocol.xpack.graph)
            GraphExploreResponse (org.elasticsearch.protocol.xpack.graph)
            Response in GetBucketsAction (org.elasticsearch.xpack.core.ml.action)
            GetBasicStatusResponse (org.elasticsearch.license)
            Response in PutCalendarAction (org.elasticsearch.xpack.core.ml.action)
            Response in TransportInstanceSingleOperationActionTests (org.elasticsearch.action.support.single.instance)
            SearchResponse (org.elasticsearch.action.search)
                TestSearchResponse in SearchAsyncActionTests (org.elasticsearch.action.search)
            MultiSearchTemplateResponse (org.elasticsearch.script.mustache)
            TestResponse in TransportActionFilterChainTests (org.elasticsearch.action.support)
            SetEnabledResponse (org.elasticsearch.xpack.core.security.action.user)
            UpdateIndexShardSnapshotStatusResponse in SnapshotShardsService (org.elasticsearch.snapshots)
            Response in PostCalendarEventsAction (org.elasticsearch.xpack.core.ml.action)
            ActivateWatchResponse (org.elasticsearch.xpack.core.watcher.transport.actions.activate)
            Response in MlInfoAction (org.elasticsearch.xpack.core.ml.action)
            Response in CreateAndFollowIndexAction (org.elasticsearch.xpack.core.ccr.action)
            MultiGetResponse (org.elasticsearch.action.get)
            SamlLogoutResponse (org.elasticsearch.xpack.core.security.action.saml)
            RankEvalResponse (org.elasticsearch.index.rankeval)
            GetStoredScriptResponse (org.elasticsearch.action.admin.cluster.storedscripts)
            SamlInvalidateSessionResponse (org.elasticsearch.xpack.core.security.action.saml)
            GetRepositoriesResponse (org.elasticsearch.action.admin.cluster.repositories.get)
            MainResponse (org.elasticsearch.action.main)
            ClusterSearchShardsResponse (org.elasticsearch.action.admin.cluster.shards)
            DeleteUserResponse (org.elasticsearch.xpack.core.security.action.user)
            GetWatchResponse (org.elasticsearch.xpack.core.watcher.transport.actions.get)
            CreateSnapshotResponse (org.elasticsearch.action.admin.cluster.snapshots.create)
            PostStartTrialResponse (org.elasticsearch.license)
            Response in GetInfluencersAction (org.elasticsearch.xpack.core.ml.action)
            VerifyRepositoryResponse (org.elasticsearch.action.admin.cluster.repositories.verify)
            ClearScrollResponse (org.elasticsearch.action.search)
            SamlAuthenticateResponse (org.elasticsearch.xpack.core.security.action.saml)
            GetTaskResponse (org.elasticsearch.action.admin.cluster.node.tasks.get)
            ChangePasswordResponse (org.elasticsearch.xpack.core.security.action.user)
            GetAliasesResponse (org.elasticsearch.client)
            ReplicaResponse in TransportReplicationAction (org.elasticsearch.action.support.replication)
            GetPrivilegesResponse (org.elasticsearch.xpack.core.security.action.privilege)
            GetIndexResponse (org.elasticsearch.action.admin.indices.get)
            IndexUpgradeInfoResponse (org.elasticsearch.protocol.xpack.migration)
            IndexUpgradeInfoResponse (org.elasticsearch.protocol.xpack.migration)
            TypesExistsResponse (org.elasticsearch.action.admin.indices.exists.types)
            AckWatchResponse (org.elasticsearch.xpack.core.watcher.transport.actions.ack)
            BulkByScrollResponse (org.elasticsearch.index.reindex)
            PutPrivilegesResponse (org.elasticsearch.xpack.core.security.action.privilege)
            SyncedFlushResponse (org.elasticsearch.client)
            SearchTemplateResponse (org.elasticsearch.script.mustache)
            GetSnapshotsResponse (org.elasticsearch.action.admin.cluster.snapshots.get)
            Response in GetCalendarEventsAction (org.elasticsearch.xpack.core.ml.action)
            LivenessResponse (org.elasticsearch.action.admin.cluster.node.liveness)
            Response in GetRollupIndexCapsAction (org.elasticsearch.xpack.core.rollup.action)
            ClusterHealthResponse (org.elasticsearch.action.admin.cluster.health)
            XPackUsageResponse (org.elasticsearch.xpack.core.action)
            AcknowledgedResponse (org.elasticsearch.action.support.master)
                TestPutIndexTemplateResponse in WatcherIndexTemplateRegistryTests (org.elasticsearch.xpack.watcher.support)
                PutLicenseResponse (org.elasticsearch.protocol.xpack.license)
                PutLicenseResponse (org.elasticsearch.protocol.xpack.license)
                PostStartBasicResponse (org.elasticsearch.license)
                ClusterUpdateSettingsResponse (org.elasticsearch.action.admin.cluster.settings)
                ShardsAcknowledgedResponse (org.elasticsearch.action.support.master)
                ClusterRerouteResponse (org.elasticsearch.action.admin.cluster.reroute)
                Anonymous in testUpdateTemplates() in TemplateUpgradeServiceTests (org.elasticsearch.cluster.metadata)
                Anonymous in testUpdateTemplates() in TemplateUpgradeServiceTests (org.elasticsearch.cluster.metadata)
                Anonymous in testClusterStateUpdate() in TemplateUpgradeServiceTests (org.elasticsearch.cluster.metadata)
                Anonymous in testClusterStateUpdate() in TemplateUpgradeServiceTests (org.elasticsearch.cluster.metadata)
                Anonymous in testClusterStateUpdate() in TemplateUpgradeServiceTests (org.elasticsearch.cluster.metadata)
            PostDataResponse (org.elasticsearch.client.ml)
            SqlQueryResponse (org.elasticsearch.xpack.sql.action)
            Response in TransportMasterNodeActionTests (org.elasticsearch.action.support.master)
            ClusterStateResponse (org.elasticsearch.action.admin.cluster.state)
            GetIndexTemplatesResponse (org.elasticsearch.action.admin.indices.template.get)
            GetRolesResponse (org.elasticsearch.xpack.core.security.action.role)
            Response in GetJobsAction (org.elasticsearch.xpack.core.ml.action)
            FlushJobResponse (org.elasticsearch.client.ml)
            ClusterGetSettingsResponse (org.elasticsearch.action.admin.cluster.settings)
            MultiTermVectorsShardResponse (org.elasticsearch.action.termvectors)
        BaseNodeResponse (org.elasticsearch.action.support.nodes)
            Response in AsyncShardFetchTests (org.elasticsearch.gateway)
            NodeStoreFilesMetaData in TransportNodesListShardStoreMetaData (org.elasticsearch.indices.store)
            NodeResponse in TaskManagerTestCase (org.elasticsearch.action.admin.cluster.node.tasks)
            Node in ClearRolesCacheResponse (org.elasticsearch.xpack.core.security.action.role)
            ClusterStatsNodeResponse (org.elasticsearch.action.admin.cluster.stats)
            NodeUsage (org.elasticsearch.action.admin.cluster.node.usage)
            NodeGatewayMetaState in TransportNodesListGatewayMetaState (org.elasticsearch.gateway)
            NodeHotThreads (org.elasticsearch.action.admin.cluster.node.hotthreads)
            TestNodeResponse in TransportNodesActionTests (org.elasticsearch.action.support.nodes)
            Node in WatcherStatsResponse (org.elasticsearch.xpack.core.watcher.transport.actions.stats)
            NodeResponse in TestTaskPlugin (org.elasticsearch.action.admin.cluster.node.tasks)
            OtherNodeResponse in TransportNodesActionTests (org.elasticsearch.action.support.nodes)
            Node in ClearRealmCacheResponse (org.elasticsearch.xpack.core.security.action.realm)
            NodeSnapshotStatus in TransportNodesSnapshotsStatus (org.elasticsearch.action.admin.cluster.snapshots.status)
            NodeResponse in NodesReloadSecureSettingsResponse (org.elasticsearch.action.admin.cluster.node.reload)
            NodeGatewayStartedShards in TransportNodesListGatewayStartedShards (org.elasticsearch.gateway)
            NodeStats (org.elasticsearch.action.admin.cluster.node.stats)
            NodeInfo (org.elasticsearch.action.admin.cluster.node.info)
        Version0Response in AbstractSimpleTransportTestCase (org.elasticsearch.transport)
            Version1Response in AbstractSimpleTransportTestCase (org.elasticsearch.transport)
        BroadcastShardResponse (org.elasticsearch.action.support.broadcast)
            ShardValidateQueryResponse (org.elasticsearch.action.admin.indices.validate.query)
            SnapshotIndexShardStatus (org.elasticsearch.action.admin.cluster.snapshots.status)
            ShardUpgradeStatus (org.elasticsearch.action.admin.indices.upgrade.get)
        ShardActiveResponse in IndicesStore (org.elasticsearch.indices.store)
        MasterPingResponseResponse in MasterFaultDetection (org.elasticsearch.discovery.zen)
        SearchFreeContextResponse in SearchTransportService (org.elasticsearch.action.search)
        RecoveryResponse (org.elasticsearch.indices.recovery)
        HandshakeResponse in TransportService (org.elasticsearch.transport)
    InternalMessage in AuthenticationServiceTests (org.elasticsearch.xpack.security.authc)
    MockMessage in LoggingAuditTrailTests (org.elasticsearch.xpack.security.audit.logfile)
DetailAnalyzeResponse (org.elasticsearch.action.admin.indices.analyze)
VerifyIndex in RecoveryState (org.elasticsearch.indices.recovery)
BulkItemRequest (org.elasticsearch.action.bulk)
QueryCacheStats (org.elasticsearch.index.cache.query)
ShardOperationFailedException (org.elasticsearch.action)
    Failure in ShardInfo in ReplicationResponse (org.elasticsearch.action.support.replication)
    DefaultShardOperationFailedException (org.elasticsearch.action.support)
        Failure in IndicesShardStoresResponse (org.elasticsearch.action.admin.indices.shards)
    ShardSearchFailure (org.elasticsearch.action.search)
    SnapshotShardFailure (org.elasticsearch.snapshots)
    Failure in ShardOperationFailedExceptionTests (org.elasticsearch.action)
Segment (org.elasticsearch.index.engine)
RequestCacheStats (org.elasticsearch.index.cache.request)
Item in MultiSearchTemplateResponse (org.elasticsearch.script.mustache)
DocsStats (org.elasticsearch.index.shard)
WatchStatus (org.elasticsearch.xpack.core.watcher.watch)
Translog in RecoveryState (org.elasticsearch.indices.recovery)
Timer in RecoveryState (org.elasticsearch.indices.recovery)
    Index in RecoveryState (org.elasticsearch.indices.recovery)
    VerifyIndex in RecoveryState (org.elasticsearch.indices.recovery)
    Translog in RecoveryState (org.elasticsearch.indices.recovery)

@talevy talevy added Meta >refactoring :Core/Infra/Core Core issues without another label labels Oct 11, 2018
@elasticmachine
Copy link
Collaborator

Pinging @elastic/es-core-infra

@talevy talevy added the help wanted adoptme label Oct 12, 2018
@jaymode
Copy link
Member

jaymode commented Oct 16, 2018

I think we need a migration plan for Response objects. As far as I can tell we are missing the framework for an ActionResponse to implement a readFrom method that throws a UnsupportedOperationException and use the constructor that takes a StreamInput.

make instance variables final
Remove the empty constructor. Assuming there is an empty constructor just for Streamable, and not for something like request builders for the transport client, it should be possible. Otherwise, leave it be :(

I do wonder if this is the right time to make these objects immutable; if there is a builder we can add mutable fields in the builder and build the immutable request object upon calling request()?

@nik9000
Copy link
Member

nik9000 commented Oct 16, 2018

Are you saying you'd like to make these objects immutable as we go? I'm on board with that, though superclasses make that hard. But it is still a nice goal.

Maybe not for (some) requests though, because we still use them in the high level rest client and transport client. Once we've stopped using them in the high level rest client I think we should make them immutable.

@jasontedor
Copy link
Member

Once we've stopped using them in the high level rest client I think we should make them immutable.

I think we need a refactoring meta-issue for this effort too.

@jaymode
Copy link
Member

jaymode commented Oct 16, 2018

Are you saying you'd like to make these objects immutable as we go? I'm on board with that, though superclasses make that hard. But it is still a nice goal.

Yes I would like to do it as much as possible and understand that in some places it might not be worth trying to do as we go like if there are superclasses that conflict with making things immutable. It has always bothered me that request/responses could be mutable.

tvernum added a commit to tvernum/elasticsearch that referenced this issue Oct 17, 2018
This commit replaces usage of Streamable with Writeable within the
RoleDescriptor class (and inner classes).

Relates: elastic#34389
tvernum added a commit that referenced this issue Oct 18, 2018
This commit replaces usage of Streamable with Writeable within the
RoleDescriptor class (and inner classes).

Relates: #34389
jaymode added a commit to jaymode/elasticsearch that referenced this issue Oct 19, 2018
In order to remove Streamable from the codebase, Response objects need
to be read using the Writeable.Reader interface which this change
enables. This change enables the use of Writeable.Reader by adding the
`Action#getResponseReader` method. The default implementation simply
uses the existing `newResponse` method and the readFrom method. As
responses are migrated to the Writeable.Reader interface, Action
classes can be updated to throw an UnsupportedOperationException when
`newResponse` is called and override the `getResponseReader` method.

Relates elastic#34389
tvernum added a commit that referenced this issue Oct 23, 2018
This commit replaces usage of Streamable with Writeable within the
RoleDescriptor class (and inner classes).

Relates: #34389
jaymode added a commit that referenced this issue Oct 26, 2018
In order to remove Streamable from the codebase, Response objects need
to be read using the Writeable.Reader interface which this change
enables. This change enables the use of Writeable.Reader by adding the
`Action#getResponseReader` method. The default implementation simply
uses the existing `newResponse` method and the readFrom method. As
responses are migrated to the Writeable.Reader interface, Action
classes can be updated to throw an UnsupportedOperationException when
`newResponse` is called and override the `getResponseReader` method.

Relates #34389
jaymode added a commit that referenced this issue Oct 26, 2018
In order to remove Streamable from the codebase, Response objects need
to be read using the Writeable.Reader interface which this change
enables. This change enables the use of Writeable.Reader by adding the
`Action#getResponseReader` method. The default implementation simply
uses the existing `newResponse` method and the readFrom method. As
responses are migrated to the Writeable.Reader interface, Action
classes can be updated to throw an UnsupportedOperationException when
`newResponse` is called and override the `getResponseReader` method.

Relates #34389
@jaymode
Copy link
Member

jaymode commented Oct 26, 2018

I think we need a migration plan for Response objects.

With the incorporation of #34655, Response objects can now use the Writeable.Reader interface. This is an opt-in change. For example, look at ClusterSearchShardsResponse. A constructor has been added that accepts a StreamInput:

public ClusterSearchShardsResponse(StreamInput in) throws IOException {
super(in);
groups = new ClusterSearchShardsGroup[in.readVInt()];
for (int i = 0; i < groups.length; i++) {
groups[i] = ClusterSearchShardsGroup.readSearchShardsGroupResponse(in);
}
nodes = new DiscoveryNode[in.readVInt()];
for (int i = 0; i < nodes.length; i++) {
nodes[i] = new DiscoveryNode(in);
}
int size = in.readVInt();
indicesAndFilters = new HashMap<>();
for (int i = 0; i < size; i++) {
String index = in.readString();
AliasFilter aliasFilter = new AliasFilter(in);
indicesAndFilters.put(index, aliasFilter);
}
}

The readFrom method throws an UnsupportedOperationException:

@Override
public void readFrom(StreamInput in) throws IOException {
throw new UnsupportedOperationException("usage of Streamable is to be replaced by Writeable");
}

The action class, ClusterSearchShardsAction, needs to be updated to make use of the Writeable.Reader interface:

@Override
public Writeable.Reader<ClusterSearchShardsResponse> getResponseReader() {
return ClusterSearchShardsResponse::new;
}

Finally, the newResponse method on the action is updated to throw an UnsupportedOperationException:

@Override
public ClusterSearchShardsResponse newResponse() {
throw new UnsupportedOperationException("usage of Streamable is to be replaced by Writeable");
}

kcm pushed a commit that referenced this issue Oct 30, 2018
This commit replaces usage of Streamable with Writeable within the
RoleDescriptor class (and inner classes).

Relates: #34389
kcm pushed a commit that referenced this issue Oct 30, 2018
In order to remove Streamable from the codebase, Response objects need
to be read using the Writeable.Reader interface which this change
enables. This change enables the use of Writeable.Reader by adding the
`Action#getResponseReader` method. The default implementation simply
uses the existing `newResponse` method and the readFrom method. As
responses are migrated to the Writeable.Reader interface, Action
classes can be updated to throw an UnsupportedOperationException when
`newResponse` is called and override the `getResponseReader` method.

Relates #34389
martijnvg added a commit to martijnvg/elasticsearch that referenced this issue Nov 23, 2018
This commit replaces usages of Streamable with Writeable for the
BaseTasksRequest / TransportTasksAction classes and subclasses of
these classes.

Relates to elastic#34389
martijnvg added a commit that referenced this issue Dec 3, 2018
…35854)

* Replace Streamable w/ Writeable in BaseTasksRequest and subclasses

This commit replaces usages of Streamable with Writeable for the
BaseTasksRequest / TransportTasksAction classes and subclasses of
these classes.

Relates to #34389
martijnvg added a commit that referenced this issue Dec 3, 2018
…35854)

* Replace Streamable w/ Writeable in BaseTasksRequest and subclasses

This commit replaces usages of Streamable with Writeable for the
BaseTasksRequest / TransportTasksAction classes and subclasses of
these classes.

Relates to #34389
martijnvg added a commit to martijnvg/elasticsearch that referenced this issue Dec 3, 2018
This commit replaces usages of Streamable with Writeable for the
BaseTasksResponse / TransportTasksAction classes and subclasses of
these classes.

Note that where possible response fields were made final.

Relates to elastic#34389
martijnvg added a commit that referenced this issue Dec 5, 2018
…36176)

This commit replaces usages of Streamable with Writeable for the
BaseTasksResponse / TransportTasksAction classes and subclasses of
these classes.

Note that where possible response fields were made final.

Relates to #34389
@talevy talevy self-assigned this Dec 11, 2018
@rjernst rjernst self-assigned this Dec 11, 2018
talevy added a commit that referenced this issue Jul 21, 2019
This commit ends the grand adventure that was the
refactoring effort to migrate all usages of
Streamable to Writeable.

Closes #34389.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

8 participants