Substitutes in Apache Royale

classic Classic list List threaded Threaded
57 messages Options
123
Reply | Threaded
Open this post in threaded view
|

Re: Substitutes in Apache Royale

Harbs
Yup. I’d be happy to work on a tool which creates stubs, but we’re going to need the type info on properties and methods in order to do that properly.

I don’t know how to add that to the report you created. I’m not sure where to get the type data of packages outside Royale other than the declared types in the source code.

Harbs

On Feb 21, 2018, at 10:36 AM, Alex Harui <[hidden email]> wrote:

Feel free to enhance the changes I made.

-Alex

From: Yishay Weiss <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Wednesday, February 21, 2018 at 12:25 AM
To: "[hidden email]" <[hidden email]>
Subject: RE: Substitutes in Apache Royale

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: [hidden email]
Sent: Wednesday, February 21, 2018 9:26 AM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Tuesday, February 20, 2018 at 11:00 PM
To: "[hidden email]" <[hidden email]>
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: [hidden email]
Sent: Wednesday, February 21, 2018 8:38 AM
To: [hidden email]
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:
 
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Tuesday, February 20, 2018 at 10:30 AM
To: "[hidden email]" <[hidden email]>
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
 
 
From: Alex Harui <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Monday, February 19, 2018 at 11:46 PM
To: "[hidden email]" <[hidden email]>
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Monday, February 19, 2018 at 11:14 PM
To: "[hidden email]" <[hidden email]>
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Monday, February 19, 2018 at 10:10 PM
To: "[hidden email]" <[hidden email]>
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 [[hidden email]] 
Sent: Monday, February 19, 2018 12:35 PM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Sunday, February 18, 2018 at 10:37 PM
To: "[hidden email]" <[hidden email]>
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 [[hidden email]] 
Sent: Monday, February 19, 2018 11:16 AM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Sunday, February 18, 2018 at 8:29 PM
To: "[hidden email]" <[hidden email]>
Subject: RE: Substitutes in Apache Royale
 
Hi Alex,
 
I’ll be waiting for your response.
 
Thanks,
Alina
 
 
From: Alex Harui [[hidden email]] 
Sent: Friday, February 16, 2018 2:02 AM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Thursday, February 15, 2018 at 2:13 AM
To: "[hidden email]" <[hidden email]>
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 [[hidden email]] 
Sent: Thursday, February 15, 2018 1:40 PM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Wednesday, February 14, 2018 at 11:06 PM
To: "[hidden email]" <[hidden email]>
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;
 
 
Thanks,
Alina Kazi

Reply | Threaded
Open this post in threaded view
|

Re: Substitutes in Apache Royale

Alex Harui-2
In reply to this post by Harbs
I guess I don't understand the value of stubbing UI Widgets.  In your case, you were also depending on TLF and E4x.  So I suppose if there was another non-UI Flex library that folks needed that we didn't have, stubs might be useful there.

-Alex

From: Gabe Harbs <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Wednesday, February 21, 2018 at 12:36 AM
To: "[hidden email]" <[hidden email]>
Subject: Re: Substitutes in Apache Royale

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 <[hidden email]> 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: [hidden email]
Sent: Wednesday, February 21, 2018 9:26 AM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Tuesday, February 20, 2018 at 11:00 PM
To: "[hidden email]" <[hidden email]>
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: [hidden email]
Sent: Wednesday, February 21, 2018 8:38 AM
To: [hidden email]
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:
 
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Tuesday, February 20, 2018 at 10:30 AM
To: "[hidden email]" <[hidden email]>
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
 
 
From: Alex Harui <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Monday, February 19, 2018 at 11:46 PM
To: "[hidden email]" <[hidden email]>
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Monday, February 19, 2018 at 11:14 PM
To: "[hidden email]" <[hidden email]>
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Monday, February 19, 2018 at 10:10 PM
To: "[hidden email]" <[hidden email]>
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 [[hidden email]] 
Sent: Monday, February 19, 2018 12:35 PM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Sunday, February 18, 2018 at 10:37 PM
To: "[hidden email]" <[hidden email]>
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 [[hidden email]] 
Sent: Monday, February 19, 2018 11:16 AM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Sunday, February 18, 2018 at 8:29 PM
To: "[hidden email]" <[hidden email]>
Subject: RE: Substitutes in Apache Royale
 
