Commit graph

5530 commits

Author SHA1 Message Date
Robin Sue 4d6b7a17fb Add .NET 9.0 target 2024-12-10 21:06:42 +01:00
Sipke Schoorstra 60f88e4704 Disable SignalR in Server And Studio project 2024-12-10 20:21:08 +01:00
Sipke Schoorstra d1ee5c77d0
Persist workflow variables during background execution. (#6195)
Added a call to save workflow variables in the BackgroundActivityInvoker to ensure that any changes are persisted during background activity execution. This helps maintain consistency and state integrity across workflow invocations.
2024-12-09 20:36:20 +01:00
Sipke Schoorstra 4a19a77568 Update WebhooksCore package to stable version 0.0.1
Change WebhooksCore package version from 0.0.1-preview.17 to 0.0.1 to ensure use of the stable release. This update is intended to improve stability and readiness for production environments. Other package versions remain unchanged in this commit.
2024-12-07 21:14:59 +01:00
Sipke Schoorstra d164de42f6
Add TenantId to RunTaskWebhookPayload (#6191)
Incorporated the TenantId field into the RunTaskWebhookPayload model and updated the RunTaskHandler to pass this information. This change enables multi-tenant support by including the tenant identifier in webhook payloads.
2024-12-07 20:52:51 +01:00
Sipke Schoorstra 4651b7a46d
Add schema registry support to Kafka module (#6190)
This commit introduces a schema registry functionality by adding interfaces and classes to manage schema registry definitions in the Elsa.Kafka module. It updates KafkaOptions to include schema registries and modifies classes to support schema registry configurations for producers and consumers. Additionally, it updates package references to include necessary dependencies for schema registry support.
2024-12-07 20:07:30 +01:00
Sipke Schoorstra a2448523a9
Fix race condition and add rate limiting to bookmark queue processing (#6187)
* Fix race condition and add rate limiting to bookmark queue processing

Introduce rate-limited function invocation for bookmark queue processing using ThrottleDebounce library to optimize performance. Update related classes and interfaces to support asynchronous and cancellation-aware operations, improving system responsiveness. Adjust logging to provide more detailed information during bookmark queue handling.

* Enable workflows on bug branches

This change updates the GitHub Actions workflow configuration to trigger on branches with the 'bug/*' pattern. This allows for automated actions on bug fix branches alongside the main branch, improving development and testing processes.
2024-12-07 17:34:10 +01:00
Sipke Schoorstra 17a692c058 Update log message + level in RemoveOrphanedSubscriptions to remove unnecessary noise from exception 2024-12-06 18:10:59 +01:00
raymonddenhaan 2c70b98891
Merge pull request #6183 from elsa-workflows/bug/background-execution-cancels-itself
Introduce job unscheduling functionality
2024-12-06 09:25:45 +01:00
Sipke Schoorstra ac48e54ab8 Introduce job unscheduling functionality
Add a new method `UnscheduledAsync` to unschedule jobs across various components, including the job queue, background activity scheduler, and Hangfire integration. This enhancement provides a more robust way to remove jobs from scheduling, complementing the existing cancellation functionality.

This fixes an issue where a background activity execution job that resumed a workflow, which in turn would remove any associated bookmarks, which in turn would cancel the background job while that job is still executing and has to e.g. persist changes made to the DB.
2024-12-05 19:25:16 +01:00
Sipke Schoorstra ff0b5ee06c Merge branch 'bug/workflow-as-activity-input' 2024-12-05 09:32:05 +01:00
Sipke Schoorstra 2b63c2beb5 Add Kafka consumers + producers to reference project 2024-12-05 09:31:41 +01:00
Sipke Schoorstra 75cb3a3de2
Add synthetic properties to JS engine for exclusion (#6178)
* Add synthetic properties to JS engine for exclusion

This fixes an issue where inputs would be declared as new variables, causing a "miss" when trying to read the input.

* Add InputOutput workflows and tests for data exchange

Introduce new Consumer and Provider JSON workflows to facilitate testing of input and output functionalities, ensuring seamless data exchange between processes. Implement corresponding tests to verify the correct reception and transmission of input data within the Provider workflow back to the Consumer, validating the setup with an assertion for expected output. Update the project configuration to include these workflows in the build output.
2024-12-05 09:30:31 +01:00
Sipke Schoorstra c8ae6ce56d Add InputOutput workflows and tests for data exchange
Introduce new Consumer and Provider JSON workflows to facilitate testing of input and output functionalities, ensuring seamless data exchange between processes. Implement corresponding tests to verify the correct reception and transmission of input data within the Provider workflow back to the Consumer, validating the setup with an assertion for expected output. Update the project configuration to include these workflows in the build output.
2024-12-04 18:04:52 +01:00
Sipke Schoorstra ce99e51e81 Add synthetic properties to JS engine for exclusion
This fixes an issue where inputs would be declared as new variables, causing a "miss" when trying to read the input.
2024-12-04 15:36:30 +01:00
Sipke Schoorstra 97b59974d9
Refactor and reorganize Workflow Storage modules. (#6177)
Moved WorkflowStorageDriver and WorkflowInstanceStorageDriver to a new namespace, VariableStorageDrivers, to improve organization. Updated namespaces in related services and ensured backward compatibility with comments. Minor fix made to TypeJsonConverter for consistency and additional configuration adjustments to support the new structure.
2024-12-04 15:32:40 +01:00
Sipke Schoorstra 8c40475cc6
Fix route data handling (#6176)
* Fix route data handling

* Cleanup
2024-12-04 11:31:03 +01:00
Sipke Schoorstra a0a0482f5d
Fix JS Variable Setting Bug in Workflow Variable Sync Logic (#6175)
* Fix `variables` handling override values set via `Set{VariableName}()` syntax

* Make `TenantsFeature` a dependency of `Multitenancy` to ensure streamlined initialization

From this point on, all application instances are multi-tenant with a single, default tenant. This streamlines the startup tasks that are designed around multitenancy.

* Add JS variable handling tests

* Ensure ExpandoObjects are correctly processed and synchronized between contexts and engines

Introduced a new helper method to process ExpandoObject conversions to JavaScript objects. Updated various handlers and functions to ensure ExpandoObjects are correctly processed and synchronized between contexts and engines. Added a new workflow test to validate the updated processing logic.
2024-12-04 11:30:44 +01:00
Sipke Schoorstra 5fe3798ab2 Remove default factory types from consumer and producer.
The `FactoryType` properties in `ConsumerDefinition` and `ProducerDefinition` have been set to `default!` instead of concrete factory types. This change ensures flexibility for specifying custom factory types without default assumptions.
2024-12-03 15:13:25 +01:00
Sipke Schoorstra 692937d7d7
Enhance Multitenancy with Runtime Tenant Management and Task Handling (#6173)
* Work in progress: Add DefaultTenantService for tenant management

Introduce `DefaultTenantService` and its corresponding interface `ITenantService` to manage tenant operations such as finding, getting, and listing tenants. Update `MultitenantBackgroundService` to utilize `DefaultTenantService` for handling tenant lifecycle events. This enhancement standardizes tenant operations and improves the maintainability of the multitenancy feature.

* WIP

* Add multitenancy event handlers and task interfaces

Implemented new interfaces IBackgroundTaskStarter and ITaskExecutor to manage task lifecycle events efficiently. Introduced new classes such as RunBackgroundTasks, RunStartupTasks, and StartRecurringTasks for handling tenant activation and deactivation events. Modified TaskExecutor to implement these interfaces and adjusted tenant registration logic to invoke these new handlers.

* Refactor multitenancy and task management services.

Remove background and recurring task runners, and integrate tenant activation and deactivation into the multitenancy feature. Enable multitenancy in the server application and create a new service for tenant activation and deactivation. This refactor simplifies the management of tenant-specific tasks and enhances the modularity of the platform.

* Refactor background service to use startup tasks

Replaced hosted service implementation with startup tasks for executing multi-tenant tasks and EF Core migrations. Introduced `PriorityAttribute` to manage task execution order, ensuring migrations run before other services that require database access. This simplifies tenant activation with an ordered task execution and removes redundant classes.

* Refactor MultitenancyFeature service registrations

Reorganized service registrations for better clarity and maintainability. Changed the registration of some services to use factory delegates for retrieving existing services to ensure correct dependencies. This refactor improves the flexibility of the tenant lifecycle event handling.

* Update V3_3 migration files

* Add tenant management endpoints and enhance tenant handling

Implemented tenant management endpoints including Add, Get, List, and Update. Enhanced tenant handling by introducing configuration and store-based providers, and improved error logging for tenant updates. Adjusted various internal functionalities to better support multitenancy features through different persistence providers.

* Implement tenant deletion endpoint and refactor migration setup.

Introduce a new API endpoint to handle tenant deletions while providing appropriate responses based on successful or unsuccessful attempts. Refactor migration handling by replacing startup tasks with hosted services across various modules to streamline the migration execution process.

* Add and integrate ConfigurationJsonConverter

Introduce a `ConfigurationJsonConverter` to handle JSON serialization and deserialization of `IConfiguration` objects. This change centralizes configuration serialization logic, leading to cleaner and more maintainable code. Updated various parts of the codebase to use the new serialization utility, ensuring a consistent approach throughout the application.

* Refactor JSON conversion and update tenant endpoint.

Removed unused workflow references and streamlined JSON handling in `ConfigurationJsonConverter`. Simplified tenant ID handling by removing `IIdentityGenerator` and setting a default value for `UpdatedTenant.Id`.

* Add logging for cancelled recurring tasks

Integrated ILogger to log information when a recurring task is canceled due to an OperationCanceledException. This change enhances troubleshooting by providing clearer insights into task cancellations and their underlying reasons, improving maintainability and observability of the task execution process.

* Disable multitenancy support and adjust default Tenant ID.

Multitenancy is now disabled by setting 'useMultitenancy' to false in the configuration. Additionally, the default Tenant's ID has been changed from null to an empty string to prevent potential null reference issues.

* Remove MultitenantHostedService abstraction file

The MultitenantHostedService.cs file was removed as it is no longer necessary. Its responsibilities have likely been refactored or integrated into another service, indicating a simplification or restructuring of the multitenancy handling in the codebase.

* Rename PriorityAttribute to OrderAttribute for clarity.

This change improves the clarity of the code by renaming PriorityAttribute to OrderAttribute, reflecting its actual purpose. All occurrences of the attribute in the codebase have been updated accordingly to maintain consistency. This makes the intent of the code more understandable for future maintenance and development.

* Fix message key retrieval in ProduceMessage activity

Update the ProduceMessage activity to use GetOrDefault for retrieving the message key. This change ensures that a null key is used if no explicit key is provided or if the key is empty or whitespace, preventing potential errors during message production.

* Refactor multitenancy and scheduling services.

Removed DefaultTenantContextInitializer interface and class, refactored tenant activation/deactivation to use try-catch logging, and updated tenant context handling to use IDisposable for context push. New activities and workflows added in Elsa.Server.Web, and scheduling services enhanced to schedule jobs with explicit job keys and groups. Also, adjusted configurations to enable multitenancy, providing improved maintainability and flexibility.

* Remove Example1 activities and disable multitenancy

Deleted Example1Activity, Example1Workflow, and FirstActivity classes to clean up unused code and simplify the codebase. Disabled multitenancy by setting useMultitenancy to false, likely to streamline configuration and resource utilization.

* Fix and normalize URL path concatenation.

Ensure that the base URLs in both base path providers consistently end with a forward slash. This normalization prevents potential issues with endpoint routing and path concatenation, improving overall URL construction robustness.
2024-12-03 15:07:55 +01:00
FunShow 5ac63f1485
fix JavaScript BigInt mapping to BigInteger serialization incorrect (#6164)
* fix: fix JavaScript BigInt mapping to BigInteger serialization incorrect

* test: add test for BigIntegerJsonConverter

* test: add test for BigIntegerJsonConverter

---------

Co-authored-by: funshow.liu <funshow.liu@didatravel.com>
2024-12-03 15:07:40 +01:00
Amir h Aghajani eb33b38ca3
solve error Python.Runtime.BadPythonDllException: Runtime.PythonDLL was not set or does not point to a supported Python runtime DLL on Elsa.ServerAndStudio.Web solution (#6151) 2024-12-03 15:03:29 +01:00
Sipke Schoorstra 3fb123dde2 Update ElsaStudioVersion to 3.3.0-preview.658
This change updates the ElsaStudioVersion property in Directory.Build.props from version 3.3.0-preview.584 to 3.3.0-preview.658. The update aims to incorporate the latest features and bug fixes provided in the newer preview version of Elsa Studio.
2024-12-01 11:45:31 +01:00
Sipke Schoorstra bda80c82e3 Add support for PostgreSQL as a database provider.
This change introduces PostgreSQL configuration to the application, enabling it as a selectable database provider option. Updated appsettings.json to use PostgreSQL as the default database provider to ensure correct initialization.
2024-12-01 11:40:27 +01:00
Sipke Schoorstra 9f65310353 Add PostgreSQL support for database providers
Introduced PostgreSQL as a new database provider option in the application. Created an enumeration for SQL database providers and updated configurations and project references to support PostgreSQL. Adjusted logic to accommodate the new provider, ensuring integration across components.
2024-12-01 11:04:16 +01:00
Sipke Schoorstra 844af43f39 Refactor database provider configuration logic
Moved SQL Database Provider initialization from a constant to configuration-based dynamic parsing. Enhanced logging configuration for specific components and removed unused tenant and Kafka configurations in appsettings.json for clarity and efficiency.
2024-12-01 09:15:42 +01:00
Sipke Schoorstra 6022df165c
Kafka: Update ProduceMessage activity with support for specifying a Key (#6166)
* Add Key to Kafka ProduceMessage activity

Deleted unnecessary Consumer and Producer workflow classes and the OrderReceived message class to clean up code. Refactored Kafka producer interface and implementation to include message keys for improved message handling. Updated configuration to enable Kafka and removed unused service registrations.

* Add Kafka factory classes and type alias registry

Introduce GenericConsumerFactory and GenericProducerFactory for handling Kafka consumer and producer creation. Implement a TypeAliasRegistry to manage type aliases, enabling cleaner configuration through aliases. Update the OrderReceived message class and ensure better integration with the server web program via these new components.

* Handle empty topics and predicates in Kafka worker.

Ensure the Kafka consumer unsubscribes when no topics are available to subscribe to. Additionally, add a check to handle empty string values for predicates, allowing workflow triggers to proceed in this scenario.

* Disable Kafka usage in Elsa Server Web configuration

Kafka has been disabled in the current configuration by setting the useKafka constant to false. This change might be intended to switch to a different messaging system or to simplify the current setup by removing unnecessary services. Ensure that any dependencies on Kafka are handled elsewhere in the application.
2024-11-29 19:49:31 +01:00
Sipke Schoorstra fba1a19be1 Improve activity execution mapper's persistence logic
Update the logic in DefaultActivityExecutionMapper to handle 'Inherit' persistence mode correctly. Instead of returning 'Inherit' directly, now it will default to the mode specified by defaultMode(). This change ensures consistent handling of persistence strategies.
2024-11-28 19:41:01 +01:00
Sipke Schoorstra 341eeb471f Implement Enum to String Conversion for JavaScript Engine
Add a new `EnumToStringConverter` to convert enums to strings within the JavaScript engine, enhancing object conversion capabilities. Update `DefaultActivityExecutionMapper` with logging functionality for error handling. Modify constructors and improve code styling across multiple files.
2024-11-28 19:23:13 +01:00
Sipke Schoorstra 08632471e3
Implement Dynamic Expression Evaluation for Log Persistence Mode (#6159)
* Add log persistence configuration and strategy evaluation

Introduced `LogPersistenceConfiguration` to support dynamic strategy and expression-based log persistence evaluations. Updated `Default default values.

* Add LogPersistenceConfiguration and enum support

Introduced LogPersistenceConfiguration class and LogPersistenceEvaluationMode enum in both Elsa.Api.Client and Elsa.Workflows.Runtime. Updated JavaScript services to handle enums correctly and register LogPersistenceMode.

* Rename log persistence key for consistency

Updated the log persistence key from `LogPersistenceStrategyKey` to `LogPersistenceConfigKey` to maintain consistency across the codebase. This change ensures that property access aligns with the updated naming conventions used in the application's configuration.

* Reuse JSON serializer options

* Update log persistence config structure in comments

This commit revises the JSON example in code comments to reflect the updated structure of the log persistence configuration. The changes include updated evaluation modes and strategy types for default, inputs, and outputs sections. These modifications aim to enhance clarity and provide accurate documentation of the expected configuration format.
2024-11-28 12:19:38 +01:00
Sipke Schoorstra f8fb7151fc Merge branch 'enh/execute-workflow-activity-wait' 2024-11-26 21:21:44 +01:00
Sipke Schoorstra c5ce511e8b Switch to Distributed runtime and MassTransit caching.
Updated the workflow runtime to Distributed and the distributed caching transport to MassTransit for better scalability and performance. Also, disabled the use of secrets to enhance security and simplify configuration.
2024-11-26 21:21:26 +01:00
Sipke Schoorstra a062847db5
ExecuteWorkflow Activity: Add Wait For Completion option (#6153)
* Add bookmark queue purging and ExecuteWorkflow stimulus

Introduce BookmarkQueuePurgeOptions and ExecuteWorkflowStimulus classes for managing workflow queue purging and stimulus handling. Implement related handler and activity modifications to support waiting for child workflows and purging old bookmark queue entries.

* Update activity reference in XML comments

Corrected the activity reference from DispatchWorkflow to ExecuteWorkflow in XML comments to accurately reflect the functionality. This change ensures the comments are aligned with the actual code behavior.
2024-11-26 20:37:41 +01:00
Sipke Schoorstra f0615337ee Update activity reference in XML comments
Corrected the activity reference from DispatchWorkflow to ExecuteWorkflow in XML comments to accurately reflect the functionality. This change ensures the comments are aligned with the actual code behavior.
2024-11-26 20:37:07 +01:00
Sipke Schoorstra d74159d594 Add bookmark queue purging and ExecuteWorkflow stimulus
Introduce BookmarkQueuePurgeOptions and ExecuteWorkflowStimulus classes for managing workflow queue purging and stimulus handling. Implement related handler and activity modifications to support waiting for child workflows and purging old bookmark queue entries.
2024-11-26 20:35:41 +01:00
Robin Sue 0a349451cd
Fix Serialization of generic types including collections (#6148)
#5682 broke serialization in two ways:
- When a generic type was being serialized, such as List`1, the ` was being escaped by JsonSerializer.Serialize to "\u0060". The PolymorphicObjectConverter would then .Trim('"') without unescaping the `, causing "\\u0060" to be written into the final json.
- When the type is generic with one type parameter, e.g. List<T>, and also IEnumerable<T>, as List<T> is, then it would append "[]" at the end of the type name, resulting in: "System.Collections.Generic.List\\u00601[[Elsa.Workflows.IntegrationTests.Serialization.JsonSerialization.WorkflowAction, Elsa.Workflows.IntegrationTests]], System.Private.CoreLib[]" which is very invalid. It may only do that, if the typename was simplified because the elementType is in the WellKnownTypeRegistry. And even then, this is questionable, as you'd be deserializing an string[] where you've serialized a List<string> for example.
2024-11-26 09:19:16 +01:00
Sipke Schoorstra 8502165dcc Rename UseMySql methods to UseOracle
Renamed all instances of the `UseMySql` method to `UseOracle` in the `OracleProvidersExtensions` class. This aligns the method names with Oracle-specific functionality. Additionally, marked the class with `PublicAPI` attribute for better code documentation.
2024-11-25 19:57:03 +01:00
Sipke Schoorstra 09a5c79211
Fix Tenant ID propagation for MassTransit (#6144)
* Refactor tenant middleware and consumer implementations

Update `TenantConsumeMiddleware` to utilize `ITenantFinder` and `ITenantScopeFactory` for tenant context management. Refactor `WorkflowMessageConsumer` to use constructor parameters directly for improved dependency injection. Additionally, replace private scope variable in `TenantScope` with a public property to enhance code clarity.

* Refactor to replace IWorkflowDispatcher with IStimulusSender

Updated WorkflowMessageConsumer to utilize IStimulusSender for handling message-triggered activities. Simplified dependencies and method calls to align with the new interface, improving the code's clarity and maintainability.
2024-11-24 23:28:38 +01:00
Sipke Schoorstra b4bbf2542b
Fix Tenant ID propagation for Proto.Actor runtime (#6142)
* Fix Tenant ID propagation for Proto.Actor runtime

* Rename Constants to HeaderNames
2024-11-24 21:12:54 +01:00
Sipke Schoorstra 95a2a3337f Set default syntax and UI hint for Predicate input
Added `DefaultSyntax` and `UIHint` properties to the Predicate input field in the MessageReceived activity. This change ensures the input field is configured for JavaScript syntax and provides an expression editor for better user experience.
2024-11-23 15:58:38 +01:00
Sipke Schoorstra eecebb70be Add ExpressionEditor UI hint
Introduced a new constant 'ExpressionEditor' to the InputUIHints class. This addition will support new functionalities related to handling expression-based inputs in the UI.
2024-11-23 15:58:27 +01:00
Sipke Schoorstra c311ba03ac Refactor syntax for new array initialization
Updated new array initialization syntax from `new[] {}` to `[]` across multiple files for consistency and code brevity. This change enhances readability and aligns with modern C# conventions.
2024-11-23 15:58:19 +01:00
Sipke Schoorstra 10146cd661 Add binding support to predicate evaluation in Kafka handler
Included binding parameter in EvaluatePredicateAsync method to incorporate bookmark bindings for evaluating predicates. Added new methods and dependencies to manage workflow instances and contexts, ensuring accurate predicate evaluation within given bookmarks.
2024-11-23 14:41:38 +01:00
Robin Sue 237e476ed4
Cache CSharp scripts (#6130)
- Following the same scheme as the JavaScript engine does
- Also cleans up some duplication in the JavaScript engine
- Change Caching from AbsoluteExpiration to SlidingExpiration. Absolute expiration does not make sense here, as the cached value does not become stale. Instead, the goal is to only keep relevant data cached, for which the inactivity timeout of a sliding expiration is more suited.

Co-authored-by: Sipke Schoorstra <sipkeschoorstra@outlook.com>
2024-11-22 21:36:48 +01:00
Sipke Schoorstra 08e0f8ed16
Refactor URL trimming logic in HTTP endpoint handlers (#6141)
Updated the URL trimming logic to ensure consistent handling of base URLs and paths, removing trailing slashes where necessary. This change improves the consistency and reliability of URL generation.
2024-11-22 21:30:41 +01:00
Sipke Schoorstra 90644f04f0 Disable Kafka in server configuration
This change updates the server configuration to disable Kafka by setting `useKafka` to false. Additionally, an unused import statement for `Elsa.EntityFrameworkCore` has been removed to clean up the code.
2024-11-22 20:48:17 +01:00
Sipke Schoorstra 44bc1d81af Fix error handling and logging in Kafka components
Enhanced error handling in Worker.cs to catch consume exceptions and log warnings. Added logging to TriggerWorkflows.cs for better traceability and fixed issues with expression evaluation. Also updated predicate in ConsumerWorkflow.cs and set CanStartWorkflow to true.
2024-11-22 20:47:44 +01:00
Sipke Schoorstra b534b42a60
Update Kafka Module: Add Support for Configuring Consumer and Producer Factories (#6139)
* Enable Kafka Worker Factory and Refactor Worker Implementation

Introduce a flexible worker factory mechanism allowing custom worker creation with DefaultWorkerFactory as the initial implementation. Enhance Worker class to be generic, remove manual consumer configuration, and streamline message processing logic, improving code maintainability and extensibility.

* Refactor Kafka configuration properties

Renamed configuration properties in Consumer and Producer entities. Updated references in the codebase to use the new `Config` property instead of `ConsumerConfig` and `BootstrapServers`. Adjusted appsettings.json to match the new configuration schema.

* Add Kafka producer and consumer implementation

Implemented classes and interfaces to handle Kafka producers and consumers, including `ProducerProxy`, `ConsumerProxy`, and related context classes and factories. Refactored existing code to utilize these new implementations, replacing worker terminology with consumer and addressing context-specific fields.

* Remove redundant code in DefaultConsumerFactory and SendMessage

Removed commented-out unused return statement in DefaultConsumerFactory. Also eliminated explicit producer.Dispose() call in SendMessage, as the 'using' statement already handles resource cleanup.

* Add ExpandoObject producer and consumer factories

Replaced DefaultSerializers with new JsonSerializer and JsonDeserializer classes. Introduced ExpandoObjectProducerFactory and ExpandoObjectConsumerFactory to handle dynamic types. Updated workflow and configuration to use the new factories.

* Refactor bookmark processing and manage worker subscriptions

Refactored bookmark processing logic to utilize extension methods. Optimized worker subscriptions by centralizing topic subscription management and added logging for subscribed topics. This improves maintainability and clarity of the codebase.

* Refactor worker creation to use ActivatorUtilities

Updated WorkerManager to instantiate workers using ActivatorUtilities for better dependency injection support. This enhances code readability and maintains consistency with the service provider approach used throughout the codebase.
2024-11-22 20:07:14 +01:00
Sipke Schoorstra 8b4ff079ec Merge branch 'bug/5865' 2024-11-21 19:18:14 +01:00
Sipke Schoorstra bb8b0551f4 Disable SonarCloud analysis steps in workflow
Commented out steps related to SonarCloud analysis to temporarily disable them. This includes setting up JDK, installing necessary tools, and running SonarCloud commands for code analysis and coverage.
2024-11-21 19:17:35 +01:00