I think I'm done with a first usable pass at the endpoint DSL. I've removed the getters/setters, added 2 flavors of fluent methods (one with the real java type, another one with a String to allow references and property placeholder processing), renamed the generated classes to XxxEndpointBuilder and cleaned things a bit. In order to access this API, one would create an EndpointRouteBuilder anonymous class instead of the usual RouteBuilder (see below). The only difference is that it gives immediate access to the fromXxx() and toXxx() methods that are generated as default methods on the interface, so there's no need to import anything else. Please have a look and let me know what you think or if we see anything to improve.
Cheers, Guillaume protected RouteBuilder createRouteBuilder() throws Exception { return new EndpointRouteBuilder() { @Override public void configure() throws Exception { from(fromFile(start).initialDelay(0).delay(10).move(done + "/${file:name}")) .to(toMock("result")); } }; } Le mer. 5 juin 2019 à 23:23, Guillaume Nodet <gno...@apache.org> a écrit : > I just pushed a branch called "endpoint-dsl". > > My goal is to experiment with an auto-generated DSL for endpoints, mainly > to have a complete and type-safe java DSL for endpoints instead of using > URI containing all the parameters. Right now, it compiles but isn't really > usable at a DSL. > I'll get back as soon as I have something which can actually be used so > that we can discuss further various options. > My rough goal is to be able to write something like: > > from(file("target/data/foo").delay(4000).backoffMultiplier(4 > ).backoffIdleThreshold(2).backoffErrorThreshold(3)) > .to(mock("result")) > > instead of > > from( > "file://target/data/foo?delay=4000&backoffMultiplier=4&backoffIdleThreshold=2&backoffErrorThreshold=3" > ) > .to("mock:result") > > Stay tuned ! > > -- > ------------------------ > Guillaume Nodet > > -- ------------------------ Guillaume Nodet