Hi Alex,
 
I’ll be waiting for your response.
 
Thanks,
Alina
 
 
From: Alex Harui [[hidden email]] 
Sent: Friday, February 16, 2018 2:02 AM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Thursday, February 15, 2018 at 2:13 AM
To: "[hidden email]" <[hidden email]>
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 [[hidden email]] 
Sent: Thursday, February 15, 2018 1:40 PM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Wednesday, February 14, 2018 at 11:06 PM
To: "[hidden email]" <[hidden email]>
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;
 
 
Thanks,
Alina Kazi

Reply | Threaded
Open this post in threaded view
|

Re: Substitutes in Apache Royale

Piotr Zarzycki
In reply to this post by Harbs
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 <[hidden email]>:
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 <[hidden email]> 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: [hidden email]
Sent: Wednesday, February 21, 2018 9:26 AM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Tuesday, February 20, 2018 at 11:00 PM
To: "[hidden email]" <[hidden email]>
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: [hidden email]
Sent: Wednesday, February 21, 2018 8:38 AM
To: [hidden email]
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:
 
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Tuesday, February 20, 2018 at 10:30 AM
To: "[hidden email]" <[hidden email]>
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
 
 
From: Alex Harui <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Monday, February 19, 2018 at 11:46 PM
To: "[hidden email]" <[hidden email]>
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Monday, February 19, 2018 at 11:14 PM
To: "[hidden email]" <[hidden email]>
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Monday, February 19, 2018 at 10:10 PM
To: "[hidden email]" <[hidden email]>
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 [[hidden email]] 
Sent: Monday, February 19, 2018 12:35 PM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Sunday, February 18, 2018 at 10:37 PM
To: "[hidden email]" <[hidden email]>
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 [[hidden email]] 
Sent: Monday, February 19, 2018 11:16 AM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Sunday, February 18, 2018 at 8:29 PM
To: "[hidden email]" <[hidden email]>
Subject: RE: Substitutes in Apache Royale
 
Hi Alex,
 
I’ll be waiting for your response.
 
Thanks,
Alina
 
 
From: Alex Harui [[hidden email]] 
Sent: Friday, February 16, 2018 2:02 AM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Thursday, February 15, 2018 at 2:13 AM
To: "[hidden email]" <[hidden email]>
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 [[hidden email]] 
Sent: Thursday, February 15, 2018 1:40 PM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Wednesday, February 14, 2018 at 11:06 PM
To: "[hidden email]" <[hidden email]>
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;
 
 
Thanks,
Alina Kazi




--

Piotr Zarzycki 

Patreon: https://www.patreon.com/piotrzarzycki

Reply | Threaded
Open this post in threaded view
|

Re: Substitutes in Apache Royale

Alex Harui-2
In reply to this post by Harbs
Learn the compiler.  It does not make any sense for everyone to rely on me for changes.  It is not good for me or the project.

Also, read the entire thread.  I suggested getting the type information from the ASDoc JSON files.  Then you can avoid learning the compiler.

-Alex

From: Gabe Harbs <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Wednesday, February 21, 2018 at 12:41 AM
To: "[hidden email]" <[hidden email]>
Subject: Re: Substitutes in Apache Royale

Yup. I’d be happy to work on a tool which creates stubs, but we’re going to need the type info on properties and methods in order to do that properly.

I don’t know how to add that to the report you created. I’m not sure where to get the type data of packages outside Royale other than the declared types in the source code.

Harbs

On Feb 21, 2018, at 10:36 AM, Alex Harui <[hidden email]> wrote:

Feel free to enhance the changes I made.

-Alex

