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

Piotr Zarzycki
Wish I could have from .NET async, await <3 :)

2018-02-19 22:38 GMT+01:00 Carlos Rovira <[hidden email]>:
Hi Harbs

2018-02-15 10:53 GMT+01:00 Gabe Harbs <[hidden email]>:
None of the cases where I had ResultEvent and FaultEvent really made a lot of sense to keep that logic in Royale (events should generally be of type Event), so keeping those events would just mask places where code should probably be rewritten.


I think you was not using AMF. With RemoteObjects, I think Fault and Result events are a must or at least I can't imagine a way to handle the async behavior in other way. Maybe your scenario was different right?


--



--

Piotr Zarzycki 

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

Reply | Threaded
Open this post in threaded view
|

Re: Substitutes in Apache Royale

Harbs
In reply to this post by Carlos Rovira-2
I don’t use AMF, but I have no idea why you need specially typed events for that.

Maybe I’m missing something…

On Feb 19, 2018, at 11:38 PM, Carlos Rovira <[hidden email]> wrote:

Hi Harbs

2018-02-15 10:53 GMT+01:00 Gabe Harbs <[hidden email]>:
None of the cases where I had ResultEvent and FaultEvent really made a lot of sense to keep that logic in Royale (events should generally be of type Event), so keeping those events would just mask places where code should probably be rewritten.


I think you was not using AMF. With RemoteObjects, I think Fault and Result events are a must or at least I can't imagine a way to handle the async behavior in other way. Maybe your scenario was different right?


--

Reply | Threaded
Open this post in threaded view
|

Re: Substitutes in Apache Royale

Carlos Rovira-2
All AMF/RemoteObject API worked with that. And our AMF/RemoteObject implementation in Royale does the same. In fact we already have FaultEvent and Result Event... why don't use it? seems to me more complicated to change it to no use that...
Our code relies heavily in AMF so all that classes are in lots of code to manage the use of the incoming data for the server and that data is what gives the result object from the backend to the client to manage it,

2018-02-19 23:00 GMT+01:00 Gabe Harbs <[hidden email]>:
I don’t use AMF, but I have no idea why you need specially typed events for that.

Maybe I’m missing something…

On Feb 19, 2018, at 11:38 PM, Carlos Rovira <[hidden email]> wrote:

Hi Harbs

2018-02-15 10:53 GMT+01:00 Gabe Harbs <[hidden email]>:
None of the cases where I had ResultEvent and FaultEvent really made a lot of sense to keep that logic in Royale (events should generally be of type Event), so keeping those events would just mask places where code should probably be rewritten.


I think you was not using AMF. With RemoteObjects, I think Fault and Result events are a must or at least I can't imagine a way to handle the async behavior in other way. Maybe your scenario was different right?


--




--
Reply | Threaded
Open this post in threaded view
|

Re: Substitutes in Apache Royale

Piotr Zarzycki
So you basically would like to in your code avoid changes FaultEvent to Event everywhere ?  Yes ? That's the point in your case of having typed events for AMF handlers ?

2018-02-19 23:06 GMT+01:00 Carlos Rovira <[hidden email]>:
All AMF/RemoteObject API worked with that. And our AMF/RemoteObject implementation in Royale does the same. In fact we already have FaultEvent and Result Event... why don't use it? seems to me more complicated to change it to no use that...
Our code relies heavily in AMF so all that classes are in lots of code to manage the use of the incoming data for the server and that data is what gives the result object from the backend to the client to manage it,

2018-02-19 23:00 GMT+01:00 Gabe Harbs <[hidden email]>:
I don’t use AMF, but I have no idea why you need specially typed events for that.

Maybe I’m missing something…

On Feb 19, 2018, at 11:38 PM, Carlos Rovira <[hidden email]> wrote:

Hi Harbs

2018-02-15 10:53 GMT+01:00 Gabe Harbs <[hidden email]>:
None of the cases where I had ResultEvent and FaultEvent really made a lot of sense to keep that logic in Royale (events should generally be of type Event), so keeping those events would just mask places where code should probably be rewritten.


I think you was not using AMF. With RemoteObjects, I think Fault and Result events are a must or at least I can't imagine a way to handle the async behavior in other way. Maybe your scenario was different right?


--




--



--

Piotr Zarzycki 

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

Reply | Threaded
Open this post in threaded view
|

