use of org.eclipse.dataspaceconnector.spi.command.BoundedCommandQueue in project DataSpaceConnector by eclipse-dataspaceconnector.
the class ContractServiceExtension method registerServices.
private void registerServices(ServiceExtensionContext context) {
var definitionService = new ContractDefinitionServiceImpl(monitor, contractDefinitionStore, policyEngine, policyStore);
context.registerService(ContractDefinitionService.class, definitionService);
var contractOfferService = new ContractOfferServiceImpl(agentService, definitionService, assetIndex, policyStore);
context.registerService(ContractOfferService.class, contractOfferService);
var validationService = new ContractValidationServiceImpl(agentService, definitionService, assetIndex, policyStore);
context.registerService(ContractValidationService.class, validationService);
var waitStrategy = context.hasService(NegotiationWaitStrategy.class) ? context.getService(NegotiationWaitStrategy.class) : new ExponentialWaitStrategy(DEFAULT_ITERATION_WAIT);
CommandQueue<ContractNegotiationCommand> commandQueue = new BoundedCommandQueue<>(10);
CommandRunner<ContractNegotiationCommand> commandRunner = new CommandRunner<>(commandHandlerRegistry, monitor);
var telemetry = context.getTelemetry();
var observable = new ContractNegotiationObservableImpl();
context.registerService(ContractNegotiationObservable.class, observable);
context.registerService(PolicyArchive.class, new PolicyArchiveImpl(store, policyStore));
consumerNegotiationManager = ConsumerContractNegotiationManagerImpl.Builder.newInstance().waitStrategy(waitStrategy).dispatcherRegistry(dispatcherRegistry).monitor(monitor).validationService(validationService).commandQueue(commandQueue).commandRunner(commandRunner).observable(observable).telemetry(telemetry).executorInstrumentation(context.getService(ExecutorInstrumentation.class)).store(store).policyStore(policyStore).batchSize(context.getSetting(NEGOTIATION_CONSUMER_STATE_MACHINE_BATCH_SIZE, 5)).build();
providerNegotiationManager = ProviderContractNegotiationManagerImpl.Builder.newInstance().waitStrategy(waitStrategy).dispatcherRegistry(dispatcherRegistry).monitor(monitor).validationService(validationService).commandQueue(commandQueue).commandRunner(commandRunner).observable(observable).telemetry(telemetry).executorInstrumentation(context.getService(ExecutorInstrumentation.class)).store(store).policyStore(policyStore).batchSize(context.getSetting(NEGOTIATION_PROVIDER_STATE_MACHINE_BATCH_SIZE, 5)).build();
context.registerService(ConsumerContractNegotiationManager.class, consumerNegotiationManager);
context.registerService(ProviderContractNegotiationManager.class, providerNegotiationManager);
}
use of org.eclipse.dataspaceconnector.spi.command.BoundedCommandQueue in project DataSpaceConnector by eclipse-dataspaceconnector.
the class CoreTransferExtension method initialize.
@Override
public void initialize(ServiceExtensionContext context) {
var monitor = context.getMonitor();
var telemetry = context.getTelemetry();
var typeManager = context.getTypeManager();
registerTypes(typeManager);
var dataFlowManager = new DataFlowManagerImpl();
context.registerService(DataFlowManager.class, dataFlowManager);
var manifestGenerator = new ResourceManifestGeneratorImpl();
context.registerService(ResourceManifestGenerator.class, manifestGenerator);
var statusCheckerRegistry = new StatusCheckerRegistryImpl();
context.registerService(StatusCheckerRegistry.class, statusCheckerRegistry);
var dataOperatorRegistry = new DataOperatorRegistryImpl();
context.registerService(DataOperatorRegistry.class, dataOperatorRegistry);
var provisionManager = new ProvisionManagerImpl(monitor);
context.registerService(ProvisionManager.class, provisionManager);
var waitStrategy = context.hasService(TransferWaitStrategy.class) ? context.getService(TransferWaitStrategy.class) : new ExponentialWaitStrategy(DEFAULT_ITERATION_WAIT);
var endpointDataReferenceReceiverRegistry = new EndpointDataReferenceReceiverRegistryImpl();
context.registerService(EndpointDataReferenceReceiverRegistry.class, endpointDataReferenceReceiverRegistry);
// Register a default EndpointDataReferenceTransformer that can be overridden in extensions.
var endpointDataReferenceTransformerRegistry = new EndpointDataReferenceTransformerRegistryImpl();
context.registerService(EndpointDataReferenceTransformerRegistry.class, endpointDataReferenceTransformerRegistry);
var commandQueue = new BoundedCommandQueue<TransferProcessCommand>(10);
var observable = new TransferProcessObservableImpl();
context.registerService(TransferProcessObservable.class, observable);
var retryLimit = context.getSetting(TRANSFER_SEND_RETRY_LIMIT, 7);
var retryBaseDelay = context.getSetting(TRANSFER_SEND_RETRY_BASE_DELAY_MS, 100L);
var sendRetryManager = new TransferProcessSendRetryManager(monitor, () -> new ExponentialWaitStrategy(retryBaseDelay), retryLimit);
processManager = TransferProcessManagerImpl.Builder.newInstance().waitStrategy(waitStrategy).manifestGenerator(manifestGenerator).dataFlowManager(dataFlowManager).provisionManager(provisionManager).dispatcherRegistry(dispatcherRegistry).statusCheckerRegistry(statusCheckerRegistry).monitor(monitor).telemetry(telemetry).executorInstrumentation(context.getService(ExecutorInstrumentation.class)).vault(vault).typeManager(typeManager).commandQueue(commandQueue).commandRunner(new CommandRunner<>(registry, monitor)).observable(observable).transferProcessStore(transferProcessStore).policyArchive(policyArchive).batchSize(context.getSetting(TRANSFER_STATE_MACHINE_BATCH_SIZE, 5)).sendRetryManager(sendRetryManager).addressResolver(addressResolver).build();
context.registerService(TransferProcessManager.class, processManager);
registry.register(new AddProvisionedResourceCommandHandler(processManager));
registry.register(new DeprovisionCompleteCommandHandler(processManager));
}
Aggregations