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/ >