Thanks for the patch, it works on the hello world project I made.
However, it is still not enough for the bigger project I'm working on. I'll 
try to investigate and determine what's going on or reproduce it via a more 
complex example. 


Le vendredi 21 novembre 2014 00:04:03 UTC+1, John Stalcup a écrit :
>
> Though we do not make a promise to process GWT.create() of entry point 
> types before any other GWT.create() calls, it was easy to restore this 
> behavior in incremental, so I went ahead and did it (
> https://gwt-review.googlesource.com/#/c/10410/).
>
> You should probably find a way not to depend on this in the future, as it 
> is not promised and may change again.
>
>
> On Mon Nov 17 2014 at 2:07:02 PM Christopher Viel <[email protected] 
> <javascript:>> wrote:
>
>> Hi,
>>
>> I'm gonna add some more background here.
>>
>> The generator generates a bunch of file and binds the interfaces using 
>> GIN. I would't say this is strictly necessary, but it brings the advantages 
>> of DI to the generated code. So we have an Entry Point that is an interface 
>> and a rebind rule. UserAgentAsserter uses a similar technique. What we also 
>> do is generate a Ginjector interface and put a 
>> *GWT.create(GeneratedGinjector.class)* call inside the generated entry 
>> point. That way GIN's generator is called after and everything should be 
>> resolvable. The generated ginjector is setup to look at a specific property 
>> to load additional gin modules. Here it happens  that one of them is also 
>> generated. So all of that actually work with 2.7.
>>
>> What no longer works is if the entry point and the ginjector are no 
>> longer generated. If there is a GWT.create() call that resolves to a 
>> Ginjector from an explicit entry point, it fails. I'm not sure I'm being 
>> very clear here so here's an example:
>>
>> *MyModule.gwt.xml:*
>> <module>
>>     <entry-point class="com.project.EntryPointToGenerate"/>
>>     <entry-point class="com.project.ExplicitEntryPoint"/>
>>
>>     <extend-configuration-property name="gin.ginjector.modules"
>>             value="com.project.GeneratedGinModule"/>
>>
>>     <generate-with class="com.project.EntryPointGenerator">
>>         <when-type-is class="com.project.EntryPointToGenerate"/>
>>     </generate-with>
>> </module>
>>
>> *EntryPointToGenerate:*
>> public interface EntryPointToGenerate extends EntryPoint {}
>>
>> *EntryPointGenerator*: Generates *com.project.GeneratedGinModule* and an 
>> implementation of *EntryPointToGenerate*
>>
>> *ExplicitEntryPoint*: 
>> public class ExplicitEntryPoint implements EntryPoint {
>>     private static final ExplicitGinjector GINJECTOR = GWT.create(
>> ExplicitGinjector.class);
>>
>>     @Override
>>     public void onModuleLoad() {}
>> }
>>
>> *ExplicitGinjector:*
>> @GinModules( value = ExplicitGinModule.class, properties = 
>> "gin.ginjector.modules" )
>> public interface ExplicitGinjector extends Ginjector {
>>     /* snip */
>> }
>>
>> With this code in a regular compilation, EntryPointToGenerate is 
>> generated before ExplicitEntryPoint is traversed. With incremental 
>> compilation, ExplicitEntryPoint is traversed (and incidentally GINs 
>> generator is called) before EntryPointGenerator is called. I would expect 
>> the first entry point to be traversed at first, even if it means calling a 
>> generator.
>>
>> On Sunday, November 16, 2014 3:56:20 PM UTC-5, Nicolas Morel wrote:
>>>
>>> Hi, 
>>>
>>> I'm currently testing GWT 2.7.0-rc1 and one of my project using GWTP 
>>> Rest-Dispatch <https://github.com/ArcBees/GWTP/wiki/Rest-Dispatch> is 
>>> not working under SDM. 
>>> The compilation fails with this error : 
>>>
>>>                   [ERROR] Unable to load gin module type 
>>> [com.gwtplatform.dispatch.rest.client.RestGinModule], maybe you haven't 
>>> compiled your client java sources?
>>> java.lang.ClassNotFoundException: com$gwtplatform$dispatch$rest$
>>> client$RestGinModule
>>> at com.google.gwt.inject.rebind.GinBridgeClassLoader.findClass(
>>> GinBridgeClassLoader.java:150)
>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
>>> at com.google.gwt.inject.rebind.GinBridgeClassLoader.loadClass(
>>> GinBridgeClassLoader.java:108)
>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
>>> at java.lang.Class.forName0(Native Method)
>>> at java.lang.Class.forName(Class.java:340)
>>> at com.google.gwt.inject.rebind.GinjectorGenerator.loadClass(
>>> GinjectorGenerator.java:223)
>>> at com.google.gwt.inject.rebind.GinjectorGenerator.
>>> getPropertyModuleClasses(GinjectorGenerator.java:137)
>>> at com.google.gwt.inject.rebind.GinjectorGenerator.getModuleClasses(
>>> GinjectorGenerator.java:116)
>>> at com.google.gwt.inject.rebind.GinjectorGenerator.generate(
>>> GinjectorGenerator.java:72)
>>> at com.google.gwt.core.ext.IncrementalGenerator.
>>> generateNonIncrementally(IncrementalGenerator.java:40)
>>>
>>> The full stack trace is available in attachment.
>>>
>>> The problem has been reported to the GWTP team here 
>>> <https://github.com/ArcBees/GWTP/issues/614>. The "normal" compilation 
>>> works but not the incremental compile from SDM.
>>>
>>> I made a simple example available here 
>>> <https://github.com/nmorel/hello-gwt-rest-dispatch>.
>>>
>>> From what I saw, the RestGinModule that gin is trying to load is 
>>> generated by a GWT generator (VelocityGenerator 
>>> <https://github.com/ArcBees/GWTP/blob/master/gwtp-core/gwtp-dispatch-rest/src/main/java/com/gwtplatform/dispatch/rest/rebind/VelocityGenerator.java>
>>> .generateRestGinModule()) and passed to gin through the property
>>>  "gin.ginjector.modules". 
>>> It seems unconventional but was working before.
>>> Any ideas what is going on please ?
>>>
>>>
>>>
>>>  -- 
>> You received this message because you are subscribed to the Google Groups 
>> "GWT Contributors" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] 
>> <javascript:>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/google-web-toolkit-contributors/57be9c00-e1f2-4c99-ad20-40c0c86943aa%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/google-web-toolkit-contributors/57be9c00-e1f2-4c99-ad20-40c0c86943aa%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>

-- 
You received this message because you are subscribed to the Google Groups "GWT 
Contributors" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-web-toolkit-contributors/8e48aca7-653a-41a5-9dee-fc029428ffce%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to