Alina, In theory if you take -api–report=path to "Additional compiler options" in Moonshine and build project using "Project" -> "Build Project" you may be able to have report without using console.
Thanks, Piotr 2018-02-21 9:36 GMT+01:00 Gabe Harbs <harbs.li...@gmail.com>: > Yes. I cannot imagine how we would have managed the port without the stubs. > > You also get a list of TODOs in the app which can be gradually reduced as > more of the app starts working correctly. > > Creating the stubs was something which took us about 2 weeks of intense > work. A utility which creates stubs which includes classes, used properties > and methods with parameters and type data would save a tremendous amount of > time for users porting code. > > I think this report (if we have additional type information) is the right > way to go about that. The paths in the report could be modified to place > all the stub classes in a specific folder. Our goal while porting was to > get rid of as many classes as possible from our “dummy” package. > > HTH, > Harbs > > On Feb 21, 2018, at 10:25 AM, Yishay Weiss <yishayj...@hotmail.com> wrote: > > The stubs were useful to have the app compile and to test functionality. > Once there’s an app running, albeit with runtime errors, you can > incrementally implement the missing parts. > > We were thinking that the report, if providing a complete description, > could be parsed by an automation tool which would create these stubs. > > > *From: *Alex Harui <aha...@adobe.com> > *Sent: *Wednesday, February 21, 2018 9:26 AM > *To: *users@royale.apache.org > *Subject: *Re: Substitutes in Apache Royale > > What did the stub classes do? I suppose you could add signatures to the > report, but you could also find the signature in the source or ASDoc. > > The numbers represent the number of times the API was resolved to a > definition, which is, at least for now, not 1:1 related to how often it > was seen in the code, but sort of gives a relative measure of how often > that API was used compared to other APIs of that type. IOW, there are two > kinds of APIs in the HelloWorld report: Classes and properties. Classes > seem to get resolved multiple times per use. Properties seem to get > resolved once per use. At least in an example this simple. > > IMO, it is inefficient for the compiler to resolve things more than once > per use, so that points to a possible place to speed up the compiler some > day. > > -Alex > > *From: *Yishay Weiss <yishayj...@hotmail.com> > *Reply-To: *"users@royale.apache.org" <users@royale.apache.org> > *Date: *Tuesday, February 20, 2018 at 11:00 PM > *To: *"users@royale.apache.org" <users@royale.apache.org> > *Subject: *RE: Substitutes in Apache Royale > > This is pretty cool. If we had the method signatures we could use this > report as a source for a utility that creates stub classes. That’s a step > we performed manually (with some help from FB) when porting our app. BTW, > what are the numbers at the end of the line? > > *From: *Alex Harui <aha...@adobe.com> > *Sent: *Wednesday, February 21, 2018 8:38 AM > *To: *users@royale.apache.org > *Subject: *Re: Substitutes in Apache Royale > > OK, I've implemented the first attempt at an API report. Get the latest > -bin–js-swf package from here: > http://apacheroyaleci.westus2.cloudapp.azure.com:8080/job/royale-asjs/ > lastSuccessfulBuild/artifact/out > <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fapacheroyaleci.westus2.cloudapp.azure.com%3A8080%2Fjob%2Froyale-asjs%2FlastSuccessfulBuild%2Fartifact%2Fout&data=02%7C01%7Caharui%40adobe.com%7C562b9205ba0d4d92125408d578f8ca02%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636547932324282121&sdata=7XcFkgrlhifiotmXdupLTMz0dOWmB2GmoKJT3Rc%2B2dI%3D&reserved=0> > / > > Follow the instructions in my prior post below. > > If you get a successful compile, then try it again and add an additional > compiler option: -api–report=<path to output file> > > The output file should look something like this: > > Flex46Project:foo,14 > mx.collections.ArrayCollection,13 > mx.collections.ArrayCollection:sort,4 > mx.collections.Sort,11 > mx.controls.Label:text,1 > spark.components.Application:minHeight,1 > spark.components.Application:minWidth,1 > spark.components.Application:mxmlContentFactory,2 > > That was for a hello world. I expect a much longer list for a real app. > Your code will be listed as well so you may wish to delete those lines > before posting the results for us to see. Attachments don't always work on > these mailing lists so post a link to the report stored on some service > like pastebin or paste.apache.org or dropbox or create a GitHub issue and > post it there. > > Again, this is a first attempt at an API report, so before we put any > faith in it, it would help if you think about your code a bit and whether > anything might be missing. > > Thanks, > -Alex > > *From: *Alex Harui <aha...@adobe.com> > *Reply-To: *"users@royale.apache.org" <users@royale.apache.org> > *Date: *Tuesday, February 20, 2018 at 10:30 AM > *To: *"users@royale.apache.org" <users@royale.apache.org> > *Subject: *Re: Substitutes in Apache Royale > > In fact, I went and tried it just now to build a Flex Hello World. > > I had Apache Flex 4.16.0 installed in /Users/aharui/ApacheFlex4.16.0. > Then I: > > - took the apache-royale-0.9.1-bin-js-swf package from [1] (you must use > the bin-js-swf and not just bin-js). > - unzipped the package > - ran in the package's royale-asjs folder: ant –f InstallAdobeSDKs.xml > > That results in a working Royale SDK with SWF Support. > > Then I ran from the royale-asjs folder: > > bin/mxmlc <path to app's .mxml file> -load-config=/Users/aharui/ > ApacheFlex4.16.0/frameworks/flex-config.xml > > The compile finished successfully. I think I'm going to work on the API > report now and deal with the * selector after. If you can get a SWF build > via this technique, this is the technique you will use to generate the API > report. > > Thanks, > -Alex > > [1] http://royale.apache.org/download/ > <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Froyale.apache.org%2Fdownload%2F&data=02%7C01%7Caharui%40adobe.com%7C562b9205ba0d4d92125408d578f8ca02%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636547932324282121&sdata=4xzeKQl6qCfAy90Bj7yQVfC%2BM5tzh1CiFT3fpIsob%2BA%3D&reserved=0> > > *From: *Alex Harui <aha...@adobe.com> > *Reply-To: *"users@royale.apache.org" <users@royale.apache.org> > *Date: *Monday, February 19, 2018 at 11:46 PM > *To: *"users@royale.apache.org" <users@royale.apache.org> > *Subject: *Re: Substitutes in Apache Royale > > Sorry, just realized I referenced the JS compiler. Please try using > bin/compc and bin/mxmlc. You won't need the –targets parameter, just the > load-config option. > > HTH, > -Alex > > *From: *Alex Harui <aha...@adobe.com> > *Reply-To: *"users@royale.apache.org" <users@royale.apache.org> > *Date: *Monday, February 19, 2018 at 11:14 PM > *To: *"users@royale.apache.org" <users@royale.apache.org> > *Subject: *Re: Substitutes in Apache Royale > > Hi Alina, > > Piotr might be better at helping you use Moonshine. The IDEs sort of > expect that the libraries/SWCs that your code needs is in the same folder > as the compiler. That's why it might be easier to work from the command > line. > > I remembered this morning that the Royale SWF Compiler doesn't have > embedded font support. However the goal isn't so much to make a runnable > SWF but to have the compilation and linking complete so we can determine > the full set of Flex APIs used in your app. > > If your code has two projects, then we will want you to compile both > projects with the Royale compiler and get two API reports. The Library > project would be compiled with js/bin/compc and the main app would be > compiled with js/bin/mxmlc. > > I think you will want to use the compiler option: > -load-config="path to a Flex SDK flex-config.xml" > and also use > –compiler.targets=SWF > > HTH, > -Alex > > > *From: *Alina Kazi <alina.k...@d-bz.com> > *Reply-To: *"users@royale.apache.org" <users@royale.apache.org> > *Date: *Monday, February 19, 2018 at 10:10 PM > *To: *"users@royale.apache.org" <users@royale.apache.org> > *Subject: *RE: Substitutes in Apache Royale > > Hi Alex, > Our Flex Application(Main Project) is dependent on Flex Library Project , > I tookoriginal code (Library Project) without porting it, Compiling it > using Royale Compiler's SWF compiler (apache-royale-0.9.1-bin-js-swf or > apache-royale-0.9.0-bin-js-swf) > > *Moonshine IDE (1.9.0) Console :* > Loading configuration: C:\Users\aleena\Documents\ > SHMALIB\obj\SHMALIBConfig.xml > : > : C:\Users\aleena\Documents\SHMALIB\defaults Error: unable to open > 'C:\Users\aleena\AppData\Roaming\npm\node_modules\apache-royale\royale-js\ > frameworks\royale-config.xml'. > : defaults (line: -1) > : > : > : C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(35): col: 0 > Error: unable to open 'D:\apache-royale-0.9.1-bin- > js-swf\royale-asjs\frameworks\mx-manifest.xml'. > : C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 35) > : > : </namespace> > : > : > : C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(61): col: 0 > Error: unable to open 'D:\apache-royale-0.9.1-bin- > js-swf\royale-asjs\frameworks\libs\player\11.0\playerglobal.swc'. > : C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 61) > : > : </external-library-path> > : > : > : C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(61): col: 0 > Error: unable to open 'D:\apache-royale-0.9.1-bin- > js-swf\royale-asjs\frameworks\libs\rpc.swc'. > : C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 61) > : > : </external-library-path> > : > : > : C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(61): col: 0 > Error: unable to open 'D:\apache-royale-0.9.1-bin- > js-swf\royale-asjs\frameworks\libs\osmf.swc'. > : C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 61) > : > : </external-library-path> > : > : > : C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(61): col: 0 > Error: unable to open 'D:\apache-royale-0.9.1-bin- > js-swf\royale-asjs\frameworks\libs\spark.swc'. > : C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 61) > : > : </external-library-path> > : > : > : C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(61): col: 0 > Error: unable to open 'D:\apache-royale-0.9.1-bin- > js-swf\royale-asjs\frameworks\libs\apache.swc'. > : C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 61) > : > : </external-library-path> > : > : > : C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(61): col: 0 > Error: unable to open 'D:\apache-royale-0.9.1-bin- > js-swf\royale-asjs\frameworks\libs\flatspark.swc'. > : C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 61) > : > : </external-library-path> > : > : > : C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(61): col: 0 > Error: unable to open 'D:\apache-royale-0.9.1-bin- > js-swf\royale-asjs\frameworks\libs\framework.swc'. > : C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 61) > : > : </external-library-path> > : > : > : C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(61): col: 0 > Error: unable to open 'D:\apache-royale-0.9.1-bin- > js-swf\royale-asjs\frameworks\libs\spark_dmv.swc'. > : C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 61) > : > : </external-library-path> > : > : > : C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(61): col: 0 > Error: unable to open 'D:\apache-royale-0.9.1-bin- > js-swf\royale-asjs\frameworks\libs\sparkskins.swc'. > : C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 61) > : > : </external-library-path> > : > : > : C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(61): col: 0 > Error: unable to open 'D:\apache-royale-0.9.1-bin- > js-swf\royale-asjs\frameworks\libs\textLayout.swc'. > : C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 61) > : > : </external-library-path> > : > : > : C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(61): col: 0 > Error: unable to open 'D:\apache-royale-0.9.1-bin- > js-swf\royale-asjs\frameworks\libs\experimental.swc'. > : C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 61) > : > : </external-library-path> > : > : > : C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(61): col: 0 > Error: unable to open 'D:\apache-royale-0.9.1-bin- > js-swf\royale-asjs\frameworks\libs\advancedgrids.swc'. > : C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 61) > : > : </external-library-path> > : > : > : C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(61): col: 0 > Error: unable to open 'D:\apache-royale-0.9.1-bin- > js-swf\royale-asjs\frameworks\libs\authoringsupport.swc'. > : C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 61) > : > : </external-library-path> > : > : > : C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(61): col: 0 > Error: unable to open 'D:\apache-royale-0.9.1-bin- > js-swf\royale-asjs\frameworks\libs\flash-integration.swc'. > : C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 61) > : > : </external-library-path> > : > : > : C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(61): col: 0 > Error: unable to open 'D:\apache-royale-0.9.1-bin- > js-swf\royale-asjs\frameworks\libs\mx\mx.swc'. > : C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 61) > : > : </external-library-path> > : > : > : C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(64): col: 0 > Error: unable to open 'D:\apache-royale-0.9.1-bin- > js-swf\royale-asjs\frameworks\locale\en_US'. > : C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 64) > : > : </library-path> > > Regards, > Alina > *From:* Alex Harui [mailto:aha...@adobe.com <aha...@adobe.com>] > *Sent:* Monday, February 19, 2018 12:35 PM > *To:* users@royale.apache.org > *Subject:* Re: Substitutes in Apache Royale > > Hi Alina, > > What I'm asking is that you take your original code without porting it at > all and run the Royale Compiler's SWF compiler. It should be able to > produce the same SWF you are deploying now. It might catch errors that the > Flex MXMLC compiler does not catch. We need a successful SWF output so we > know the compiler visited all APIs. Once you can get a SWF out, then later > I will provide you with an updated Royale SWF compiler that will also > output an API usage report. > > Thanks, > -Alex > > *From: *Alina Kazi <alina.k...@d-bz.com> > *Reply-To: *"users@royale.apache.org" <users@royale.apache.org> > *Date: *Sunday, February 18, 2018 at 10:37 PM > *To: *"users@royale.apache.org" <users@royale.apache.org> > *Subject: *RE: Substitutes in Apache Royale > > Hi Alex, > > Sure, > I’m compiling the code with the royale compiler. Porting basic components > that are available in Royale. > > Thanks > Alina > > *From:* Alex Harui [mailto:aha...@adobe.com <aha...@adobe.com>] > *Sent:* Monday, February 19, 2018 11:16 AM > *To:* users@royale.apache.org > *Subject:* Re: Substitutes in Apache Royale > > Hi Alina, > > While I work on the compiler API report feature, you could start now > trying to get your code to compile with the royale compiler from the > command line. I think you can run the bin/mxmlc from the Royale releases > with the same options you use with Flex MXMLC. > > Give it a try and let us know. > -Alex > > *From: *Alina Kazi <alina.k...@d-bz.com> > *Reply-To: *"users@royale.apache.org" <users@royale.apache.org> > *Date: *Sunday, February 18, 2018 at 8:29 PM > *To: *"users@royale.apache.org" <users@royale.apache.org> > *Subject: *RE: Substitutes in Apache Royale > > Hi Alex, > > I’ll be waiting for your response. > > Thanks, > Alina > > > *From:* Alex Harui [mailto:aha...@adobe.com <aha...@adobe.com>] > *Sent:* Friday, February 16, 2018 2:02 AM > *To:* users@royale.apache.org > *Subject:* Re: Substitutes in Apache Royale > > Hi Alina, > > I can't guarantee that you will be in production in six months, but I > believe we can help you get to the point where every screen shows up and > fills with data and we are fixing bugs in corner cases. We might also be > chasing down memory leaks and things like that. My strategy for lots of > things is to do the big things first and polish it later. For example, I > recently pushed some basic Virtual Item Renderer support for Royale, but > I'm pretty sure it will have bugs in corner cases, like deleting things > when scrolled to the bottom. But most apps start at the top and it will > get you going and we'll fix those corner cases later. > > I want to finish up some infrastructural things in Royale over the next > couple of weeks, then I will adjust the compiler to generate an API > report. Once we see what that looks like, I should be able to help take > the sample code you provided and make it work in Royale. So maybe in a > month or so, you'll see more activity around your code. Right now I need > to clean up a few things so we can be more efficient working with you. > > You won't need an IDE to generate the API report. If you know what > compiler settings you are using for your Flex app, you can just run a > Royale compiler from the command-line with the same arguments. I believe > that we are likely to make compiling your Flex app with the Royale compiler > one of the steps in migrating. The Royale compiler will catch some syntax > issues that the Flex compiler does not. > > More later, > -Alex > > *From: *Alina Kazi <alina.k...@d-bz.com> > *Reply-To: *"users@royale.apache.org" <users@royale.apache.org> > *Date: *Thursday, February 15, 2018 at 2:13 AM > *To: *"users@royale.apache.org" <users@royale.apache.org> > *Subject: *RE: Substitutes in Apache Royale > > Hi Alex, > Thank you so much. You gave me hope that I can achieve my target on time > and at least I am working in right direction. > At most places I'm using getItemAt(0) to access the element in > ArrayCollection. > At some places myArrayCollection[0].propertyname to access it > > If you will modify the Royale compiler, I will definitely try compiling my > Flex app with the Royale compiler and generate a report of APIs used. > Currently I am using Visual Studio Code and apache royale 0.9.0 release is > installed.I will need your guidance which IDE and apache royale release > should I use to generate that report. > > Thanks, > Alina Kazi > *From:* Alex Harui [mailto:aha...@adobe.com <aha...@adobe.com>] > *Sent:* Thursday, February 15, 2018 1:40 PM > *To:* users@royale.apache.org > *Subject:* Re: Substitutes in Apache Royale > > Hi Alina, > > Other than ArrayCollection, that looks right. There will be sorting > classes eventually. > > I think there are two buckets of things that you are going to need: > > Things we haven't written yet: > - DividedBox/Container (mostly done) > - Menu/MenuBar > - VariableRowHeight > - Editable DataGrids > - Sorting? > > Things we have written, but aren't packaged in a way that makes migration > easy: > - TitleWindow > - Canvas > - ArrayCollection > > For ArrayCollection, do you use array indexing (myArrayCollection[0]) or > do you access it as getItemAt(0)? > > You have so many files to port, it is tempting to create a Spark-ish and > MX-ish component set. They wouldn't be fully backward compatible but would > try to implement the most commonly used APIs. I'm wondering what > percentage of Flex APIs you actually used in your app. If I modify the > Royale compiler, could you try compiling your Flex app with the Royale > compiler and generate a report of APIs used? > > Thanks, > -Alex > > *From: *Alina Kazi <alina.k...@d-bz.com> > *Reply-To: *"users@royale.apache.org" <users@royale.apache.org> > *Date: *Wednesday, February 14, 2018 at 11:06 PM > *To: *"users@royale.apache.org" <users@royale.apache.org> > *Subject: *Substitutes in Apache Royale > > Hi, > > I have replaced few imports in Apache Royale Project after comparison in > terms of functionality. > As you all are more familiar to Flex and Apache Royale. > Are these correct substitutes? > import org.apache.royale.html.Alert; //instead of import mx.controls.Alert; > import org.apache.royale.events.CloseEvent; // instead of import > mx.events.CloseEvent; > import org.apache.royale.net.events.FaultEvent; // instead of import > mx.rpc.events.FaultEvent; > import org.apache.royale.net.events.ResultEvent; //instead of import > mx.rpc.events.ResultEvent; > import mx.collections.ArrayCollection; //very similar to > org.apache.royale.collections.TreeData > import mx.collections.Sort; // No Alternate found > import mx.collections.SortField;// No Alternate found > import mx.managers.PopUpManager; //org.apache.royale.core.IPopUp or > .IPopUpHost > import org.apache.royale.utils.StringUtil;// instead of import > mx.utils.StringUtil; > > Reference: http://apacheflexbuild.cloudapp.net: > 8080/job/Royale_ASDoc_Example/lastSuccessfulBuild/artifact/ > examples/royale/ASDoc/bin/js-debug/index.html > <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fapacheflexbuild.cloudapp.net%3A8080%2Fjob%2FRoyale_ASDoc_Example%2FlastSuccessfulBuild%2Fartifact%2Fexamples%2Froyale%2FASDoc%2Fbin%2Fjs-debug%2Findex.html&data=02%7C01%7Caharui%40adobe.com%7C2a0f4a052bf44496feaf08d574445542%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636542759199500428&sdata=A9xjrAppjUqWDkvAJTgSHhOOW3ZlkZPPZTD5%2BG4eexw%3D&reserved=0> > > Thanks, > Alina Kazi > > > -- Piotr Zarzycki Patreon: *https://www.patreon.com/piotrzarzycki <https://www.patreon.com/piotrzarzycki>*