From: Yishay Weiss <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Wednesday, February 21, 2018 at 12:25 AM
To: "[hidden email]" <[hidden email]>
Subject: RE: Substitutes in Apache Royale

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: [hidden email]
Sent: Wednesday, February 21, 2018 9:26 AM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Tuesday, February 20, 2018 at 11:00 PM
To: "[hidden email]" <[hidden email]>
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: [hidden email]
Sent: Wednesday, February 21, 2018 8:38 AM
To: [hidden email]
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:
 
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Tuesday, February 20, 2018 at 10:30 AM
To: "[hidden email]" <[hidden email]>
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
 
 
From: Alex Harui <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Monday, February 19, 2018 at 11:46 PM
To: "[hidden email]" <[hidden email]>
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Monday, February 19, 2018 at 11:14 PM
To: "[hidden email]" <[hidden email]>
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Monday, February 19, 2018 at 10:10 PM
To: "[hidden email]" <[hidden email]>
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 [[hidden email]] 
Sent: Monday, February 19, 2018 12:35 PM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Sunday, February 18, 2018 at 10:37 PM
To: "[hidden email]" <[hidden email]>
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 [[hidden email]] 
Sent: Monday, February 19, 2018 11:16 AM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Sunday, February 18, 2018 at 8:29 PM
To: "[hidden email]" <[hidden email]>
Subject: RE: Substitutes in Apache Royale
 
Hi Alex,
 
I’ll be waiting for your response.
 
Thanks,
Alina
 
 
From: Alex Harui [[hidden email]] 
Sent: Friday, February 16, 2018 2:02 AM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Thursday, February 15, 2018 at 2:13 AM
To: "[hidden email]" <[hidden email]>
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 [[hidden email]] 
Sent: Thursday, February 15, 2018 1:40 PM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Wednesday, February 14, 2018 at 11:06 PM
To: "[hidden email]" <[hidden email]>
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;
 
 
Thanks,
Alina Kazi

Reply | Threaded
Open this post in threaded view
|

Re: Substitutes in Apache Royale

Harbs
You’re right. I should learn the compiler. Part of what I had wanted to do had we gotten together while I was in the States was exactly that… I need to find the time necessary to invest in that.

Flex and Flash APIs are not in ASDoc JSON files unless I’m missing something.

As far as the value of the dummy classes: Yes. There were a lot of elf classes, but there were lots of other classes used in both view and model.

Here’s the list of classes I was left with when the app compiled with both view and model for the first time. This was *AFTER* we spent a lot of work getting rid of most dependencies on Flash classes. The list does not include the tlf classes.


Harbs

On Feb 21, 2018, at 10:46 AM, Alex Harui <[hidden email]> wrote:

Learn the compiler.  It does not make any sense for everyone to rely on me for changes.  It is not good for me or the project.

Also, read the entire thread.  I suggested getting the type information from the ASDoc JSON files.  Then you can avoid learning the compiler.

-Alex

From: Gabe Harbs <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Wednesday, February 21, 2018 at 12:41 AM
To: "[hidden email]" <[hidden email]>
Subject: Re: Substitutes in Apache Royale

Yup. I’d be happy to work on a tool which creates stubs, but we’re going to need the type info on properties and methods in order to do that properly.

I don’t know how to add that to the report you created. I’m not sure where to get the type data of packages outside Royale other than the declared types in the source code.

Harbs

On Feb 21, 2018, at 10:36 AM, Alex Harui <[hidden email]> wrote:

Feel free to enhance the changes I made.

-Alex

