Yeah, well... Method injection didn't work either, the method just
never got called (as expected...)
I finally was able to make it work using the technique you proposed by
initializing the generated classes after the injector is created.
Just to give a bit more details to anybody else interested in this...
Here is how you define a configuration property in your
project.gwt.xml:
<define-configuration-property name="gin.injector" is-multi-
valued="false" />
<set-configuration-property name="gin.injector"
value="com.project.client.gin.MyGinjector" />
Here is how you access this property in your generator:
String ginjectorClassName =
ctx.getPropertyOracle().getConfigurationProperty("gin.injector").getValues().get(0);
Now if you want an injector in the source code you generate you do:
writer.println( ginjectorClassName + " injector = GWT.create(" +
ginjectorClassName + ".class);" );
Thanks again Gal. This is a neat trick!
Philippe
On Mar 20, 8:34 pm, PhilBeaudoin <[email protected]> wrote:
> Thanks Gal, it really helped!
>
> I'm not quite sure I know how to "include a folder in my lookup
> entries". Is this something I can do in Eclipse debugger?
>
> The idea of using the injector directly didn't quite work, because I
> need my generated class to be instanciated .asEagerSingleton(). If I
> try calling GWT.create( MyGingector ) within the generated class I get
> infinite recursion. If I instead try to assign the MyGingector
> instance to some static variable, it doesn't work either because the
> variable isn't initialized yet.
>
> However, I've decided to rework my generated class to use method
> injection instead of constructor injection and it seems to work very
> well!
>
> Cheers,
>
> Philippe
>
> On Mar 20, 7:31 pm, Gal Dolber <[email protected]> wrote:
>
>
>
> > Ok,
>
> > To view the generated class compile with "-gen /somepathonyourdisk", another
> > tip to debug a generated class: include in your lookup entries the folder
> > where the generated classes are and you will be able to step through the
> > generated code.
>
> > And to use gin into your generated class I didn't found a great solution,
> > because you can inject an interface that is generated but gin just make a
> > GWT.create(theinterface.class); and it wont inject into the generated class.
>
> > This is what I did:
> > Add an set-configuration-property into your module (define it first) and
> > specify on it the location of your injector, then use directly the injector
> > into your generated code. Like this:
>
> > <add-configuration-property name="gin.injector"
> > value="com.some.gin.MyGinInjector" />
>
> > Regards
>
> > 2010/3/20 PhilBeaudoin <[email protected]>
>
> > > I'm trying to write my first GWT generator... I've gotten pretty far,
> > > but I have the following questions:
> > > 1) Is there any way to see the generated class for debugging purposes?
> > > For example, can I force GWT to produce the .java file for my
> > > generated class (it did it once when I had an error, but I can't force
> > > it to produce it every time.) Any other hints as to how to debug a
> > > generated class?
> > > 2) I'd like to use GIN to inject objects in the constructor of the
> > > generated class. I'm not quite sure if this works or how to make it
> > > work. Any hints would be great!
>
> > > Thanks!
>
> > > --
> > > You received this message because you are subscribed to the Google Groups
> > > "Google Web Toolkit" group.
> > > To post to this group, send email to [email protected].
> > > To unsubscribe from this group, send email to
> > > [email protected]<google-web-toolkit%2Bunsubs
> > > [email protected]>
> > > .
> > > For more options, visit this group at
> > >http://groups.google.com/group/google-web-toolkit?hl=en.
--
You received this message because you are subscribed to the Google Groups
"Google Web Toolkit" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/google-web-toolkit?hl=en.