Re: Substitutes in Apache Royale

Alex Harui-2
I'm sure many people would be happier if there were fewer lines of code to be touched.  IMO, this debate is about where it is reasonable to ask folks to change their code.  I am not afraid to ask someone to tweak their code because, if you have 100,000 lines of business logic, having to change 1000 lines should be much lower risk than porting all 100,000 lines to another JS framework.

Also, there are layers to backwards compatibility.  If we create an mx.collections.ArrayCollection for Royale, that might save you from touching some lines of code, but what if some other part of your code assumed that ArrayCollection subclasses ListCollectionView, and so on?  The number of class dependencies that we'd have to mimic could easily extend into reproducing about 90% of the APIs in Flex.  Flex did not have good separation of concerns.  We are not staffed to produce classes for 90% of Flex, and I personally do not wish to work on something like that.

Also, there is a really good chance you will have to change some of your code around ArrayCollection.  There are no weak references for event listeners in Royale, so if your code tosses out an ArrayCollection and expects it to be garbage collected, the Royale version will not get GC'd.  If Royale creates an ArrayCollection class that wraps an IList and you want to get rid of it, you will probably have to call a release() API or something like that.

So, I do not think it is practical to have zero changes to logic that accessed Flex classes.  The business logic that I think can be left untouched really should not take Flex classes as inputs.  IMO, there is a network layer that should abstract how the data is retrieved.  Your business logic should try to work with Arrays.  You would probably find it works much faster against Array instead of ArrayCollection.  The ResultEvent and FaultEvent should be part of the network layer.  And the ResultEvent handler should call some entry point in the business logic.

This network layer would be replaced by Royale classes.  The output that gets passed into the business logic would be the same arrays and function entry points.  If it is impossible or impractical to write business logic without Flex classes, I'm interested in knowing that classes are a "must have" and then we can consider mimicking those classes.  I would hope that ArrayCollection isn't one of them, or if it is, then nobody cares whether it is a ListCollectionView or not.  I could imaging mimicking Sort/SortField, but really, you should pass in a sorted Array to the business logic.  And then the use of ArrayCollection is in the Network layer and you can make calls to an ArrayCollecition.release() if you need to.

I wish it could be easier, but I don't know of a practical way to make it so, at least without more folks writing framework code.  But it still should be much easier and safer than porting every line of code to a new framework.

My 2 cents,
-Alex

From: Piotr Zarzycki <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Monday, February 19, 2018 at 2:10 PM
To: "[hidden email]" <[hidden email]>
Subject: Re: Substitutes in Apache Royale

So you basically would like to in your code avoid changes FaultEvent to Event everywhere ?  Yes ? That's the point in your case of having typed events for AMF handlers ?

2018-02-19 23:06 GMT+01:00 Carlos Rovira <[hidden email]>:
All AMF/RemoteObject API worked with that. And our AMF/RemoteObject implementation in Royale does the same. In fact we already have FaultEvent and Result Event... why don't use it? seems to me more complicated to change it to no use that...
Our code relies heavily in AMF so all that classes are in lots of code to manage the use of the incoming data for the server and that data is what gives the result object from the backend to the client to manage it,

2018-02-19 23:00 GMT+01:00 Gabe Harbs <[hidden email]>:
I don’t use AMF, but I have no idea why you need specially typed events for that.

Maybe I’m missing something…

On Feb 19, 2018, at 11:38 PM, Carlos Rovira <[hidden email]> wrote:

Hi Harbs

2018-02-15 10:53 GMT+01:00 Gabe Harbs <[hidden email]>:
None of the cases where I had ResultEvent and FaultEvent really made a lot of sense to keep that logic in Royale (events should generally be of type Event), so keeping those events would just mask places where code should probably be rewritten.


I think you was not using AMF. With RemoteObjects, I think Fault and Result events are a must or at least I can't imagine a way to handle the async behavior in other way. Maybe your scenario was different right?


--




--



--

Piotr Zarzycki 

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

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

Hi Alex,

Our Flex Application(Main Project) is dependent on Flex Library Project , I took original code (Library Project) without porting it, Compiling it using Royale Compiler's SWF compiler (apache-royale-0.9.1-bin-js-swf or apache-royale-0.9.0-bin-js-swf)

 

Moonshine IDE (1.9.0) Console :