From: Yishay Weiss <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Wednesday, February 21, 2018 at 12:25 AM
To: "[hidden email]" <[hidden email]>
Subject: RE: Substitutes in Apache Royale

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: [hidden email]
Sent: Wednesday, February 21, 2018 9:26 AM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Tuesday, February 20, 2018 at 11:00 PM
To: "[hidden email]" <[hidden email]>
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: [hidden email]
Sent: Wednesday, February 21, 2018 8:38 AM
To: [hidden email]
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:
 
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Tuesday, February 20, 2018 at 10:30 AM
To: "[hidden email]" <[hidden email]>
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
 
 
From: Alex Harui <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Monday, February 19, 2018 at 11:46 PM
To: "[hidden email]" <[hidden email]>
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Monday, February 19, 2018 at 11:14 PM
To: "[hidden email]" <[hidden email]>
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Monday, February 19, 2018 at 10:10 PM
To: "[hidden email]" <[hidden email]>
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 [[hidden email]] 
Sent: Monday, February 19, 2018 12:35 PM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Sunday, February 18, 2018 at 10:37 PM
To: "[hidden email]" <[hidden email]>
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 [[hidden email]] 
Sent: Monday, February 19, 2018 11:16 AM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Sunday, February 18, 2018 at 8:29 PM
To: "[hidden email]" <[hidden email]>
Subject: RE: Substitutes in Apache Royale
 
Hi Alex,
 
I’ll be waiting for your response.
 
Thanks,
Alina
 
 
From: Alex Harui [[hidden email]] 
Sent: Friday, February 16, 2018 2:02 AM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Thursday, February 15, 2018 at 2:13 AM
To: "[hidden email]" <[hidden email]>
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 [[hidden email]] 
Sent: Thursday, February 15, 2018 1:40 PM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Wednesday, February 14, 2018 at 11:06 PM
To: "[hidden email]" <[hidden email]>
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;
 
 
Thanks,
Alina Kazi


Reply | Threaded
Open this post in threaded view
|

Re: Substitutes in Apache Royale

Alex Harui-2
Flex and Flash classes are not in the Royale ASDoc JSON files, but I don't see any reason you couldn't run the Royale ASDoc tools on the Flex SDK and get JSON files.  Also, there are DITA XML files for Flex SDK you could use instead, and DITA XML files for Flash.

The compiler is just another application.    Designing a compiler might take special knowledge, but it has already been designed.   The changes you want to make are just like lots of other changes made to the framework.  Look at past commits, find the relevant file.  Make some changes, see what happens.

My 2 cents,
-Alex

From: Gabe Harbs <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Wednesday, February 21, 2018 at 1:08 AM
To: "[hidden email]" <[hidden email]>
Subject: Re: Substitutes in Apache Royale

You’re right. I should learn the compiler. Part of what I had wanted to do had we gotten together while I was in the States was exactly that… I need to find the time necessary to invest in that.

Flex and Flash APIs are not in ASDoc JSON files unless I’m missing something.

As far as the value of the dummy classes: Yes. There were a lot of elf classes, but there were lots of other classes used in both view and model.

Here’s the list of classes I was left with when the app compiled with both view and model for the first time. This was *AFTER* we spent a lot of work getting rid of most dependencies on Flash classes. The list does not include the tlf classes.


Harbs

On Feb 21, 2018, at 10:46 AM, Alex Harui <[hidden email]> wrote:

Learn the compiler.  It does not make any sense for everyone to rely on me for changes.  It is not good for me or the project.

Also, read the entire thread.  I suggested getting the type information from the ASDoc JSON files.  Then you can avoid learning the compiler.

-Alex

From: Gabe Harbs <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Wednesday, February 21, 2018 at 12:41 AM
To: "[hidden email]" <[hidden email]>
Subject: Re: Substitutes in Apache Royale

Yup. I’d be happy to work on a tool which creates stubs, but we’re going to need the type info on properties and methods in order to do that properly.

I don’t know how to add that to the report you created. I’m not sure where to get the type data of packages outside Royale other than the declared types in the source code.

Harbs

On Feb 21, 2018, at 10:36 AM, Alex Harui <[hidden email]> wrote:

Feel free to enhance the changes I made.

-Alex

