COVESA / COVESA/vsomeip

Question: Why is configuration plugin bypassed when ENABLE_MULTIPLE_ROUTING_MANAGERS is enabled?

Open
#1,015 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
1.4k
Forks
826
PR merge metrics
No merged PRs in 30d

Description

## Question

When `ENABLE_MULTIPLE_ROUTING_MANAGERS` is enabled, the configuration plugin is bypassed and `configuration_impl` is instantiated directly in `application_impl.cpp`:

```cpp
#ifndef VSOMEIP_ENABLE_MULTIPLE_ROUTING_MANAGERS
auto its_plugin = plugin_manager::get()->get_plugin(plugin_type_e::CONFIGURATION_PLUGIN, VSOMEIP_CFG_LIBRARY);
// ... uses plugin to get configuration
#else
configuration_ =
std::dynamic_pointer_cast(std::make_shared(configuration_path));
// ... loads configuration directly
#endif
```

Additionally, the `vsomeip3-cfg` library is not built at all when this option is enabled (CMakeLists.txt lines 294-296).

## What we're trying to understand

Why does the plugin architecture break down for multiple routing managers? Is this an implementation quirk, or is there an intentional design reason for this behavior?

## Context

I'm trying to extend the configuration library for a specific use case. The plugin design works great for this - I can provide a custom configuration implementation via the plugin interface. However, it appears I cannot use this approach if I also need multiple routing managers enabled.

I could try enabling both features myself, but I want to understand what design constraint or edge case this was guarding against before doing so.

Contributor guide

Open the contributing guide

Research direction

Read the conditional configuration setup in application_impl.cpp and the vsomeip3-cfg build logic in CMakeLists.txt around lines 294-296. Trace how the configuration plugin is loaded versus how configuration_impl is instantiated when ENABLE_MULTIPLE_ROUTING_MANAGERS is enabled; done means documenting the design constraint or confirming whether the bypass can support custom configuration implementations.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
networking
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.