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/

Reply via email to