From: Yishay Weiss <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Wednesday, February 21, 2018 at 12:25 AM
To: "[hidden email]" <[hidden email]>
Subject: RE: Substitutes in Apache Royale

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: [hidden email]
Sent: Wednesday, February 21, 2018 9:26 AM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Tuesday, February 20, 2018 at 11:00 PM
To: "[hidden email]" <[hidden email]>
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: [hidden email]
Sent: Wednesday, February 21, 2018 8:38 AM
To: [hidden email]
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:
 
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Tuesday, February 20, 2018 at 10:30 AM
To: "[hidden email]" <[hidden email]>
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
 
 
From: Alex Harui <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Monday, February 19, 2018 at 11:46 PM
To: "[hidden email]" <[hidden email]>
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Monday, February 19, 2018 at 11:14 PM
To: "[hidden email]" <[hidden email]>
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Monday, February 19, 2018 at 10:10 PM
To: "[hidden email]" <[hidden email]>
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 [[hidden email]] 
Sent: Monday, February 19, 2018 12:35 PM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Sunday, February 18, 2018 at 10:37 PM
To: "[hidden email]" <[hidden email]>
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 [[hidden email]] 
Sent: Monday, February 19, 2018 11:16 AM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Sunday, February 18, 2018 at 8:29 PM
To: "[hidden email]" <[hidden email]>
Subject: RE: Substitutes in Apache Royale
 
Hi Alex,
 
I’ll be waiting for your response.
 
Thanks,
Alina
 
 
From: Alex Harui [[hidden email]] 
Sent: Friday, February 16, 2018 2:02 AM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Thursday, February 15, 2018 at 2:13 AM
To: "[hidden email]" <[hidden email]>
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 [[hidden email]] 
Sent: Thursday, February 15, 2018 1:40 PM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Wednesday, February 14, 2018 at 11:06 PM
To: "[hidden email]" <[hidden email]>
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;
 
 
Thanks,
Alina Kazi


Reply | Threaded
Open this post in threaded view
|

RE: Substitutes in Apache Royale

alina kazi-2
In reply to this post by Alex Harui-2

Issue - ran in the package's royale-asjs folder: ant –f InstallAdobeSDKs.xml

 

https://paper.dropbox.com/doc/Error-ant-f-InstallAdobeSDKs.xml-mIQ4MigH799EdiZ341l7k?_tk=share_copylink

 

Thanks,

Alina

From: Alex Harui [mailto:[hidden email]]
Sent: Tuesday, February 20, 2018 11:30 PM
To: [hidden email]
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/

 

From: Alex Harui <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Monday, February 19, 2018 at 11:46 PM
To: "[hidden email]" <[hidden email]>
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Monday, February 19, 2018 at 11:14 PM
To: "[hidden email]" <[hidden email]>
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Monday, February 19, 2018 at 10:10 PM
To: "[hidden email]" <[hidden email]>
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 [[hidden email]]
Sent: Monday, February 19, 2018 12:35 PM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Sunday, February 18, 2018 at 10:37 PM
To: "[hidden email]" <[hidden email]>
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 [[hidden email]]
Sent: Monday, February 19, 2018 11:16 AM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Sunday, February 18, 2018 at 8:29 PM
To: "[hidden email]" <[hidden email]>
Subject: RE: Substitutes in Apache Royale

 

Hi Alex,

 

I’ll be waiting for your response.

 

Thanks,

Alina

 

 

From: Alex Harui [[hidden email]]
Sent: Friday, February 16, 2018 2:02 AM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Thursday, February 15, 2018 at 2:13 AM
To: "[hidden email]" <[hidden email]>
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 [[hidden email]]
Sent: Thursday, February 15, 2018 1:40 PM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Wednesday, February 14, 2018 at 11:06 PM
To: "[hidden email]" <[hidden email]>
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

 

Thanks,

Alina Kazi

 

Reply | Threaded
Open this post in threaded view
|

Re: Substitutes in Apache Royale

Piotr Zarzycki
In reply to this post by Alex Harui-2
Alina,

InstallAdobeSDK is only a helper, if you want to you can download Apache Flex with Adobe Air through the installer [1].


Thanks, Piotr

2018-02-23 6:21 GMT+01:00 Alina Kazi <[hidden email]>:

Issue - ran in the package's royale-asjs folder: ant –f InstallAdobeSDKs.xml

 

https://paper.dropbox.com/doc/Error-ant-f-InstallAdobeSDKs.xml-mIQ4MigH799EdiZ341l7k?_tk=share_copylink

 

