Hi Claus,

thanks for the tips! I am new to Camel, I'll be glad to contribute once I
dig through what I need to do and settle a bit in the framework.

Jakub


On Fri, Mar 27, 2015 at 3:03 PM, Claus Ibsen <claus.ib...@gmail.com> wrote:

> Hi
>
> Oh an for Camel 2.16 we have improved the main class to offer a
> listener so you can have callbacks during start | stop. That may help
> a bit.
>
> https://github.com/apache/camel/blob/master/camel-core/src/main/java/org/apache/camel/main/MainListener.java
>
>
>
> On Fri, Mar 27, 2015 at 4:02 PM, Claus Ibsen <claus.ib...@gmail.com>
> wrote:
> > Hi
> >
> > No there is not so many on the guice wagon.
> >
> > I dont think you need the guicy fruit anymore, we are on guice 3.0. I
> > recall the fruit was to make it workable in the earlier days of guice.
> >
> > But we love contributions. So you and others are sure welcome to
> > improve camel-guice in any way. Whether its code, docs, examples or
> > whatnot.
> > http://camel.apache.org/contributing.html
> >
> > On Fri, Mar 27, 2015 at 3:57 PM, Jakub Kotowski <ja...@sindicetech.com>
> wrote:
> >> Thanks for the replies.
> >>
> >> After studying the code, I solved it independently like Willem Jiang
> >> suggests:
> >>
> >> public class MyCamelContext extends GuiceCamelContext {
> >>   @Inject
> >>   public MyCamelContext(Injector injector) {
> >>     super(injector);
> >>   }
> >>
> >>   @PostConstruct
> >>   public void start() {
> >>     setTracing(true);
> >>
> >>     // etc.
> >>
> >>     super.start();
> >>   }
> >> }
> >>
> >>
> >> But then I immediately got stuck with a new problem. I wanted to
> configure
> >> my application from command line arguments and that seems impossible to
> do
> >> cleanly with the Camel Guice Main.
> >>
> >> In the end, I found an ugly hack which is however quite localized:
> >>
> >> public class MyMain extends Main {
> >>
> >>   // this is the ugly hack - a static variable that can be accessed
> >> from a Guice Module
> >>
> >>   // Guice doesn't run until main.run(args) is called so it's safe
> >>
> >>   public static MainArgs mainArgs;
> >>
> >>
> >>   public MyMain(String args[]) throws InterruptedException {
> >>     mainArgs = new MainArgs();
> >>     mainArgs.setArgs(args);
> >>
> >>     addOption(new ParameterOption("c", "conf", "Path to the
> >> application.conf configuration file.", "filePath") {
> >>       @Override
> >>       protected void doProcess(String arg, String parameter,
> >> LinkedList<String> remainingArgs) {
> >>         mainArgs.setConfFile(parameter);
> >>         mainArgs.loadAndValidateConf();
> >>       }
> >>     });
> >>   }
> >>
> >>   public static void main(String args[]) throws Exception {
> >>     Main main = new MyMain(args);
> >>
> >>     main.enableHangupSupport();
> >>     main.run(args);
> >>   }
> >> }
> >>
> >>
> >> Then I have MainArgsModule which provides MainArgs via normal dependency
> >> injections - this way I can restrict the ugly static access to this one
> >> class while the rest of the app can use dependency injection as usual.
> >>
> >> public class MainArgsModule extends AbstractModule {
> >>   @Override
> >>   protected void configure() {
> >>   }
> >>
> >>   @Provides
> >>   public MainArgs createMainArgs() {
> >>     return MainFlowGuice.mainArgs;
> >>   }
> >> }
> >>
> >> jndi.properties:
> >>
> >> java.naming.factory.initial =
> >> org.apache.camel.guice.jndi.GuiceInitialContextFactory
> >> org.guiceyfruit.modules = com.myapp.ApplicationModule
> com.myapp.MainArgsModule
> >>
> >>
> >> I guess that really not many people use Guice with Camel when there are
> >> such basic issues using it? I am wondering how much more friction there
> >> will be and whether it wouldn't make more sense to simply use Spring as
> >> most do (even though Spring is not my first choice otherwise).
> >>
> >> Later I could of course write my own Main for Guice, etc. but I was
> >> hoping to get started rather quickly.
> >>
> >>
> >> Jakub
> >>
> >>
> >> On Thu, Mar 26, 2015 at 9:54 AM, dermoritz <tantea...@hotmail.com>
> wrote:
> >>
> >>> i just created an ticket with a suggestion:
> >>> https://issues.apache.org/jira/browse/CAMEL-8555
> >>>
> >>>
> >>>
> >>> --
> >>> View this message in context:
> >>>
> http://camel.465427.n5.nabble.com/Setting-up-CamelContext-with-Guice-tp5764709p5764818.html
> >>> Sent from the Camel - Users mailing list archive at Nabble.com.
> >>>
> >
> >
> >
> > --
> > Claus Ibsen
> > -----------------
> > Red Hat, Inc.
> > Email: cib...@redhat.com
> > Twitter: davsclaus
> > Blog: http://davsclaus.com
> > Author of Camel in Action: http://www.manning.com/ibsen
> > hawtio: http://hawt.io/
> > fabric8: http://fabric8.io/
>
>
>
> --
> Claus Ibsen
> -----------------
> Red Hat, Inc.
> Email: cib...@redhat.com
> Twitter: davsclaus
> Blog: http://davsclaus.com
> Author of Camel in Action: http://www.manning.com/ibsen
> hawtio: http://hawt.io/
> fabric8: http://fabric8.io/
>

Reply via email to