Loading configuration: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml

:

: C:\Users\aleena\Documents\SHMALIB\defaults Error: unable to open 'C:\Users\aleena\AppData\Roaming\npm\node_modules\apache-royale\royale-js\frameworks\royale-config.xml'.

: defaults (line: -1)

:

:

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(35): col: 0 Error: unable to open 'D:\apache-royale-0.9.1-bin-js-swf\royale-asjs\frameworks\mx-manifest.xml'.

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 35)

:

:       </namespace>

:

:

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(61): col: 0 Error: unable to open 'D:\apache-royale-0.9.1-bin-js-swf\royale-asjs\frameworks\libs\player\11.0\playerglobal.swc'.

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 61)

:

:     </external-library-path>

:

:

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(61): col: 0 Error: unable to open 'D:\apache-royale-0.9.1-bin-js-swf\royale-asjs\frameworks\libs\rpc.swc'.

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 61)

:

:     </external-library-path>

:

:

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(61): col: 0 Error: unable to open 'D:\apache-royale-0.9.1-bin-js-swf\royale-asjs\frameworks\libs\osmf.swc'.

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 61)

:

:     </external-library-path>

:

:

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(61): col: 0 Error: unable to open 'D:\apache-royale-0.9.1-bin-js-swf\royale-asjs\frameworks\libs\spark.swc'.

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 61)

:

:     </external-library-path>

:

:

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(61): col: 0 Error: unable to open 'D:\apache-royale-0.9.1-bin-js-swf\royale-asjs\frameworks\libs\apache.swc'.

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 61)

:

:     </external-library-path>

:

:

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(61): col: 0 Error: unable to open 'D:\apache-royale-0.9.1-bin-js-swf\royale-asjs\frameworks\libs\flatspark.swc'.

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 61)

:

:     </external-library-path>

:

:

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(61): col: 0 Error: unable to open 'D:\apache-royale-0.9.1-bin-js-swf\royale-asjs\frameworks\libs\framework.swc'.

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 61)

:

:     </external-library-path>

:

:

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(61): col: 0 Error: unable to open 'D:\apache-royale-0.9.1-bin-js-swf\royale-asjs\frameworks\libs\spark_dmv.swc'.

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 61)

:

:     </external-library-path>

:

:

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(61): col: 0 Error: unable to open 'D:\apache-royale-0.9.1-bin-js-swf\royale-asjs\frameworks\libs\sparkskins.swc'.

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 61)

:

:     </external-library-path>

:

:

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(61): col: 0 Error: unable to open 'D:\apache-royale-0.9.1-bin-js-swf\royale-asjs\frameworks\libs\textLayout.swc'.

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 61)

:

:     </external-library-path>

:

:

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(61): col: 0 Error: unable to open 'D:\apache-royale-0.9.1-bin-js-swf\royale-asjs\frameworks\libs\experimental.swc'.

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 61)

:

:     </external-library-path>

:

:

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(61): col: 0 Error: unable to open 'D:\apache-royale-0.9.1-bin-js-swf\royale-asjs\frameworks\libs\advancedgrids.swc'.

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 61)

:

:     </external-library-path>

:

:

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(61): col: 0 Error: unable to open 'D:\apache-royale-0.9.1-bin-js-swf\royale-asjs\frameworks\libs\authoringsupport.swc'.

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 61)

:

:     </external-library-path>

:

:

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(61): col: 0 Error: unable to open 'D:\apache-royale-0.9.1-bin-js-swf\royale-asjs\frameworks\libs\flash-integration.swc'.

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 61)

:

:     </external-library-path>

:

:

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(61): col: 0 Error: unable to open 'D:\apache-royale-0.9.1-bin-js-swf\royale-asjs\frameworks\libs\mx\mx.swc'.

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 61)

:

:     </external-library-path>

:

:

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(64): col: 0 Error: unable to open 'D:\apache-royale-0.9.1-bin-js-swf\royale-asjs\frameworks\locale\en_US'.

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 64)

:

:     </library-path>

 

Regards,

Alina