Thanks,

Alina

From: Alex Harui [mailto:[hidden email]]
Sent: Tuesday, February 20, 2018 11:30 PM


To: [hidden email]
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

 

 

From: Alex Harui <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Monday, February 19, 2018 at 11:46 PM
To: "[hidden email]" <[hidden email]>
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Monday, February 19, 2018 at 11:14 PM
To: "[hidden email]" <[hidden email]>
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Monday, February 19, 2018 at 10:10 PM
To: "[hidden email]" <[hidden email]>
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 [[hidden email]]
Sent: Monday, February 19, 2018 12:35 PM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Sunday, February 18, 2018 at 10:37 PM
To: "[hidden email]" <[hidden email]>
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 [[hidden email]]
Sent: Monday, February 19, 2018 11:16 AM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Sunday, February 18, 2018 at 8:29 PM
To: "[hidden email]" <[hidden email]>
Subject: RE: Substitutes in Apache Royale

 

Hi Alex,

 

I’ll be waiting for your response.

 

Thanks,

Alina

 

 

From: Alex Harui [[hidden email]]
Sent: Friday, February 16, 2018 2:02 AM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Thursday, February 15, 2018 at 2:13 AM
To: "[hidden email]" <[hidden email]>
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 [[hidden email]]
Sent: Thursday, February 15, 2018 1:40 PM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Wednesday, February 14, 2018 at 11:06 PM
To: "[hidden email]" <[hidden email]>
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

 

Thanks,

Alina Kazi

 




--

Piotr Zarzycki 

Patreon: https://www.patreon.com/piotrzarzycki

Reply | Threaded
Open this post in threaded view
|

Re: Substitutes in Apache Royale

Alex Harui-2
In reply to this post by alina kazi-2
Hi Alina,

That's a pretty strange result.  I just tried it on my Windows machine without any problem.  I'm wondering if something got corrupted or there is a code-page issue.

Try setting the environment variable
JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8

If that doesn't help, try comparing the files in the royale-asjs folder with the ones on our repo or build machine.

HTH,
-Alex

From: Alina Kazi <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Thursday, February 22, 2018 at 9:21 PM
To: "[hidden email]" <[hidden email]>
Subject: RE: Substitutes in Apache Royale

Issue - ran in the package's royale-asjs folder: ant –f InstallAdobeSDKs.xml

 

https://paper.dropbox.com/doc/Error-ant-f-InstallAdobeSDKs.xml-mIQ4MigH799EdiZ341l7k?_tk=share_copylink

 

Thanks,

Alina

From: Alex Harui [[hidden email]]
Sent: Tuesday, February 20, 2018 11:30 PM
To: [hidden email]
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

 

 

From: Alex Harui <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Monday, February 19, 2018 at 11:46 PM
To: "[hidden email]" <[hidden email]>
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Monday, February 19, 2018 at 11:14 PM
To: "[hidden email]" <[hidden email]>
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Monday, February 19, 2018 at 10:10 PM
To: "[hidden email]" <[hidden email]>
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 [[hidden email]]
Sent: Monday, February 19, 2018 12:35 PM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Sunday, February 18, 2018 at 10:37 PM
To: "[hidden email]" <[hidden email]>
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 [[hidden email]]
Sent: Monday, February 19, 2018 11:16 AM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Sunday, February 18, 2018 at 8:29 PM
To: "[hidden email]" <[hidden email]>
Subject: RE: Substitutes in Apache Royale

 

Hi Alex,

 

I’ll be waiting for your response.

 

Thanks,

Alina

 

 

From: Alex Harui [[hidden email]]
Sent: Friday, February 16, 2018 2:02 AM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Thursday, February 15, 2018 at 2:13 AM
To: "[hidden email]" <[hidden email]>
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 [[hidden email]]
Sent: Thursday, February 15, 2018 1:40 PM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Wednesday, February 14, 2018 at 11:06 PM
To: "[hidden email]" <[hidden email]>
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

 

Thanks,

Alina Kazi

 

