Hi Alex,
Thank you for the resourcemanager.
This is the fork of the project : https://github.com/nihavend/as3corelib
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]>
*Reply-To: *"[email protected]" <[email protected]>
*Date: *Monday, October 1, 2018 at 3:25 PM
*To: *"[email protected]" <[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%7C31f0f3ea00cf446844e508d627ecc07c%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636740295141197296&sdata=7NhAR12xSuuU9r%2FEw4iNMYr6W4CpwGXgW0YrNZimdYo%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%7C31f0f3ea00cf446844e508d627ecc07c%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636740295141197296&sdata=%2BgnjWg4urfLEzV%2FCwo6jdpMhwNI4cca9IZYN8%2BPW3vU%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%7C31f0f3ea00cf446844e508d627ecc07c%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636740295141197296&sdata=7NhAR12xSuuU9r%2FEw4iNMYr6W4CpwGXgW0YrNZimdYo%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%7C31f0f3ea00cf446844e508d627ecc07c%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636740295141197296&sdata=MqMmB3UlswEUjGk6bOlUbkX8F50kLdQa0oXi43yVULY%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%7C31f0f3ea00cf446844e508d627ecc07c%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636740295141197296&sdata=bZPSBrbr0tXIJJGPhaqTV1BgA6myp0h6lS2ezijBnJk%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%7C31f0f3ea00cf446844e508d627ecc07c%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636740295141197296&sdata=bZPSBrbr0tXIJJGPhaqTV1BgA6myp0h6lS2ezijBnJk%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.