From: Alex Harui [mailto:[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

I am sharing my Flex Library Project Source. We are using its output in our Main Application ERP System.

 

Thanks ,

Alina Kazi

 

 

From: Alina Kazi [mailto:[hidden email]]
Sent: Tuesday, February 20, 2018 11:11 AM
To: [hidden email]
Subject: RE: Substitutes in Apache Royale

 

Hi Alex,

Our Flex Application(Main Project) is dependent on Flex Library Project , I took original code (Library Project) without porting it, Compiling it using Royale Compiler's SWF compiler (apache-royale-0.9.1-bin-js-swf or apache-royale-0.9.0-bin-js-swf)

 

Moonshine IDE (1.9.0) Console :

Loading configuration: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml

:

: C:\Users\aleena\Documents\SHMALIB\defaults Error: unable to open 'C:\Users\aleena\AppData\Roaming\npm\node_modules\apache-royale\royale-js\frameworks\royale-config.xml'.

: defaults (line: -1)

:

:

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(35): col: 0 Error: unable to open 'D:\apache-royale-0.9.1-bin-js-swf\royale-asjs\frameworks\mx-manifest.xml'.

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 35)

:

:       </namespace>

:

:

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(61): col: 0 Error: unable to open 'D:\apache-royale-0.9.1-bin-js-swf\royale-asjs\frameworks\libs\player\11.0\playerglobal.swc'.

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 61)

:

:     </external-library-path>

:

:

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(61): col: 0 Error: unable to open 'D:\apache-royale-0.9.1-bin-js-swf\royale-asjs\frameworks\libs\rpc.swc'.

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 61)

:

:     </external-library-path>

:

:

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(61): col: 0 Error: unable to open 'D:\apache-royale-0.9.1-bin-js-swf\royale-asjs\frameworks\libs\osmf.swc'.

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 61)

:

:     </external-library-path>

:

:

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(61): col: 0 Error: unable to open 'D:\apache-royale-0.9.1-bin-js-swf\royale-asjs\frameworks\libs\spark.swc'.

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 61)

:

:     </external-library-path>

:

:

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(61): col: 0 Error: unable to open 'D:\apache-royale-0.9.1-bin-js-swf\royale-asjs\frameworks\libs\apache.swc'.

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 61)

:

:     </external-library-path>

:

:

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(61): col: 0 Error: unable to open 'D:\apache-royale-0.9.1-bin-js-swf\royale-asjs\frameworks\libs\flatspark.swc'.

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 61)

:

:     </external-library-path>

:

:

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(61): col: 0 Error: unable to open 'D:\apache-royale-0.9.1-bin-js-swf\royale-asjs\frameworks\libs\framework.swc'.

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 61)

:

:     </external-library-path>

:

:

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(61): col: 0 Error: unable to open 'D:\apache-royale-0.9.1-bin-js-swf\royale-asjs\frameworks\libs\spark_dmv.swc'.

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 61)

:

:     </external-library-path>

:

:

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(61): col: 0 Error: unable to open 'D:\apache-royale-0.9.1-bin-js-swf\royale-asjs\frameworks\libs\sparkskins.swc'.

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 61)

:

:     </external-library-path>

:

:

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(61): col: 0 Error: unable to open 'D:\apache-royale-0.9.1-bin-js-swf\royale-asjs\frameworks\libs\textLayout.swc'.

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 61)

:

:     </external-library-path>

:

:

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(61): col: 0 Error: unable to open 'D:\apache-royale-0.9.1-bin-js-swf\royale-asjs\frameworks\libs\experimental.swc'.

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 61)

:

:     </external-library-path>

:

:

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(61): col: 0 Error: unable to open 'D:\apache-royale-0.9.1-bin-js-swf\royale-asjs\frameworks\libs\advancedgrids.swc'.

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 61)

:

:     </external-library-path>

:

:

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(61): col: 0 Error: unable to open 'D:\apache-royale-0.9.1-bin-js-swf\royale-asjs\frameworks\libs\authoringsupport.swc'.

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 61)

:

:     </external-library-path>

:

:

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(61): col: 0 Error: unable to open 'D:\apache-royale-0.9.1-bin-js-swf\royale-asjs\frameworks\libs\flash-integration.swc'.

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 61)

:

:     </external-library-path>

:

:

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(61): col: 0 Error: unable to open 'D:\apache-royale-0.9.1-bin-js-swf\royale-asjs\frameworks\libs\mx\mx.swc'.

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 61)

:

:     </external-library-path>

:

:

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml(64): col: 0 Error: unable to open 'D:\apache-royale-0.9.1-bin-js-swf\royale-asjs\frameworks\locale\en_US'.