Reply | Threaded
Open this post in threaded view
|

RE: Substitutes in Apache Royale

alina kazi-2

Hi Alex,

 

Still facing similar issue.

Can you please share link for repo or build machine royale-asjs folder.

 

Thanks,

Alina

From: Alex Harui [mailto:[hidden email]]
Sent: Friday, February 23, 2018 12:47 PM
To: [hidden email]
Subject: Re: Substitutes in Apache Royale

 

Hi Alina,

 

That's a pretty strange result.  I just tried it on my Windows machine without any problem.  I'm wondering if something got corrupted or there is a code-page issue.

 

Try setting the environment variable

JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8

 

If that doesn't help, try comparing the files in the royale-asjs folder with the ones on our repo or build machine.

 

HTH,

-Alex

 

From: Alina Kazi <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Thursday, February 22, 2018 at 9:21 PM
To: "[hidden email]" <[hidden email]>
Subject: RE: Substitutes in Apache Royale

 

Issue - ran in the package's royale-asjs folder: ant –f InstallAdobeSDKs.xml

 

https://paper.dropbox.com/doc/Error-ant-f-InstallAdobeSDKs.xml-mIQ4MigH799EdiZ341l7k?_tk=share_copylink

 

Thanks,

Alina

From: Alex Harui [[hidden email]]
Sent: Tuesday, February 20, 2018 11:30 PM
To: [hidden email]
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

 

 

From: Alex Harui <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Monday, February 19, 2018 at 11:46 PM
To: "[hidden email]" <[hidden email]>
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Monday, February 19, 2018 at 11:14 PM
To: "[hidden email]" <[hidden email]>
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Monday, February 19, 2018 at 10:10 PM
To: "[hidden email]" <[hidden email]>
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 [[hidden email]]
Sent: Monday, February 19, 2018 12:35 PM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Sunday, February 18, 2018 at 10:37 PM
To: "[hidden email]" <[hidden email]>
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 [[hidden email]]
Sent: Monday, February 19, 2018 11:16 AM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Sunday, February 18, 2018 at 8:29 PM
To: "[hidden email]" <[hidden email]>
Subject: RE: Substitutes in Apache Royale

 

Hi Alex,

 

I’ll be waiting for your response.

 

Thanks,

Alina

 

 

From: Alex Harui [[hidden email]]
Sent: Friday, February 16, 2018 2:02 AM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Thursday, February 15, 2018 at 2:13 AM
To: "[hidden email]" <[hidden email]>
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 [[hidden email]]
Sent: Thursday, February 15, 2018 1:40 PM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Wednesday, February 14, 2018 at 11:06 PM
To: "[hidden email]" <[hidden email]>
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

 

Thanks,

Alina Kazi

 

Reply | Threaded
Open this post in threaded view
|

Re: Substitutes in Apache Royale

Piotr Zarzycki
In reply to this post by Alex Harui-2
Alina,

Link to the nightly build machine where you can download royale [1]. Lin to the InstallAdobeSDKs.xml and repository [2]


Thanks, Piotr

2018-02-23 10:28 GMT+01:00 Alina Kazi <[hidden email]>:

Hi Alex,

 

Still facing similar issue.

Can you please share link for repo or build machine royale-asjs folder.

 

Thanks,

Alina

From: Alex Harui [mailto:[hidden email]]
Sent: Friday, February 23, 2018 12:47 PM


To: [hidden email]
Subject: Re: Substitutes in Apache Royale

 

Hi Alina,

 

That's a pretty strange result.  I just tried it on my Windows machine without any problem.  I'm wondering if something got corrupted or there is a code-page issue.

 

Try setting the environment variable

JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8

 

If that doesn't help, try comparing the files in the royale-asjs folder with the ones on our repo or build machine.

 

HTH,

-Alex

 

From: Alina Kazi <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Thursday, February 22, 2018 at 9:21 PM
To: "[hidden email]" <[hidden email]>
Subject: RE: Substitutes in Apache Royale

 

