Currently several interfaces and classes in org.apache.camel and org.apache.camel.spi access classes from org.apache.camel.model.
As the classes in model are forming the dsl they need access to many other parts of camel. So this creates a lot of dependency cycles. Most importantly these references make the api not self contained.
So I propose to introduce interfaces on model level that contain the methods that access the model.
For example there should be a ModelCamelContext that extends CamelContext and contains methods like :
void startRoute(RouteDefinition route) throws Exception;
DefautlCamelContext will already implement ModelCamelContext so it is ready for 3.0.
To achieve maximum compatiblity we should leave the problematic methods in CamelContext but deprecate them.
For camel 3.0 we will then remvoe these methods.