: C:\Users\aleena\Documents\SHMALIB\obj\SHMALIBConfig.xml (line: 64)

:

:     </library-path>

 

Regards,

Alina

From: Alex Harui [mailto:[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

 


SHMALIB.zip (5M) Download Attachment
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,

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

Alex Harui-2
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

piotrz
Administrator
In reply to this post by alina kazi-2
Hi Alina,

Here I am! :) Everything what you need to setup is under right click on the
project -> Settings.

1) Setup Library. Right click on the project and choose Settings. In the
section Libraries choose folder libs. My screenshot:

<http://apache-royale-users.20374.n8.nabble.com/file/t1/library_setup.png>

2) If you need any additional compiler options go to the Build options and
specify them in the "Additional compiler options". I see that you are using
service-config.xml - In my screenshot is an example how did I show compiler
where that file is.
Royale JS compiler version probably won't understand -service, maybe swf
understand.

<http://apache-royale-users.20374.n8.nabble.com/file/t1/additional_compiler_config.png>

3) I see among your errors that you are missing playerglobal.swc. Because
you are using js, swf version of Royale you need to download additional
dependencies. To me it is enough if you download playerglobal.swc 11.0 [1]
and place it to frameworks\libs\player\11.0\playerglobal.swc - name should
be as you see here.
Maybe you will have to also download Apache Flex SDK with Adobe AIR and
setup environment variables:

FLEX_HOME=path to the flexsdk folder
AIR_HOME=path to the flexsdk folder

4) Building
Alex is asking you to build your project using SWF compiler - In order to do
that choose "Project" -> "Build Project" - it will use SWF compiler
Build to JS only "Project" -> "Build as JavaScript"

[1] https://goo.gl/AQhG21

Thanks,
Piotr




--
Sent from: http://apache-royale-users.20374.n8.nabble.com/
Reply | Threaded
Open this post in threaded view
|

RE: Substitutes in Apache Royale

alina kazi-2
Thanks Piotr.
Successfully followed all the steps except :
Maybe you will have to also download Apache Flex SDK with Adobe AIR and
setup environment variables:

FLEX_HOME=path to the flexsdk folder
AIR_HOME=path to the flexsdk folder


Error occurred:

Compiling SHMALIB
: Sending to mxmlc: mxmlc -load-config+=obj/SHMALIBConfig.xml
-services=src/services-config.xml     -locale=en_US -debug=true -o
bin-debug/SHMALib.swf
: Error: Could not find or load main class flex2.tools.Fcsh
: Caused by: java.lang.NoClassDefFoundError: flex2/tools/Tool

I will download Apache Flex SDK with Adobe AIR and set variables , then I
will tell you about further progress.
 
SWF output file is Attached.
Thanks,
Alina
-----Original Message-----
From: piotrz [mailto:[hidden email]]
Sent: Tuesday, February 20, 2018 2:05 PM
To: [hidden email]
Subject: RE: Substitutes in Apache Royale

Hi Alina,

Here I am! :) Everything what you need to setup is under right click on the
project -> Settings.

1) Setup Library. Right click on the project and choose Settings. In the
section Libraries choose folder libs. My screenshot:

<http://apache-royale-users.20374.n8.nabble.com/file/t1/library_setup.png>

2) If you need any additional compiler options go to the Build options and
specify them in the "Additional compiler options". I see that you are using
service-config.xml - In my screenshot is an example how did I show compiler
where that file is.
Royale JS compiler version probably won't understand -service, maybe swf
understand.

<http://apache-royale-users.20374.n8.nabble.com/file/t1/additional_compiler_
config.png>

3) I see among your errors that you are missing playerglobal.swc. Because
you are using js, swf version of Royale you need to download additional
dependencies. To me it is enough if you download playerglobal.swc 11.0 [1]
and place it to frameworks\libs\player\11.0\playerglobal.swc - name should
be as you see here.
Maybe you will have to also download Apache Flex SDK with Adobe AIR and
setup environment variables:

FLEX_HOME=path to the flexsdk folder
AIR_HOME=path to the flexsdk folder

4) Building
Alex is asking you to build your project using SWF compiler - In order to do
that choose "Project" -> "Build Project" - it will use SWF compiler
Build to JS only "Project" -> "Build as JavaScript"