Issue - ran in the package's royale-asjs folder: ant –f InstallAdobeSDKs.xml

 

https://paper.dropbox.com/doc/Error-ant-f-InstallAdobeSDKs.xml-mIQ4MigH799EdiZ341l7k?_tk=share_copylink

 

Thanks,

Alina

From: Alex Harui [[hidden email]]
Sent: Tuesday, February 20, 2018 11:30 PM
To: [hidden email]
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

 

 

From: Alex Harui <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Monday, February 19, 2018 at 11:46 PM
To: "[hidden email]" <[hidden email]>
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Monday, February 19, 2018 at 11:14 PM
To: "[hidden email]" <[hidden email]>
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Monday, February 19, 2018 at 10:10 PM
To: "[hidden email]" <[hidden email]>
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 [[hidden email]]
Sent: Monday, February 19, 2018 12:35 PM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Sunday, February 18, 2018 at 10:37 PM
To: "[hidden email]" <[hidden email]>
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 [[hidden email]]
Sent: Monday, February 19, 2018 11:16 AM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Sunday, February 18, 2018 at 8:29 PM
To: "[hidden email]" <[hidden email]>
Subject: RE: Substitutes in Apache Royale

 

Hi Alex,

 

I’ll be waiting for your response.

 

Thanks,

Alina

 

 

From: Alex Harui [[hidden email]]
Sent: Friday, February 16, 2018 2:02 AM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Thursday, February 15, 2018 at 2:13 AM
To: "[hidden email]" <[hidden email]>
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 [[hidden email]]
Sent: Thursday, February 15, 2018 1:40 PM
To: [hidden email]
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 <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Wednesday, February 14, 2018 at 11:06 PM
To: "[hidden email]" <[hidden email]>
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

 

Thanks,

Alina Kazi

 




--

Piotr Zarzycki 

Patreon: https://www.patreon.com/piotrzarzycki

Reply | Threaded
Open this post in threaded view
|

RE: Substitutes in Apache Royale

alina kazi-2

Thank you Piotr and Alex.

Is that results in a working Royale SDK with SWF Support?

For Reference:

https://www.dropbox.com/s/cj1bfaqgjpyd3bs/installAdobeSDKsxml.png?dl=0

 

Regards,

Alina Kazi

From: Piotr Zarzycki [mailto:[hidden email]]
Sent: Friday, February 23, 2018 3:00 PM
To: [hidden email]
Subject: Re: Substitutes in Apache Royale

 

Alina,

 

Link to the nightly build machine where you can download royale [1]. Lin to the InstallAdobeSDKs.xml and repository [2]

 

 

Thanks, Piotr

 

2018-02-23 10:28 GMT+01:00 Alina Kazi <[hidden email]>:

Hi Alex,

 

Still facing similar issue.

Can you please share link for repo or build machine royale-asjs folder.

 

Thanks,

Alina

From: Alex Harui [mailto:[hidden email]]
Sent: Friday, February 23, 2018 12:47 PM


To: [hidden email]
Subject: Re: Substitutes in Apache Royale

 

Hi Alina,

 

That's a pretty strange result.  I just tried it on my Windows machine without any problem.  I'm wondering if something got corrupted or there is a code-page issue.

 

Try setting the environment variable

JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8

 

If that doesn't help, try comparing the files in the royale-asjs folder with the ones on our repo or build machine.

 

HTH,

-Alex

 

From: Alina Kazi <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Thursday, February 22, 2018 at 9:21 PM
To: "[hidden email]" <[hidden email]>
Subject: RE: Substitutes in Apache Royale

 

Issue - ran in the package's royale-asjs folder: ant –f InstallAdobeSDKs.xml

 

https://paper.dropbox.com/doc/Error-ant-f-InstallAdobeSDKs.xml-mIQ4MigH799EdiZ341l7k?_tk=share_copylink

 

Thanks,

Alina

From: Alex Harui [[hidden email]]
Sent: Tuesday, February 20, 2018 11:30 PM
To: [hidden email]
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

 

 

From: Alex Harui <[hidden email]>
Reply-To: "