Hello Claus,

Thanks a lot for your helpful response.

Currently I just set the CamelContext on the endpoints right after I create
them and that seems to take care of the wiring between endpoint and
component.

Regarding the code example I included in my previous email to this list, I
had to make a small change to make it work:

Instead of main.addRouteBuilder(...), I now use context.addRoutes(...).
I also had to wrap those calls in a try-catch, which is fine, I guess.

So something like:

try {

    context.addRoutes(new MyRouteBuilder(...));
    context.addRoutes(new MyOtherRouteBuilder(...));

// Some Camel 2.x APIs still use "throws Exception". Apparently this might
change in Camel 3.x and beyond:
//
http://camel.apache.org/camel-30-ideas.html#Camel3.0-Ideas-AvoidthrowsExceptiononenduserAPI
} catch (Exception e) {
    throw new IllegalStateException(e);
}



On Fri, Aug 4, 2017 at 8:42 AM, Claus Ibsen <claus.ib...@gmail.com> wrote:

> Hi
>
> Yeah you can run Camel standalone with that main class or do it by
> yourself.
>
> One comment is that when you create the CxfEndpoint then you need to
> set the CxfComponent on this instance as well.
>
> Ideally you create the endpoints via the uri syntax, or via the component.
>
> For some camel components then they rely on the component for the
> endpoints,producers,consumers etc such as JMS, Jetty, and possible
> CXF.
>
> So a good rule of thumb is to create endpoints via their components.
> Afterwards you can tweak then via their getter/setters.
>
> In the future we will have some tooling to auto generate a builder
> style Java DSL for the endpoints so you can configure them in a type
> safe manner via java code. That is on the roadmap for 3.x.
>
> On Wed, Aug 2, 2017 at 6:47 PM, Oliver Doepner <odoep...@gmail.com> wrote:
> > Hello,
> >
> > I am trying to use Camel using the pure Java approach (Java DSL, no DI
> > framework, no URI Strings).
> >
> > My approach so far is like the simplistic sample below, but I am not sure
> > if it uses proper practices.
> >
> > Can you please let me know if/what problems you see with this approach?
> > Is there maybe documentation somewhere with a full "pure Java" example?
> >
> > Thank you
> > Oliver
> >
> >
> > import org.apache.camel.CamelContext;
> > import org.apache.camel.Exchange;
> > import org.apache.camel.Processor;
> > import org.apache.camel.builder.RouteBuilder;
> > import org.apache.camel.component.cxf.CxfComponent;
> > import org.apache.camel.component.cxf.CxfEndpoint;
> > import org.apache.camel.main.Main;
> > import org.apache.camel.main.MainListenerSupport;
> >
> > public class CamelExample {
> >
> >     public static void main(String... args) throws Exception {
> >
> >         final Main main = new Main();
> >
> >         main.addMainListener(new MainListenerSupport() {
> >             @Override
> >             public void configure(CamelContext context) {
> >                 context.addComponent("cxf", new CxfComponent());
> >
> >                 final CxfEndpoint webService = new CxfEndpoint();
> >                 webService.setCamelContext(context);
> >                 webService.setAddress("http://service/entity";);
> >                 webService.setServiceClass(MyService.class);
> >                 webService.setDefaultOperationName("test");
> >                 // etc
> >
> >                 Processor requestPreparation = new Processor() {
> >                     @Override
> >                     public void process(Exchange exchange) throws
> Exception
> > {
> >                         exchange.getIn().setBody(new MyServiceRequest());
> >                     }
> >                 };
> >
> >                 main.addRouteBuilder(
> >                         new RouteBuilder() {
> >                             @Override
> >                             public void configure() throws Exception {
> >                                 from("direct:start")
> >                                         .process(requestPreparation)
> >                                         .to(webService);
> >                             }
> >                         }
> >                 );
> >             }
> >         });
> >
> >         main.run();
> >     }
> >
> >     /* web service related classes stubbed out to keep example code
> simple
> > */
> >
> >     private static final class MyService {};
> >     private static final class MyServiceRequest {};
> >
> > }
> >
> >
> >
> > --
> > Oliver Doepner
> > Software Developer
> > IMP Solutions, Halifax, NS
> > Phone 1-902-482-1615
> >
> >
> >
> > --
> > Oliver Doepner
> > Halifax, Nova Scotia
> > http://oliver.doepner.net/
> > Buchstabensalat : ßäöüÄÖÜ
>
>
>
> --
> Claus Ibsen
> -----------------
> http://davsclaus.com @davsclaus
> Camel in Action 2: https://www.manning.com/ibsen2
>



-- 
Oliver Doepner
Halifax, Nova Scotia
http://oliver.doepner.net/
Buchstabensalat : ßäöüÄÖÜ

Reply via email to