Hi Serkan,
Without spending too much time investigating, I think SRCPATH should
be =$HOME/royale/as3corelib/src
The compiler will expect classes to be in a folder structure that
matches the package name relative to the source-path.
DateBase is not in the emulation component set yet because nobody
needed it so far. It looks like it should be easy to add to
MXRoyale. Change the import of flash.events.Event to
org.apache.royale.events.Event and temporarily comment out the
[ResourceBundle] lines and add DateBase to MXRoyaleClasses.as and see
if that compiles.
Thanks,
-Alex
*From: *Serkan Taş <[email protected]>
*Reply-To: *"[email protected]" <[email protected]>
*Date: *Monday, October 1, 2018 at 4:15 PM
*To: *"[email protected]" <[email protected]>
*Subject: *Re: Work on Emulation
Hi Alex,
Thank you for the resourcemanager.
This is the fork of the project :
https://github.com/nihavend/as3corelib
<https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnihavend%2Fas3corelib&data=02%7C01%7Caharui%40adobe.com%7Ccdedbcf1c4c4478aa79508d627f3c751%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636740325312052579&sdata=5fb8V6KyVEcgfBw%2FRO50Qks6hS0FHYZk08fobrixEWA%3D&reserved=0>
I configured to compile only the class DateUtil.as for the initial work :
script content :
export
COMPILER_PATH=$HOME/royale/apache-royale-0.9.4-bin-js-swf/royale-asjs/js/bin
export SRCPATH=$HOME/royale/as3corelib/src/com/adobe/utils
$COMPILER_PATH/compc -compiler.library-path
$HOME/royale/as3corelib/build/libs -compiler.source-path $SRCPATH
-include-sources $SRCPATH/DateUtil.as -o .\as3corelib.swc
and the result :
pinara18@ubuntu-relman:~/royale$ ./build_as3corelib.sh
Using Royale Compiler codebase:
/home/pinara18/royale/apache-royale-0.9.4-bin-js-swf/royale-asjs/js/bin/../..
Using Royale SDK:
/home/pinara18/royale/apache-royale-0.9.4-bin-js-swf/royale-asjs/js/bin/../..
args:
+royalelib=/home/pinara18/royale/apache-royale-0.9.4-bin-js-swf/royale-asjs/js/bin/../../frameworks
-sdk-js-lib=/home/pinara18/royale/apache-royale-0.9.4-bin-js-swf/royale-asjs/js/bin/../../frameworks/js/Royale/generated-sources
-compiler.library-path
/home/pinara18/royale/as3corelib/build/libs
-compiler.source-path
/home/pinara18/royale/as3corelib/src/com/adobe/utils
-include-sources
/home/pinara18/royale/as3corelib/src/com/adobe/utils/DateUtil.as
-o
/home/pinara18/royale/.as3corelib.swc
target:SWF
target:JSRoyale
COMPC
Loading configuration:
/home/pinara18/royale/apache-royale-0.9.4-bin-js-swf/royale-asjs/frameworks/royale-config.xml
/home/pinara18/royale/as3corelib/src/com/adobe/utils/DateUtil.as
Error: No externally-visible definition with the name 'DateUtil' was
found.
/home/pinara18/royale/as3corelib/src/com/adobe/utils/DateUtil.as
Error: No externally-visible definition with the name 'DateUtil' was
found.
/home/pinara18/royale/as3corelib/src/com/adobe/utils/DateUtil.as(35):
col: 9 Warning: Definition mx.formatters.DateBase could not be found.
import mx.formatters.DateBase;
^
/home/pinara18/royale/as3corelib/src/com/adobe/utils/DateUtil.as(45):
col: 15 Error: An externally-visible definition with the name
'com.adobe.utils.DateUtil' was unexpectedly found.
public class DateUtil
^
/home/pinara18/royale/as3corelib/src/com/adobe/utils/DateUtil.as(45):
col: 15 Error: An externally-visible definition with the name
'com.adobe.utils.DateUtil' was unexpectedly found.
public class DateUtil
^
/home/pinara18/royale/as3corelib/src/com/adobe/utils/DateUtil.as(65):
col: 11 Error: Access of possibly undefined property DateBase.
return DateBase.monthNamesShort[d.getMonth()];
^
/home/pinara18/royale/as3corelib/src/com/adobe/utils/DateUtil.as(88):
col: 11 Error: Access of possibly undefined property DateBase.
return DateBase.monthNamesShort.indexOf(m);
^
/home/pinara18/royale/as3corelib/src/com/adobe/utils/DateUtil.as(108):
col: 11 Error: Access of possibly undefined property DateBase.
return DateBase.monthNamesLong[d.getMonth()];
^
/home/pinara18/royale/as3corelib/src/com/adobe/utils/DateUtil.as(128):
col: 11 Error: Access of possibly undefined property DateBase.
return DateBase.monthNamesLong.indexOf(m);
^
/home/pinara18/royale/as3corelib/src/com/adobe/utils/DateUtil.as(148):
col: 11 Error: Access of possibly undefined property DateBase.
return DateBase.dayNamesShort[d.getDay()];
^
/home/pinara18/royale/as3corelib/src/com/adobe/utils/DateUtil.as(168):
col: 11 Error: Access of possibly undefined property DateBase.
return DateBase.dayNamesShort.indexOf(d);
^
/home/pinara18/royale/as3corelib/src/com/adobe/utils/DateUtil.as(188):
col: 11 Error: Access of possibly undefined property DateBase.
return DateBase.dayNamesLong[d.getDay()];
^
/home/pinara18/royale/as3corelib/src/com/adobe/utils/DateUtil.as(208):
col: 11 Error: Access of possibly undefined property DateBase.
return DateBase.dayNamesLong.indexOf(d);
^
/home/pinara18/royale/as3corelib/src/com/adobe/utils/DateUtil.as(481):
col: 10 Error: Access of possibly undefined property DateBase.
sb += DateBase.dayNamesShort[d.getUTCDay()];
^
/home/pinara18/royale/as3corelib/src/com/adobe/utils/DateUtil.as(491):
col: 10 Error: Access of possibly undefined property DateBase.
sb += DateBase.monthNamesShort[d.getUTCMonth()];
^
/home/pinara18/royale/as3corelib/src/com/adobe/utils/DateUtil.as(669):
col: 8 Warning: variable definition duplicates function parameter: d.
var d:Date = new Date(d.time);
^
/home/pinara18/royale/as3corelib/src/com/adobe/utils/DateUtil.as(682):
col: 8 Warning: variable definition duplicates function parameter: d.
var d:Date = new Date(d.time);
^
/home/pinara18/royale/as3corelib/src/com/adobe/utils/DateUtil.as No
externally-visible definition with the name 'DateUtil' was found.
/home/pinara18/royale/as3corelib/src/com/adobe/utils/DateUtil.as No
externally-visible definition with the name 'DateUtil' was found.
/home/pinara18/royale/as3corelib/src/com/adobe/utils/DateUtil.as(35):
col: 9 Definition mx.formatters.DateBase could not be found.
import mx.formatters.DateBase;
^
/home/pinara18/royale/as3corelib/src/com/adobe/utils/DateUtil.as(45):
col: 15 An externally-visible definition with the name
'com.adobe.utils.DateUtil' was unexpectedly found.
public class DateUtil
^
/home/pinara18/royale/as3corelib/src/com/adobe/utils/DateUtil.as(45):
col: 15 An externally-visible definition with the name
'com.adobe.utils.DateUtil' was unexpectedly found.
public class DateUtil
^
/home/pinara18/royale/as3corelib/src/com/adobe/utils/DateUtil.as(65):
col: 11 Access of possibly undefined property DateBase.
return DateBase.monthNamesShort[d.getMonth()];
^
/home/pinara18/royale/as3corelib/src/com/adobe/utils/DateUtil.as(88):
col: 11 Access of possibly undefined property DateBase.
return DateBase.monthNamesShort.indexOf(m);
^
/home/pinara18/royale/as3corelib/src/com/adobe/utils/DateUtil.as(108):
col: 11 Access of possibly undefined property DateBase.
return DateBase.monthNamesLong[d.getMonth()];
^
/home/pinara18/royale/as3corelib/src/com/adobe/utils/DateUtil.as(128):
col: 11 Access of possibly undefined property DateBase.
return DateBase.monthNamesLong.indexOf(m);
^
/home/pinara18/royale/as3corelib/src/com/adobe/utils/DateUtil.as(148):
col: 11 Access of possibly undefined property DateBase.
return DateBase.dayNamesShort[d.getDay()];
^
/home/pinara18/royale/as3corelib/src/com/adobe/utils/DateUtil.as(168):
col: 11 Access of possibly undefined property DateBase.
return DateBase.dayNamesShort.indexOf(d);
^
/home/pinara18/royale/as3corelib/src/com/adobe/utils/DateUtil.as(188):
col: 11 Access of possibly undefined property DateBase.
return DateBase.dayNamesLong[d.getDay()];
^
/home/pinara18/royale/as3corelib/src/com/adobe/utils/DateUtil.as(208):
col: 11 Access of possibly undefined property DateBase.
return DateBase.dayNamesLong.indexOf(d);
^
/home/pinara18/royale/as3corelib/src/com/adobe/utils/DateUtil.as(481):
col: 10 Access of possibly undefined property DateBase.
sb += DateBase.dayNamesShort[d.getUTCDay()];
^
/home/pinara18/royale/as3corelib/src/com/adobe/utils/DateUtil.as(491):
col: 10 Access of possibly undefined property DateBase.
sb += DateBase.monthNamesShort[d.getUTCMonth()];
^
/home/pinara18/royale/as3corelib/src/com/adobe/utils/DateUtil.as(669):
col: 8 variable definition duplicates function parameter: d.
var d:Date = new Date(d.time);
^
/home/pinara18/royale/as3corelib/src/com/adobe/utils/DateUtil.as(682):
col: 8 variable definition duplicates function parameter: d.
var d:Date = new Date(d.time);
^
I am going to check it tomorrow...
Thanks,
Serkan
2.10.2018 01:27 tarihinde Alex Harui yazdı:
Hi Serkan,
OK, I will work on ResourceManager.
I think you are looking at the right repo to try to get AS3CoreLib
to work in Royale.
Good luck,
-Alex
*From: *Serkan Taş <[email protected]>
<mailto:[email protected]>
*Reply-To: *"[email protected]"
<mailto:[email protected]> <[email protected]>
<mailto:[email protected]>
*Date: *Monday, October 1, 2018 at 3:25 PM
*To: *"[email protected]" <mailto:[email protected]>
<[email protected]> <mailto:[email protected]>
*Subject: *Re: Work on Emulation
Hi Alex,
I know you and the community so busy with lots of things. I prefer
you prepare ResourceManager if you can find time for. If not i may
try with my self.
Regarding as3corelib: It sounds very nice to have the fork of the
library on github and to check if it compiles wirth royale,
tomorrow i will work on this. I am sure with DateUtil.as but need
to work on others.
Just to be sure that if the github repo below is the right one to
have the fork from.
https://github.com/mikechambers/as3corelib
<https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmikechambers%2Fas3corelib%2Fblob%2Fmaster%2Fsrc%2Fcom%2Fadobe%2Futils%2FDateUtil.as&data=02%7C01%7Caharui%40adobe.com%7Ccdedbcf1c4c4478aa79508d627f3c751%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636740325312062584&sdata=4paD57zxihgp2f%2B%2BVDisUneE12J%2Bmmrq3D0cgbAlCA0%3D&reserved=0>
Thanks,
Serkan
1.10.2018 23:57 tarihinde Alex Harui yazdı:
Hi Serkan,
Sorry, I forgot to answer your questions about
ResourceManager. ResourceModules are a special kind of module
used by ResourceManager. Here’s a link to one article about
it:
https://www.adobe.com/devnet/flex/articles/flex-localization-pt2.html
<https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.adobe.com%2Fdevnet%2Fflex%2Farticles%2Fflex-localization-pt2.html&data=02%7C01%7Caharui%40adobe.com%7Ccdedbcf1c4c4478aa79508d627f3c751%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636740325312062584&sdata=LXnlEmy3giShOvHDLbJtOmOB3QwbMwvFk9VEQNHBt5c%3D&reserved=0>
If you are not using this feature then you can comment lots of
code out of ResourceManager and make it easier to have it work
in JS. You will still be able to use other kinds of modules.
If you are unclear as to what to remove, I can try to do it.
Regarding as3corelib: Adobe has not donated that code to
Apache. It was not part of the Flex framework. Donating the
code to Apache is a long process. So you won’t find it in the
Apache Royale repos. However, the code you want has an
open-source BSD license so you are free to use it in your
application. You could even fork the code and build your own
Royale version of as3corelib by grabbing all of the source and
seeing if you can get the Apache Royale compiler (COMPC) to
compile it.
If you want to try that, try doing that work on GitHub so
others can help or use the results. Let us know what issues
you run into. Maybe at some future point in time I’ll start
the process of donating the code if that’s what people in the
community want.
Thanks,
-Alex
*From: *Serkan Taş <[email protected]>
<mailto:[email protected]>
*Reply-To: *"[email protected]"
<mailto:[email protected]> <[email protected]>
<mailto:[email protected]>
*Date: *Monday, October 1, 2018 at 12:15 PM
*To: *"[email protected]"
<mailto:[email protected]> <[email protected]>
<mailto:[email protected]>
*Subject: *Re: Work on Emulation
Hi Alex,
Prior to my questions at hte end of this mail, few days ago
you commented about the libraries i use : "you are using
certain libraries like as3corelib and flexlib that have
dependencies on Flash. "
From as3corelib.swc i am using the class DateUtils for the
method parseW3CDTF. I found the source code for the swc :
https://github.com/mikechambers/as3corelib/blob/master/src/com/adobe/utils/DateUtil.as
<https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmikechambers%2Fas3corelib%2Fblob%2Fmaster%2Fsrc%2Fcom%2Fadobe%2Futils%2FDateUtil.as&data=02%7C01%7Caharui%40adobe.com%7Ccdedbcf1c4c4478aa79508d627f3c751%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636740325312072589&sdata=iS0OzqHcCCoddoURL3SaljDdzwiNZGNlgjA8rpw3uHY%3D&reserved=0>
It has copyright.
When i checked the source code i see that it is pure as code
if not missed something.
I searched the royale codebase for any word with W3CDTF bot
nothing found.
May be we may find javascript version of the function or use
this one ?
30.09.2018 22:02 tarihinde Serkan Taş yazdı:
Hi Alex,
I am not sure I can exactly answer your questions but let
me try;
1. Are you using ResourceModules?
I am using ResourceManager only for languge support and
changing user language on runtime. So then i get
IResourceManager
e.g.
private static var toolTipList:ArrayList = new ArrayList();
toolTipList.addItem(ResourceManager.getInstance().getString('messages',
'readyTooltip'))
I looked at ResourceManager, ResourceManagerImpl and
ResourceBundle but did not see any "ResourceModules".
But if the subject is Modules class then yes am using
the modules infrastructure for dynamically loading some
modules but i do not know it is related with these three
classes "ResourceManager, ResourceManagerImpl and
ResourceBundle"
2. If not, if you comment out all of the support for
ResourceModules, I think you might be able to use the old
Flex code mostly as is.You should be able to comment out
the parts that use a Dictionary and assume that
weakReferences aren’t needed. Then the Timer code
shouldn’t be needed either.
İf you mean these, theh ok (ResourceManagerImpl.as)
import flash.events.Event;
import flash.events.EventDispatcher;
import flash.events.FocusEvent;
import flash.events.IEventDispatcher;
import flash.events.TimerEvent;
import flash.system.ApplicationDomain;
import flash.system.Capabilities;
import flash.system.SecurityDomain;
import flash.utils.Dictionary;
// import flash.utils.Timer;
// import mx.core.IFlexModuleFactory;
import mx.core.mx_internal;
import mx.core.Singleton;
import mx.events.FlexEvent;
// import mx.events.ModuleEvent;
import mx.events.ResourceEvent;
import mx.managers.SystemManagerGlobals;
// import mx.modules.IModuleInfo;
// import mx.modules.ModuleManager;
import mx.utils.StringUtil;
3. Use “org.apache.royale.events Event/EventDispatcher”
instead of “flash.events.Event/EventDispatcher”.
Both variable declarations and class extensions, ok !
4. I think you can remove getClassByName from ResourceBundle.
ok, but replace it with "There is
aroyale/org/apache/royale/reflection/getDefinitionByName.as" ?
5. Use ValueEvent instead of FocusEvent.
Used only in (ResourceManagerImpl.as), ok !
6. Also, create something
likeCore/src/main/royale/org/apache/royale/utils/OSUtils.as
to get the locale.
Ok, but may give some advices where to begin ? :)
Thanks,
Serkan...
30.09.2018 05:00 tarihinde Alex Harui yazdı:
Hi Serkan,
Sounds great.
I was just taking a quick look at the code for
ResourceManager, ResourceManagerImpl and
ResourceBundle. Are you using ResourceModules? If
not, if you comment out all of the support for
ResourceModules, I think you might be able to use the
old Flex code mostly as is. You should be able to
comment out the parts that use a Dictionary and assume
that weakReferences aren’t needed. Then the Timer
code shouldn’t be needed either.
Use “org.apache.royale.events Event/EventDispatcher”
instead of “flash.events.Event/EventDispatcher”.
I think you can remove getClassByName from ResourceBundle.
Use ValueEvent instead of FocusEvent.
Also, create something
likeCore/src/main/royale/org/apache/royale/utils/OSUtils.as
to get the locale.
There is
aroyale/org/apache/royale/reflection/getDefinitionByName.as
If you can get the classes to compile cleanly, then we
can try seeing if the Royale compiler will do the
right thing with those classes.
HTH,
-Alex
*From: *Serkan Taş <[email protected]>
<mailto:[email protected]>
*Reply-To: *"[email protected]"
<mailto:[email protected]>
<[email protected]> <mailto:[email protected]>
*Date: *Friday, September 28, 2018 at 11:53 PM
*To: *"[email protected]"
<mailto:[email protected]>
<[email protected]> <mailto:[email protected]>
*Subject: *Re: Work on Emulation
Hi Alex,
I am going to work on ResourceManager and mapping of
spark to mx.
Have a nice weekend
Thanks.
Serkan
29.09.2018 09:48 tarihinde Alex Harui yazdı:
Hi Serkan,
That looks more like I would expect. I guess you
should have an emulation of resourceManager which
will make a lot of those errors go away. Feel
free to try to build it yourself. I also see that
you are using Operation and other parts of RPC.
We should probably emulate that as well.
And I see that you are using some Spark components
we haven’t emulated. For at least now, you might
be able to map to existing MX versions via the
manifest in SparkRoyale with the “lookupOnly”
attribute.
I won’t have much more time this weekend.
Later,
-Alex
*From: *Serkan Taş <[email protected]>
<mailto:[email protected]>
*Reply-To: *"[email protected]"
<mailto:[email protected]>
<[email protected]>
<mailto:[email protected]>
*Date: *Friday, September 28, 2018 at 11:15 PM
*To: *"[email protected]"
<mailto:[email protected]>
<[email protected]>
<mailto:[email protected]>
*Subject: *Re: Work on Emulation
Hi Alex,
After updating the path definitions i got the list
of errors :
https://drive.google.com/open?id=16U6awiZCoiunYWgfd_SWHwbppnAImhso
<https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdrive.google.com%2Fopen%3Fid%3D16U6awiZCoiunYWgfd_SWHwbppnAImhso&data=02%7C01%7Caharui%40adobe.com%7Ccdedbcf1c4c4478aa79508d627f3c751%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636740325312082599&sdata=N%2Bul0hK2rMA87vFmdpCSb6uukNErfHeiVKtnXNgrCwk%3D&reserved=0>
Thanks,
Serkan
29.09.2018 03:48 tarihinde Alex Harui yazdı:
Hi Serkan,
Your -library-path and -js-library-path need a
+= (not just “=”) otherwise you reset the list
of libraries on the path instead of appending
to it.
HTH,
-Alex
*From: *Serkan Taş
<[email protected]>
<mailto:[email protected]>
*Reply-To: *"[email protected]"
<mailto:[email protected]>
<[email protected]>
<mailto:[email protected]>
*Date: *Friday, September 28, 2018 at 2:03 PM
*To: *"[email protected]"
<mailto:[email protected]>
<[email protected]>
<mailto:[email protected]>
*Subject: *Re: Work on Emulation
Hi Alex,
I replaced the namespaces to
xmlns:mx="library://ns.apache.org/royale/mx"
xmlns:s="library://ns.apache.org/royale/spark"
compiled with options :
Using Royale Compiler codebase:
/home/pinara18/royale/apache-royale-0.9.4-bin-js-swf/royale-asjs/js/bin/../..
Using Royale SDK:
/home/pinara18/royale/apache-royale-0.9.4-bin-js-swf/royale-asjs/js/bin/../..
MXMLJSC
+royalelib=/home/pinara18/royale/apache-royale-0.9.4-bin-js-swf/royale-asjs/js/bin/../../frameworks
-sdk-js-lib=/home/pinara18/royale/apache-royale-0.9.4-bin-js-swf/royale-asjs/js/bin/../../frameworks/js/Royale/generated-sources
/home/pinara18/royale/pinaragroup/PinaraUI/src/com/likya/pinara/main/PinaraUI.mxml
-library-path=/home/pinara18/royale/pinaragroup/PinaraUI/libs
-js-library-path=/home/pinara18/royale/pinaragroup/PinaraUI/libs
-source-path=/home/pinara18/royale/pinaragroup/PinaraUI/src,/home/pinara18/royale/pinaragroup/PinaraUI/locale/{locale}
-services=/home/pinara18/royale/pinaragroup/Pinara-0.0.1/WEB-INF/flex/services-config.xml
-locale
en_US
tr_TR
-o
.PinaraUI.swf
and the result is :
Loading configuration:
/home/pinara18/royale/apache-royale-0.9.4-bin-js-swf/royale-asjs/frameworks/royale-config.xml
/home/pinara18/royale/pinaragroup/PinaraUI/src/com/likya/pinara/main/PinaraUI.mxml(2):
col: 1 Error: This tag could not be resolved
to an ActionScript class. It will be ignored.
<s:Application
xmlns:fx="http://ns.adobe.com/mxml/2009"
<https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fns.adobe.com%2Fmxml%2F2009&data=02%7C01%7Caharui%40adobe.com%7Ccdedbcf1c4c4478aa79508d627f3c751%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636740325312082599&sdata=0B20wSPey7hvYCZEsYdObXG3leX%2FKoLnjKugWAUWi6g%3D&reserved=0>
^
/home/pinara18/royale/pinaragroup/PinaraUI/src/com/likya/pinara/main/PinaraUI.mxml(2):
col: 1 Error: This tag could not be resolved
to an ActionScript class. It will be ignored.
<s:Application
xmlns:fx="http://ns.adobe.com/mxml/2009"
<https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fns.adobe.com%2Fmxml%2F2009&data=02%7C01%7Caharui%40adobe.com%7Ccdedbcf1c4c4478aa79508d627f3c751%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636740325312092604&sdata=fKiGHpehT5Au0XDYGKYLXQvanhlM6M3WSF5PYJy0G9U%3D&reserved=0>
^
3.778434625 seconds
I tried changing the application to
<mx:Application> and <js:Application> got the
similar errors.
27.09.2018 22:49 tarihinde Serkan Taş yazdı:
Ok, I'll check it and replace.