[1] https://goo.gl/AQhG21

Thanks,
Piotr




--
Sent from: http://apache-royale-users.20374.n8.nabble.com/

SHMALib.swf (6 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Substitutes in Apache Royale

Piotr Zarzycki
In reply to this post by piotrz
Alina,

The things which you are trying to do is, build your project which is written in Flex with Royale swf compiler. I'm wondering whether IDE allows you to do this. As I can see it tries to use  Fcsh in Royale SDK.

Try to as an exercise change Royale SDK to Apache Flex SDK and build your project. What was the SDK version originally which was used to build that application ?

Thanks, Piotr
 

2018-02-20 11:38 GMT+01:00 Alina Kazi <[hidden email]>:
Thanks Piotr.
Successfully followed all the steps except :
Maybe you will have to also download Apache Flex SDK with Adobe AIR and
setup environment variables:

FLEX_HOME=path to the flexsdk folder
AIR_HOME=path to the flexsdk folder


Error occurred:

Compiling SHMALIB
: Sending to mxmlc: mxmlc -load-config+=obj/SHMALIBConfig.xml
-services=src/services-config.xml     -locale=en_US -debug=true -o
bin-debug/SHMALib.swf
: Error: Could not find or load main class flex2.tools.Fcsh
: Caused by: java.lang.NoClassDefFoundError: flex2/tools/Tool

I will download Apache Flex SDK with Adobe AIR and set variables , then I
will tell you about further progress.

SWF output file is Attached.
Thanks,
Alina
-----Original Message-----
From: piotrz [mailto:[hidden email]]
Sent: Tuesday, February 20, 2018 2:05 PM
To: [hidden email]
Subject: RE: Substitutes in Apache Royale

Hi Alina,

Here I am! :) Everything what you need to setup is under right click on the
project -> Settings.

1) Setup Library. Right click on the project and choose Settings. In the
section Libraries choose folder libs. My screenshot:

<http://apache-royale-users.20374.n8.nabble.com/file/t1/library_setup.png>

2) If you need any additional compiler options go to the Build options and
specify them in the "Additional compiler options". I see that you are using
service-config.xml - In my screenshot is an example how did I show compiler
where that file is.
Royale JS compiler version probably won't understand -service, maybe swf
understand.

<<a href="http://apache-royale-users.20374.n8.nabble.com/file/t1/additional_compiler_ config.png" rel="noreferrer" target="_blank">http://apache-royale-users.20374.n8.nabble.com/file/t1/additional_compiler_
config.png>

3) I see among your errors that you are missing playerglobal.swc. Because
you are using js, swf version of Royale you need to download additional
dependencies. To me it is enough if you download playerglobal.swc 11.0 [1]
and place it to frameworks\libs\player\11.0\playerglobal.swc - name should
be as you see here.
Maybe you will have to also download Apache Flex SDK with Adobe AIR and
setup environment variables:

FLEX_HOME=path to the flexsdk folder
AIR_HOME=path to the flexsdk folder

4) Building
Alex is asking you to build your project using SWF compiler - In order to do
that choose "Project" -> "Build Project" - it will use SWF compiler
Build to JS only "Project" -> "Build as JavaScript"

[1] https://goo.gl/AQhG21

Thanks,
Piotr




--
Sent from: http://apache-royale-users.20374.n8.nabble.com/



--

Piotr Zarzycki 

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

Reply | Threaded
Open this post in threaded view
|

RE: Substitutes in Apache Royale

alina kazi-2

Piotr,

It was library missing error . Fcsh.jar file was missing and I download that file and got this error:

Compiling SHMALIB
: Sending to mxmlc: mxmlc -load-config+=obj/SHMALIBConfig.xml
-services=src/services-config.xml     -locale=en_US -debug=true -o
bin-debug/SHMALib.swf
: Error: Could not find or load main class flex2.tools.Fcsh
: Caused by: java.lang.NoClassDefFoundError: flex2/tools/Tool

 

 

SHMALib is Flex Library Project it should generate .swc file so that we can use it in Actual (Main) Project.

 

Now the Error is:

Using Royale SDK: C:\Users\aleena\AppData\Roaming\npm\node_modules\apache-royale\royale-js\royale-asjs

: WARNING: An illegal reflective access operation has occurred

