use of io.zeebe.transport.ServerTransport in project zeebe by zeebe-io.
the class ControlMessageHandlerManagerService method start.
@Override
public void start(ServiceStartContext context) {
final Dispatcher controlMessageBuffer = controlMessageBufferInjector.getValue();
final ServerTransport transport = transportInjector.getValue();
final ActorScheduler actorScheduler = context.getScheduler();
final TaskSubscriptionManager taskSubscriptionManager = taskSubscriptionManagerInjector.getValue();
final TopicSubscriptionService topicSubscriptionService = topicSubscriptionServiceInjector.getValue();
final SystemPartitionManager systemPartitionManager = systemPartitionManagerInjector.getValue();
final ServerOutput output = transport.getOutput();
final List<ControlMessageHandler> controlMessageHandlers = Arrays.asList(new AddTaskSubscriptionHandler(output, taskSubscriptionManager), new IncreaseTaskSubscriptionCreditsHandler(output, taskSubscriptionManager), new RemoveTaskSubscriptionHandler(output, taskSubscriptionManager), new RemoveTopicSubscriptionHandler(output, topicSubscriptionService), new RequestTopologyHandler(output, clusterManagerInjector.getValue()), new RequestPartitionsMessageHandler(output, systemPartitionManager));
service = new ControlMessageHandlerManager(transport.getOutput(), controlMessageBuffer, controlMessageRequestTimeoutInMillis, actorScheduler, controlMessageHandlers);
context.async(service.openAsync());
}
use of io.zeebe.transport.ServerTransport in project zeebe by zeebe-io.
the class TaskQueueManagerService method startTaskQueue.
@Override
public void startTaskQueue(ServiceName<LogStream> logStreamServiceName, final LogStream stream) {
final ServiceName<StreamProcessorController> streamProcessorServiceName = taskQueueInstanceStreamProcessorServiceName(stream.getLogName());
final String streamProcessorName = streamProcessorServiceName.getName();
final ServerTransport serverTransport = clientApiTransportInjector.getValue();
final TaskSubscriptionManager taskSubscriptionManager = taskSubscriptionManagerInjector.getValue();
final TaskInstanceStreamProcessor taskInstanceStreamProcessor = new TaskInstanceStreamProcessor(taskSubscriptionManager);
final TypedStreamEnvironment env = new TypedStreamEnvironment(stream, serverTransport.getOutput());
final TypedStreamProcessor streamProcessor = taskInstanceStreamProcessor.createStreamProcessor(env);
final StreamProcessorService taskInstanceStreamProcessorService = new StreamProcessorService(streamProcessorName, TASK_QUEUE_STREAM_PROCESSOR_ID, streamProcessor).eventFilter(streamProcessor.buildTypeFilter());
serviceContext.createService(streamProcessorServiceName, taskInstanceStreamProcessorService).group(TASK_QUEUE_STREAM_PROCESSOR_SERVICE_GROUP_NAME).dependency(logStreamServiceName, taskInstanceStreamProcessorService.getLogStreamInjector()).dependency(SNAPSHOT_STORAGE_SERVICE, taskInstanceStreamProcessorService.getSnapshotStorageInjector()).install();
startExpireLockService(logStreamServiceName, stream, env);
}
use of io.zeebe.transport.ServerTransport in project zeebe by zeebe-io.
the class TaskSubscriptionManagerService method start.
@Override
public void start(ServiceStartContext startContext) {
final ServerTransport clientApiTransport = transportInjector.getValue();
final ActorScheduler actorScheduler = startContext.getScheduler();
service = new TaskSubscriptionManager(startContext, clientApiTransport);
actorScheduler.submitActor(service);
final ActorFuture<Void> transportRegistration = clientApiTransport.registerChannelListener(service);
startContext.async(transportRegistration);
}
use of io.zeebe.transport.ServerTransport in project zeebe by zeebe-io.
the class WorkflowQueueManagerService method installIncidentStreamProcessor.
private void installIncidentStreamProcessor(final LogStream logStream) {
final ServiceName<StreamProcessorController> streamProcessorServiceName = incidentStreamProcessorServiceName(logStream.getLogName());
final String streamProcessorName = streamProcessorServiceName.getName();
final ServerTransport transport = clientApiTransportInjector.getValue();
final ServiceName<LogStream> logStreamServiceName = logStreamServiceName(logStream.getLogName());
final TypedStreamEnvironment env = new TypedStreamEnvironment(logStream, transport.getOutput());
final IncidentStreamProcessor incidentProcessorFactory = new IncidentStreamProcessor();
final TypedStreamProcessor streamProcessor = incidentProcessorFactory.createStreamProcessor(env);
final StreamProcessorService incidentStreamProcessorService = new StreamProcessorService(streamProcessorName, INCIDENT_PROCESSOR_ID, streamProcessor).eventFilter(streamProcessor.buildTypeFilter());
serviceContext.createService(streamProcessorServiceName, incidentStreamProcessorService).dependency(logStreamServiceName, incidentStreamProcessorService.getLogStreamInjector()).dependency(SNAPSHOT_STORAGE_SERVICE, incidentStreamProcessorService.getSnapshotStorageInjector()).install();
}
use of io.zeebe.transport.ServerTransport in project zeebe by zeebe-io.
the class WorkflowQueueManagerService method installWorkflowStreamProcessor.
private void installWorkflowStreamProcessor(final LogStream logStream) {
final ServiceName<StreamProcessorController> streamProcessorServiceName = workflowInstanceStreamProcessorServiceName(logStream.getLogName());
final String streamProcessorName = streamProcessorServiceName.getName();
final ServerTransport transport = clientApiTransportInjector.getValue();
final CommandResponseWriter responseWriter = new CommandResponseWriter(transport.getOutput());
final ServiceName<LogStream> logStreamServiceName = logStreamServiceName(logStream.getLogName());
final ServerTransport managementServer = managementServerInjector.getValue();
final CreateWorkflowResponseSender createWorkflowResponseSender = new CreateWorkflowResponseSender(managementServer);
final WorkflowInstanceStreamProcessor workflowInstanceStreamProcessor = new WorkflowInstanceStreamProcessor(responseWriter, createWorkflowResponseSender, workflowCfg.deploymentCacheSize, workflowCfg.payloadCacheSize);
final StreamProcessorService workflowStreamProcessorService = new StreamProcessorService(streamProcessorName, StreamProcessorIds.WORKFLOW_INSTANCE_PROCESSOR_ID, workflowInstanceStreamProcessor).eventFilter(WorkflowInstanceStreamProcessor.eventFilter());
serviceContext.createService(streamProcessorServiceName, workflowStreamProcessorService).dependency(logStreamServiceName, workflowStreamProcessorService.getLogStreamInjector()).dependency(SNAPSHOT_STORAGE_SERVICE, workflowStreamProcessorService.getSnapshotStorageInjector()).install();
}
Aggregations