Re: Google App Engine API Environment use in Module Configuration?
guice (even trunk) most certainly works in gae. This looks like a problem in your unit test. There's setup needed per gae docs. http://code.google.com/appengine/docs/java/howto/unittesting.html Cheers, Adrian jclouds On Wed, Nov 18, 2009 at 1:07 PM, Tristan tristan.slomin...@gmail.com wrote: I should clarify that the problem occurs in local Development Mode. I am yet to put it on GAE itself. On Nov 18, 2:58 pm, Tristan tristan.slomin...@gmail.com wrote: On Google App Engine, When attempting to do the following in a Module: bind(Query.class).annotatedWith(Names.named(PersonQuery)) .toProvider(new ProviderQuery(){ @Override public Query get() { return new Query(Person.kind); } }); I get the following error: 1) Error in custom provider, java.lang.NullPointerException: No API environment is registered for this thread. while locating com.google.appengine.api.datastore.Query annotated with @com.google.inject.name.Named(value=PersonQuery) Is Guice unable to use the Google App Engine API Environment? -Tristan -- You received this message because you are subscribed to the Google Groups google-guice group. To post to this group, send email to google-gu...@googlegroups.com. To unsubscribe from this group, send email to google-guice+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-guice?hl=en. -- You received this message because you are subscribed to the Google Groups google-guice group. To post to this group, send email to google-gu...@googlegroups.com. To unsubscribe from this group, send email to google-guice+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-guice?hl=.
Re: Google App Engine API Environment use in Module Configuration?
Thanks Adrian, Although I may not have explained the question properly. I am not running unit tests. Here's what happens: Guice starts up, it runs module configuration. While it is running module configuration, it comes across the following: bind(Query.class).annotatedWith(Names.named(PersonQuery)) .toProvider(new ProviderQuery(){ @Override public Query get() { return new Query(Person.kind); } }); The problem is that the call: new Query(..) is dependent on ApiProxy.Environment. BUT, because the Module is not a servlet, the thread that runs it does not have an instance of ApiProxy.Environment sent. Hence the error: 1) Error in custom provider, java.lang.NullPointerException: No API environment is registered for this thread. while locating com.google.appengine.api.datastore.Query annotated with @com.google.inject.name.Named(value=PersonQuery) What I need to do is inside the module, inside public void configure (), something to the tune of ApiProxy.setEnvironmentForCurrentThread (some environment) . This is production code, I don't know where to get some environment from. Tristan On Nov 19, 2:01 pm, Adrian Cole fernc...@gmail.com wrote: guice (even trunk) most certainly works in gae. This looks like a problem in your unit test. There's setup needed per gae docs. http://code.google.com/appengine/docs/java/howto/unittesting.html Cheers, Adrian jclouds On Wed, Nov 18, 2009 at 1:07 PM, Tristan tristan.slomin...@gmail.com wrote: I should clarify that the problem occurs in local Development Mode. I am yet to put it on GAE itself. On Nov 18, 2:58 pm, Tristan tristan.slomin...@gmail.com wrote: On Google App Engine, When attempting to do the following in a Module: bind(Query.class).annotatedWith(Names.named(PersonQuery)) .toProvider(new ProviderQuery(){ @Override public Query get() { return new Query(Person.kind); } }); I get the following error: 1) Error in custom provider, java.lang.NullPointerException: No API environment is registered for this thread. while locating com.google.appengine.api.datastore.Query annotated with @com.google.inject.name.Named(value=PersonQuery) Is Guice unable to use the Google App Engine API Environment? -Tristan -- You received this message because you are subscribed to the Google Groups google-guice group. To post to this group, send email to google-gu...@googlegroups.com. To unsubscribe from this group, send email to google-guice+unsubscr...@googlegroups.com. For more options, visit this group athttp://groups.google.com/group/google-guice?hl=en. -- You received this message because you are subscribed to the Google Groups google-guice group. To post to this group, send email to google-gu...@googlegroups.com. To unsubscribe from this group, send email to google-guice+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-guice?hl=.
Re: Google App Engine API Environment use in Module Configuration?
I should clarify that the problem occurs in local Development Mode. I am yet to put it on GAE itself. On Nov 18, 2:58 pm, Tristan tristan.slomin...@gmail.com wrote: On Google App Engine, When attempting to do the following in a Module: bind(Query.class).annotatedWith(Names.named(PersonQuery)) .toProvider(new ProviderQuery(){ @Override public Query get() { return new Query(Person.kind); } }); I get the following error: 1) Error in custom provider, java.lang.NullPointerException: No API environment is registered for this thread. while locating com.google.appengine.api.datastore.Query annotated with @com.google.inject.name.Named(value=PersonQuery) Is Guice unable to use the Google App Engine API Environment? -Tristan -- You received this message because you are subscribed to the Google Groups google-guice group. To post to this group, send email to google-gu...@googlegroups.com. To unsubscribe from this group, send email to google-guice+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-guice?hl=en.