public ActorFuture<StreamProcessorService> build() { validate(); final StreamProcessorContext context = createContext(); final StreamProcessorController controller = new StreamProcessorController(context); final String logName = logStream.getLogName(); final ServiceName<StreamProcessorService> serviceName = LogStreamServiceNames.streamProcessorService(logName, name); final StreamProcessorService service = new StreamProcessorService(controller, serviceContainer, serviceName); final ServiceBuilder<StreamProcessorService> serviceBuilder = serviceContainer .createService(serviceName, service) .dependency(LogStreamServiceNames.logStreamServiceName(logName)) .dependency(LogStreamServiceNames.logWriteBufferServiceName(logName)) .dependency(LogStreamServiceNames.logStorageServiceName(logName)) .dependency(LogStreamServiceNames.logBlockIndexServiceName(logName)); if (additionalDependencies != null) { additionalDependencies.forEach((d) -> serviceBuilder.dependency(d)); } return serviceBuilder.install(); }
@Override public ActorFuture<Void> closeAppender() { appenderFuture = null; writeBufferFuture = null; appender = null; writeBuffer = null; return serviceContext.removeService(logStorageAppenderRootService(logName)); }
@Override public ActorFuture<Void> closeAsync() { return serviceContainer.removeService(logStreamRootServiceName(logName)); }
private ServiceName<LogStream> addServices(final CompositeServiceBuilder installOperation) { final ServiceName<LogStorage> logStorageServiceName = logStorageServiceName(logName); final ServiceName<LogBlockIndex> logBlockIndexServiceName = logBlockIndexServiceName(logName); final ServiceName<LogBlockIndexWriter> logBlockIndexWriterServiceName = logBlockIndexWriterService(logName); final ServiceName<LogStream> logStreamServiceName = logStreamServiceName(logName);
@Override public ActorFuture<LogStorageAppender> openAppender() { final ServiceName<Void> logStorageAppenderRootService = logStorageAppenderRootService(logName); final ServiceName<Dispatcher> logWriteBufferServiceName = logWriteBufferServiceName(logName); final ServiceName<Subscription> appenderSubscriptionServiceName = logWriteBufferSubscriptionServiceName(logName, APPENDER_SUBSCRIPTION_NAME); final ServiceName<LogStorageAppender> logStorageAppenderServiceName = logStorageAppenderServiceName(logName);
public static void printRecords(final Broker broker, final int partitionId) { try { final ServiceContainer serviceContainer = broker.getBrokerContext().getServiceContainer(); final ServiceName<LogStream> logStreamServiceName = LogStreamServiceNames.logStreamServiceName(Partition.getPartitionName(partitionId)); final PrinterService printerService = new PrinterService(); serviceContainer .createService(PRINTER_SERVICE_NAME, printerService) .dependency(logStreamServiceName, printerService.getLogStreamInjector()) .install() .join(); serviceContainer.removeService(PRINTER_SERVICE_NAME).join(); } catch (final Exception e) { LOGGER.error( "Could not print log entries. This exception is not propagated to avoid interference with the test.", e); } }
installOperation .createService(leaderServiceName, leaderState) .dependency(LogStreamServiceNames.logWriteBufferServiceName(logStream.getLogName())) .dependency(openLogStreamServiceName) .dependency(joinServiceName(raftName))
private ServiceName<LogStream> addServices(final CompositeServiceBuilder installOperation) { final ServiceName<LogStorage> logStorageServiceName = logStorageServiceName(logName); final ServiceName<LogBlockIndex> logBlockIndexServiceName = logBlockIndexServiceName(logName); final ServiceName<LogBlockIndexWriter> logBlockIndexWriterServiceName = logBlockIndexWriterService(logName); final ServiceName<LogStream> logStreamServiceName = logStreamServiceName(logName);
@Override public ActorFuture<LogStorageAppender> openAppender() { final ServiceName<Void> logStorageAppenderRootService = logStorageAppenderRootService(logName); final ServiceName<Dispatcher> logWriteBufferServiceName = logWriteBufferServiceName(logName); final ServiceName<Subscription> appenderSubscriptionServiceName = logWriteBufferSubscriptionServiceName(logName, APPENDER_SUBSCRIPTION_NAME); final ServiceName<LogStorageAppender> logStorageAppenderServiceName = logStorageAppenderServiceName(logName);
public static void printRecords(final Broker broker, final int partitionId) { try { final ServiceContainer serviceContainer = broker.getBrokerContext().getServiceContainer(); final ServiceName<LogStream> logStreamServiceName = LogStreamServiceNames.logStreamServiceName(Partition.getPartitionName(partitionId)); final PrinterService printerService = new PrinterService(); serviceContainer .createService(PRINTER_SERVICE_NAME, printerService) .dependency(logStreamServiceName, printerService.getLogStreamInjector()) .install() .join(); serviceContainer.removeService(PRINTER_SERVICE_NAME).join(); } catch (final Exception e) { LOGGER.error( "Could not print log entries. This exception is not propagated to avoid interference with the test.", e); } }
installOperation .createService(leaderServiceName, leaderState) .dependency(LogStreamServiceNames.logWriteBufferServiceName(logStream.getLogName())) .dependency(openLogStreamServiceName) .dependency(joinServiceName(raftName))
public ActorFuture<StreamProcessorService> build() { validate(); final StreamProcessorContext context = createContext(); final StreamProcessorController controller = new StreamProcessorController(context); final String logName = logStream.getLogName(); final ServiceName<StreamProcessorService> serviceName = LogStreamServiceNames.streamProcessorService(logName, name); final StreamProcessorService service = new StreamProcessorService(controller, serviceContainer, serviceName); final ServiceBuilder<StreamProcessorService> serviceBuilder = serviceContainer .createService(serviceName, service) .dependency(LogStreamServiceNames.logStreamServiceName(logName)) .dependency(LogStreamServiceNames.logWriteBufferServiceName(logName)) .dependency(LogStreamServiceNames.logStorageServiceName(logName)) .dependency(LogStreamServiceNames.logBlockIndexServiceName(logName)); if (additionalDependencies != null) { additionalDependencies.forEach((d) -> serviceBuilder.dependency(d)); } return serviceBuilder.install(); }
@Override public ActorFuture<Void> closeAsync() { return serviceContainer.removeService(logStreamRootServiceName(logName)); }
@Override public ActorFuture<Void> closeAppender() { appenderFuture = null; writeBufferFuture = null; appender = null; writeBuffer = null; return serviceContext.removeService(logStorageAppenderRootService(logName)); }
public ActorFuture<LogStream> build() { Objects.requireNonNull(serviceContainer, "serviceContainer"); validate(); final CompositeServiceBuilder installOperation = serviceContainer.createComposite(logStreamRootServiceName(logName)); final ServiceName<LogStream> logStreamServiceName = addServices(installOperation); return installOperation.installAndReturn(logStreamServiceName); }
public ActorFuture<LogStream> build() { Objects.requireNonNull(serviceContainer, "serviceContainer"); validate(); final CompositeServiceBuilder installOperation = serviceContainer.createComposite(logStreamRootServiceName(logName)); final ServiceName<LogStream> logStreamServiceName = addServices(installOperation); return installOperation.installAndReturn(logStreamServiceName); }