Let's hope more people are experiencing the same problem (and vote the issue) such that the dev team put it on their priority list.
On Wed, Mar 20, 2013 at 3:22 PM, Ashton Thomas <ashton@acrinta.com> wrote:
I would also be interested in any updates to this as I am currently working on the async aspect or my app. (I wouldn't even know how to identify anomalies due to a lack of experience here)I also remembrer having the same questions with soyc-at
On Wednesday, March 20, 2013 7:53:11 AM UTC-4, Ed wrote:After upgrading from 2.5.0 to 2.5.1 all of a sudden my code splitting result is different:--+ Code fragments are bundles together which weren't before.+ I have a left over fragment, which was 0 (see attachment).What changed concerning code splitting? Can't find any in the release notes.A few observations:1) All my components have a singleton facade that contains a method to create the package protected controller implementation that is called through split point (GWT.runAsync()).In this way I have a LoginControllerDefault that is present in the left over, but this package protected controller ONLY appears in the LoginFacade.In the same way I have SubscribeControllerControllerDefault that appears only in SubscribeControllerFacade...What suprised me is that they appear both in the same code split, namely #30 (see screenshot attachment).No idea why.I moved the creation of LoginControllerDefault from the Facade "directly" (see below for code snippets) in to the runAsync, but that had no effect.I also removed the LoginControllerDefault completely which had little effect on the left-overWhen I read the soyc report (automatically build during maven nightly build), It doesn't really help me. This page is hard to understand, like this page:soycReport/compile-report/leftoverStatus-0.htmlEven worse, from this page you can go deeper to see why a class is in a certain split point but that results in a page not found (404).That is, the following page isn't present. BTW: the page also resulted in a 404 in previous GWT releases.soycReport/compile-report/methodDependencies-total-0.html
Why?I played with the nr of "fragmentCount", but that has little effect, see the attached screenshots:+ fragmentCount = 6: screenshot with 4 splits points.+ fragmentCount = 8: screenshot with 6 splits points.+ fragmentCount = 10: screenshot with 7 splits points.Below a code snippet that shows how I create the controllers in split point #30 (see screenshot). It concerns the creation of the LoginControllerDefault and SubscribeInfoControllerDefault.Note: I don't find it the most elegant code solution, but before I passed in a Creator interface that was used in GWT.runAsync(), but that didn't work (big left over). I posted that in the forum and it was mentioned that it could be that it is because the code removal is run after the split point code, and that is probably why it doesn't work and that Ray still have a look in to code split code that need to be optimized.How to solve/analyze these issues?What are your experiences?Any suggestions are more then welcome as I am out of ideas and find it hard to solve this, but it frustrates me ;)
Loading and creating the the Login and SubscribeInfo controller:-----The code snippet that is called by the LoginControllerBuilder to load the Login controller:public void create(final AsyncCallback<LoginController> callback) {getLazyLoader().createInCodeSplitGeneral30(LoginController.class, callback);}The controller loading code (in other class):public <T> void createInCodeSplitGeneral30(final Class<T> type, final AsyncCallback<T> callback, final SimpleMediator mediator) {GWT.runAsync(new RunAsyncCallback() {public void onSuccess() {callback.onSuccess(createCodeSplitGeneral30(type, mediator));}public void onFailure(final Throwable reason) {callback.onFailure(reason);}});}@SuppressWarnings("unchecked")private <T> T createCodeSplitGeneral30(final Class<T> type, final SimpleMediator mediator) {if (isType(type, LoginController.class)) {return (T) LoginFacade.getInstance().createController();}else if (isType(type, SubscribeController.class)) {return (T) SubscribeFacade.getInstance().createController();}else {throw GenExpClass.createExceptionVarMsg(getClass(), ERR_ID + "Gn30", type);}}
You received this message because you are subscribed to a topic in the Google Groups "Google Web Toolkit" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/google-web-toolkit/_8CdVbBb488/unsubscribe?hl=en.
To unsubscribe from this group and all its topics, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To post to this group, send email to google-web-toolkit@googlegroups.com.
Visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To post to this group, send email to google-web-toolkit@googlegroups.com.
Visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
No comments:
Post a Comment