: WARNING: Illegal reflective access by com.google.common.base.internal.Finalizer (file:/D:/apache-royale-0.9.1-bin-js-swf/royale-asjs/lib/external/guava.jar) to field java.lang.Thread.inheritableThreadLocals

: WARNING: Please consider reporting this to the maintainers of com.google.common.base.internal.Finalizer

: WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations

: WARNING: All illegal access operations will be denied in a future release

: Unknown tag:compiler.targets

 

Tomorrow I will do that exercise “change Royale SDK to Apache Flex SDK and build project”. I will let you know.

SDK version which was used to build application Flex 4.0.0  and IDE Adobe Flash Builder 4

 

Regards,

Alina

From: Piotr Zarzycki [mailto:[hidden email]]
Sent: Tuesday, February 20, 2018 4:08 PM
To: [hidden email]
Subject: Re: Substitutes in Apache Royale

 

Alina,

 

The things which you are trying to do is, build your project which is written in Flex with Royale swf compiler. I'm wondering whether IDE allows you to do this. As I can see it tries to use  Fcsh in Royale SDK.

 

Try to as an exercise change Royale SDK to Apache Flex SDK and build your project. What was the SDK version originally which was used to build that application ?

 

Thanks, Piotr

 

 

2018-02-20 11:38 GMT+01:00 Alina Kazi <[hidden email]>:

Thanks Piotr.
Successfully followed all the steps except :
Maybe you will have to also download Apache Flex SDK with Adobe AIR and
setup environment variables:

FLEX_HOME=path to the flexsdk folder
AIR_HOME=path to the flexsdk folder


Error occurred:

Compiling SHMALIB
: Sending to mxmlc: mxmlc -load-config+=obj/SHMALIBConfig.xml
-services=src/services-config.xml     -locale=en_US -debug=true -o
bin-debug/SHMALib.swf
: Error: Could not find or load main class flex2.tools.Fcsh
: Caused by: java.lang.NoClassDefFoundError: flex2/tools/Tool

I will download Apache Flex SDK with Adobe AIR and set variables , then I
will tell you about further progress.

SWF output file is Attached.
Thanks,
Alina
-----Original Message-----
From: piotrz [mailto:[hidden email]]
Sent: Tuesday, February 20, 2018 2:05 PM
To: [hidden email]
Subject: RE: Substitutes in Apache Royale

Hi Alina,

Here I am! :) Everything what you need to setup is under right click on the
project -> Settings.

1) Setup Library. Right click on the project and choose Settings. In the
section Libraries choose folder libs. My screenshot:

<http://apache-royale-users.20374.n8.nabble.com/file/t1/library_setup.png>

2) If you need any additional compiler options go to the Build options and
specify them in the "Additional compiler options". I see that you are using
service-config.xml - In my screenshot is an example how did I show compiler
where that file is.
Royale JS compiler version probably won't understand -service, maybe swf
understand.

<http://apache-royale-users.20374.n8.nabble.com/file/t1/additional_compiler_
config.png
>

3) I see among your errors that you are missing playerglobal.swc. Because
you are using js, swf version of Royale you need to download additional
dependencies. To me it is enough if you download playerglobal.swc 11.0 [1]
and place it to frameworks\libs\player\11.0\playerglobal.swc - name should
be as you see here.
Maybe you will have to also download Apache Flex SDK with Adobe AIR and
setup environment variables:

FLEX_HOME=path to the flexsdk folder
AIR_HOME=path to the flexsdk folder

4) Building
Alex is asking you to build your project using SWF compiler - In order to do
that choose "Project" -> "Build Project" - it will use SWF compiler
Build to JS only "Project" -> "Build as JavaScript"

[1] https://goo.gl/AQhG21

Thanks,
Piotr




--
Sent from: http://apache-royale-users.20374.n8.nabble.com/



 

--

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 Alex Harui-2
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

Alex Harui-2
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;

 

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

yishayw

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;

 

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

Alex Harui-2
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;

 

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

yishayw

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;

 

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

Harbs
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

Alex Harui-2
In reply to this post by yishayw
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;

 

Reference: http://apacheflexbuild.cloudapp.net:8080/job/Royale_ASDoc_Example/lastSuccessfulBuild/artifact/examples/royale/ASDoc/bin/js-debug/index.html

 

Thanks,

Alina Kazi

 

 

 

123