Wrap rclcpp::Node with basic Lifecycle behavior?
I have a system built leveraging multiple rclcpp::Lifecycle nodes for managing system lifecycle. I would like to include an external non-lifecycle node in this system, but ideally allow it to be controlled through the same management mechanisms. Is there any ROS2 tool out there which can wrap an existing rclcpp::Node with a basic lifecycle behavior. For example maybe the node doesn't actually launch at all until the active state is hit? I think as it stands now having a non-lifecycle node in your system seems to immediately degrade the system to a non-lifecycle compliant state.
Edit: My current plan is to write my own ComponentManager (based of the rclcpp implementation) which is a lifecycle node and will defer node loading until activate is called. When deactivate is called it would unload the nodes. While obviously not very efficient I think this will enforce the minimal portion of the lifecycle behavior (preventing interactions with other nodes when not ACTIVE) as well as supporting shutdown behavior. I will post here if this works, unless someone shares a better solution first.