I added logs to my generator and it seems the generator is called when it is supposed to (aka only once for each permutation with the right value for myProperty): Computing all possible rebind results for 'com.mvp4g.client.Mvp4gModule' Rebinding com.mvp4g.client.Mvp4gModule Invoking generator com.mvp4g.util.Mvp4gGenerator User.agent: 'gecko1_8, ginModule=com$mvp4g$example $client$FirefoxGinModule 2409 classes scanned in 22 ms. Generating writer for com.mvp4g.client.Mvp4gModuleImpl_79617565 Generating source for com.mvp4g.client.Mvp4gModuleImpl_79617565 Mvp4g Compilation: 232ms. Rebinding com.mvp4g.client.Mvp4gModule Invoking generator com.mvp4g.util.Mvp4gGenerator User.agent: 'ie6, ginModule=com$mvp4g$client $DefaultMvp4gGinModule 2409 classes scanned in 18 ms. Generating writer for com.mvp4g.client.Mvp4gModuleImpl_A1473246115 Generating source for com.mvp4g.client.Mvp4gModuleImpl_A1473246115 Mvp4g Compilation: 77ms. Rebinding com.mvp4g.client.Mvp4gModule Invoking generator com.mvp4g.util.Mvp4gGenerator User.agent: 'ie8, ginModule=com$mvp4g$client $DefaultMvp4gGinModule 2409 classes scanned in 11 ms. Generating writer for com.mvp4g.client.Mvp4gModuleImpl_A1473246115 Mvp4g Compilation: 23ms. Rebinding com.mvp4g.client.Mvp4gModule Invoking generator com.mvp4g.util.Mvp4gGenerator User.agent: 'ie9, ginModule=com$mvp4g$client $DefaultMvp4gGinModule 2409 classes scanned in 8 ms. Generating writer for com.mvp4g.client.Mvp4gModuleImpl_A1473246115 Mvp4g Compilation: 121ms. Rebinding com.mvp4g.client.Mvp4gModule Invoking generator com.mvp4g.util.Mvp4gGenerator User.agent: 'opera, ginModule=com$mvp4g$client $DefaultMvp4gGinModule 2409 classes scanned in 7 ms. Generating writer for com.mvp4g.client.Mvp4gModuleImpl_A1473246115 Mvp4g Compilation: 73ms. Rebinding com.mvp4g.client.Mvp4gModule Invoking generator com.mvp4g.util.Mvp4gGenerator User.agent: 'safari, ginModule=com$mvp4g$client $DefaultMvp4gGinModule 2409 classes scanned in 18 ms. Generating writer for com.mvp4g.client.Mvp4gModuleImpl_A1473246115 Mvp4g Compilation: 32ms.
but when I look at the soyc report, I can tell that both implementations are used for each permutation to calculate the fragments for code splitting. Any idea why? Thanks, Pierre On Sep 27, 8:35 am, Pierre Coirier <plcoir...@gmail.com> wrote: > Thanks for pointing that out. It was a typo error, in my code I do > have myProperty = value2. > > If it helps, you can find the code that I'm using to reproduce the > error:http://mvp4g.googlecode.com/svn/temp/gwt-example.zipand the > soyc report:http://mvp4g.googlecode.com/svn/temp/compile-report.zip > > When you look at the report, you do see the expected deferred property > set: > Permutation 0 ('myProperty' : 'value1' , 'user.agent' : 'gecko1_8') > > but clicking on the Slip Point Report, you see the 2 implementations > generated are here whereas only one is expected. > > Pierre > > On Sep 27, 8:00 am, Paul Robinson <ukcue...@gmail.com> wrote: > > > > > > > > > I don't know the answer to your question, but there is a mistake in the > > gwt.xml fragment you posted. You assign myProperty=value1 when user.agent > > equals FF and also when user.agent is not FF. You never assign myProperty = > > value2. > > > HTH > > Paul > > > On 27/09/11 05:37, Pierre Coirier wrote: > > > > Hi, > > > > I got an issue with deferred property and code splitting. > > > > In my GWT configuration file, I have defined the following property: > > > <define-property name="myProperty" values="value1,value2" /> > > > <set-property name="myProperty" value="value1"> > > > <when-property-is name="user.agent" value="gecko1_8" /> > > > </set-property> > > > <set-property name="myProperty" value="value1"> > > > <none> > > > <when-property-is name="user.agent" value="gecko1_8" /> > > > </none> > > > </set-property> > > > > and I have a generator with the following code that generates one > > > implementation depending on this deferred property value: > > > > public String generate( TreeLogger logger, GeneratorContext context, > > > String typeName ) throws UnableToCompleteException { > > > String value = propertyOracle.getSelectionProperty( logger, > > > "myProperty" ); > > > if("value1".equals(value)){ > > > return generateImpl1(); > > > } else { > > > return generateImpl2(); > > > } > > > } > > > > According to my settings for each browser, you can have only one > > > value, ie for each permutation my generator should generate either > > > Impl1 or Impl2 but not both. However in my soyc report, I noticed that > > > for each browser/permutation, both implementations are generated. > > > > The issue I have is that my generator generates the same GWT.runAsync > > > call for both implementation and since the 2 implementations are > > > generated for each permutation (even if only one can be used for each > > > permutation), GWT believes there are 2 split points and since it's the > > > same code inside the 2 split points, all the code is added to the left > > > fragment code. > > > > My question is how come my generator is called twice for each > > > permutation? Since only one value is possible for each permutation > > > shouldn't it be called only once? Am I doing something wrong in my > > > configuration which could explain why my generator is called twice? > > > > Thanks for your help, > > > Pierre -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.