Alex, thank you for your detailed analysis of the error log.
I agree with you that the best strategy is to prevent renaming of
public/exports used by the module. I have tried different options to
prevent renaming
It appears none of them stops this. From my observation, it appears that
this default options below
-export-public-symbols=true;-prevent-rename-public-symbols=true;-prevent-rename-public-instance-accessors=true;
Only seem to affect the main application (main module) but have no effect
on the other modules even though I ensured they were applied in
their respective module pom. I came to this conclusion when I decided to
turn set -prevent-rename-public-symbols=false
I noticed that I got the same error but this time around in the main module.
Uncaught TypeError: this.rb[(intermediate value).Kd(...)] is not a function
at HN.iI.send (FrontEnd.js:970)
at nI.EH.Ea (FrontEnd.js:880)
at ON.q6 (FrontEnd.js:1815)
at TN.L2 (FrontEnd.js:2034)
at hF.Xf (FrontEnd.js:2063)
at lF.kb (FrontEnd.js:1233)
at lF.Vf (FrontEnd.js:1224)
at cF.O (FrontEnd.js:659)
at cF.M.w (FrontEnd.js:661)
at gQ.mA.M (FrontEnd.js:241)
FrontEnd.js maps to FrontEnd.as in my application and is the entry point of
the application. This confirms that -prevent-rename-public-symbols=false has
an effect on the main module but no effect on other modules even though
they were applied in the respective module pom's.
Maybe there are other options I am overlooking.
On Sat, Jan 1, 2022 at 9:31 AM Alex Harui <[email protected]> wrote:
> In case it helps, the minification (variable renaming) mechanism is
> essentially guaranteed to cause problems in modules. The Closure Compiler
> basically takes variables, sees if it is worth renaming it, then gives it
> the name ‘a’, then ‘b’, and so-on, (it skips a few letters, IIRC), then
> moves on to ‘aa’, and ‘ab’, etc. The odds that the compiler will encounter
> the same variables in the same order when compiling an app and one or more
> modules is close to zero.
>
>
>
> I did some work to try to dump the mapping of the renamed variables in the
> main app and use that when compiling the modules. It was working for a
> while, then some code was added to the framework that started fooling the
> Closure Compiler. I spent some time trying to fix the Closure Compiler,
> but ran out of time. Meanwhile, Josh was adding more control over renaming
> so I moved on to other things.
>
>
>
> IMO, the best strategy to take would be to try to control what gets
> renamed. All public/exports from the app that are used by the module
> should not be renamed. That will definitely make the app and modules
> bigger, but unless the Closure Compiler folks become interested in
> runtime-loaded modules, it is challenging for the Royale compiler to allow
> aggressive renaming.
>
>
>
> I think what is going on with the exceptions below is that exporting
> doesn’t really prevent renaming. It only sets up an externally-visible
> alias to a renamed variable. Especially for static members. So it isn’t
> sufficient to export public variables, the code within the module must not
> let the Closure Compiler think that the intra-module references can be
> renamed, in this case, from SimpleCSSValuesImpl to QI
>
>
>
> I don’t know the renaming options we’ve added to the Royale Compiler, so I
> don’t know if there is an option to control that. I think there is a way
> to convince the Closure Compiler to not rename SimpleCSSValuesImpl because
> I’ve seen other class names not get renamed.
>
>
>
> HTH,
>
> -Alex
>
>
>
> *From: *Roman Isitua <[email protected]>
> *Reply-To: *"[email protected]" <[email protected]>
> *Date: *Friday, December 31, 2021 at 10:42 AM
> *To: *"[email protected]" <[email protected]>
> *Subject: *Re: Compiling Modules (was Re: Load time is very slow)
>
>
>
> I have tested on both. The error log is the same.
>
>
>
> I don't understand your second question. Kindly clarify ?
>
>
>
>
>
> I followed strictly the approach used for loading modules here in this
> example.
>
> This is the only method I know for loading modules. If there is another
> method please share.
>
>
>
>
>
>
> https://royale.apache.org/dividing-an-apache-royale-application-with-modules/
> <https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Froyale.apache.org%2Fdividing-an-apache-royale-application-with-modules%2F&data=04%7C01%7Caharui%40adobe.com%7C37895fe9f5244b9170fa08d9cc8d5b56%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637765729789686368%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=8RPrsLji8JNT15c9yCv1IuJiy8A7%2BKQrR4k3pDluTOg%3D&reserved=0>
>
>
>
> On Fri, 31 Dec 2021, 19:14 Maria Jose Esteve, <[email protected]> wrote:
>
> @Roman, which branch did you compile the SDK from, ROYALE_INTERFACE_INFO
> or develop?
>
> Could you pass the Overview.mxml view to the main application? (to rule
> it out)
>
>
>
> Hiedra
>
>
>
> *De:* Roman Isitua <[email protected]>
> *Enviado el:* viernes, 31 de diciembre de 2021 17:56
> *Para:* [email protected]
> *Asunto:* Re: Compiling Modules (was Re: Load time is very slow)
>
>
>
> I have tried tracing where the errors are happening whenever I test the
> release version
>
> Uncaught TypeError: Ql.valuesImpl.init is not a function
> at Hr.Cr.um (Overview.js:846)
> at Function.ep.generateMXMLProperties (Overview.js:795)
> at Hr.Sp.generateMXMLAttributes (Overview.js:599)
> at new Hr (Overview.js:864)
> at PN.M.loadHandler (FrontEnd.js:2042)
> 9Overview.js:173 Uncaught TypeError: this.createElement is not a function
> at $B.V (Overview.js:173)
> at new $B (FrontEnd.js:2430)
> at EP.convert (FrontEnd.js:2430)
> at Zy (FrontEnd.js:261)
> at HTMLAnchorElement.Uy (FrontEnd.js:121)
> at HTMLAnchorElement.Sy.b (FrontEnd.js:117)
>
>
>
>
>
> The highlighted code in red is declared as follows in the Overview.mxml
> (maven module)
>
>
>
> <j:valuesImpl>
>
> <js:SimpleCSSValuesImpl/>
>
> </j:valuesImpl>
>
>
>
> The j:valuesImpl points to the following code in jewel Module.js
>
>
>
> /**
> * @nocollapse
> * @export
> * @type {org.apache.royale.core.IValuesImpl}
> */
> org.apache.royale.jewel.Module.prototype.valuesImpl;
>
>
> org.apache.royale.jewel.Module.prototype.set__valuesImpl = function(value)
> {
> org.apache.royale.core.ValuesManager.valuesImpl.init(this);
> };
>
>
>
>
>
> it appears this function is improperly renamed and whenever the app tries
> to load the module is not able to recognise it as a function.
>
>
>
> The same issue of improper function renaming is happening in the second
> error as well
>
>
>
> 9Overview.js:173 Uncaught TypeError: this.createElement is not a function
>
>
>
>
>
> On Thu, Dec 30, 2021 at 10:42 PM Roman Isitua <[email protected]>
> wrote:
>
>
>
> I have applied the js compiler option as follows
>
>
>
>
> <additionalCompilerOptions>-source-map=false;-compiler.show-binding-warnings=false;-js-default-initializers=true;-js-dynamic-access-unknown-members=true;
> -js-compiler-option=--variable_map_output_file
> gccvars.txt;-js-compiler-option+=--property_map_output_file gccprops.txt
> </additionalCompilerOptions>
>
>
>
>
>
> I get the same error as before when attempting to launch the jewel module.
>
>
>
>
>
>
>
> Same error trace.
>
>
>
> Uncaught TypeError: cm.valuesImpl.init is not a function
> at Rr.Mr.yl (Overview.js:786)
> at Function.iq.generateMXMLProperties (Overview.js:736)
> at Rr.hq.generateMXMLAttributes (Overview.js:546)
> at new Rr (Overview.js:804)
> at LN.J.loadHandler (FrontEnd.js:1967)
> FrontEnd.js:1640 Uncaught TypeError: M is not a function
> at oM.J.handleMouseOut (FrontEnd.js:1640)
> at Function.ny [as googFireListener] (FrontEnd.js:123)
> at ny (FrontEnd.js:248)
> at HTMLAnchorElement.iy (FrontEnd.js:125)
> at HTMLAnchorElement.b (FrontEnd.js:121)
> FrontEnd.js:1640 Uncaught TypeError: M is not a function
> at oM.J.handleMouseOver (FrontEnd.js:1640)
> at Function.ny [as googFireListener] (FrontEnd.js:123)
> at ny (FrontEnd.js:248)
> at HTMLAnchorElement.iy (FrontEnd.js:125)
> at HTMLAnchorElement.b (FrontEnd.js:121)
> FrontEnd.js:1640 Uncaught TypeError: M is not a function
> at oM.J.handleMouseOut (FrontEnd.js:1640)
> at Function.ny [as googFireListener] (FrontEnd.js:123)
> at ny (FrontEnd.js:248)
> at HTMLAnchorElement.iy (FrontEnd.js:125)
> at HTMLAnchorElement.b (FrontEnd.js:121)
> FrontEnd.js:1640 Uncaught TypeError: M is not a function
> at oM.J.handleMouseOver (FrontEnd.js:1640)
> at Function.ny [as googFireListener] (FrontEnd.js:123)
> at ny (FrontEnd.js:248)
> at HTMLAnchorElement.iy (FrontEnd.js:125)
> at HTMLAnchorElement.b (FrontEnd.js:121)
> FrontEnd.js:1640 Uncaught TypeError: M is not a function
> at oM.J.handleMouseOut (FrontEnd.js:1640)
> at Function.ny [as googFireListener] (FrontEnd.js:123)
> at ny (FrontEnd.js:248)
> at HTMLAnchorElement.iy (FrontEnd.js:125)
> at HTMLAnchorElement.b (FrontEnd.js:121)
> FrontEnd.js:1640 Uncaught TypeError: M is not a function
> at oM.J.handleMouseOver (FrontEnd.js:1640)
> at Function.ny [as googFireListener] (FrontEnd.js:123)
> at ny (FrontEnd.js:248)
> at HTMLAnchorElement.iy (FrontEnd.js:125)
> at HTMLAnchorElement.b (FrontEnd.js:121)
> FrontEnd.js:1640 Uncaught TypeError: M is not a function
> at oM.J.handleMouseOut (FrontEnd.js:1640)
> at Function.ny [as googFireListener] (FrontEnd.js:123)
> at ny (FrontEnd.js:248)
> at HTMLAnchorElement.iy (FrontEnd.js:125)
> at HTMLAnchorElement.b (FrontEnd.js:121)
> 3Overview.js:56 Uncaught TypeError: Cannot read properties of undefined
> (reading 'prototype')
> at P (Overview.js:56)
> at SG.convert (FrontEnd.js:904)
> at ny (FrontEnd.js:248)
> at HTMLElement.iy (FrontEnd.js:125)
> at HTMLElement.b (FrontEnd.js:121)
>
>
>
> On Thu, Dec 30, 2021 at 6:56 PM Harbs <[email protected]> wrote:
>
> 1. I’d get rid of the agressive minification options. It will likely cause
> issues. If you get it to work without those options, you can try to add
> them back in and see if it still works.
>
> 2. You seem to be missing the compiler options explained here:
> https://apache.github.io/royale-docs/features/modules#minification
> <https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fapache.github.io%2Froyale-docs%2Ffeatures%2Fmodules%23minification&data=04%7C01%7Caharui%40adobe.com%7C37895fe9f5244b9170fa08d9cc8d5b56%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637765729789686368%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=FecB7cs2lF4nnYR6Y2QhjeYamL1GEg1g0M%2FkmIAz4Jw%3D&reserved=0>
>
>
>
> For a pom, it would look something like this (adjust your paths to match
> your setup):
>
>
>
> Main app:
>
> <additionalCompilerOptions>-source-map=true;-js-compiler-option=--variable_map_output_file
> gccvars.txt;-js-compiler-option+=--property_map_output_file
> gccprops.txt</additionalCompilerOptions>
>
>
>
> Module:
>
> <additionalCompilerOptions>-source-map=true;-js-compiler-option=--variable_map_input_file
> ../../../../../MainApp/bin/js-release/gccvars.txt;-js-compiler-option+=--property_map_input_file
> ../../../../../MainApp/bin/js-release/gccprops.txt</additionalCompilerOptions>
>
>
>
> On Dec 30, 2021, at 7:43 PM, Roman Isitua <[email protected]> wrote:
>
>
>
> I think it will be better for me to share my pom's that way you can see
> all the compilation options used. The pom for the parent (FmClient2), the
> MainApp and one module (Overview) have been attached to this email.
>
>
>
>
>
> On Thu, Dec 30, 2021 at 6:22 PM Harbs <[email protected]> wrote:
>
> Roman, can you share your full compiler options?
>
>
>
> I decided to remove the below settings completely
> -export-public-symbols=false
> -prevent-rename-protected-symbols=false
> -prevent-rename-public-symbols=false
> -prevent-rename-internal-symbols=false
>
>
> I enabled the below settings
>
> -js-dynamic-access-unknown-members=true;
> -js-default-initializers=true
>
>
> The release version starts up
>
>
>
> Hiedra, that’s great!
>
>
>
> On Dec 30, 2021, at 7:15 PM, Roman Isitua <[email protected]> wrote:
>
>
>
>
>
> Yes. I am testing with the sdk compiled on branch ROYALE_INTERFACE_INFO
>
>
>
> On Thu, Dec 30, 2021 at 6:10 PM Maria Jose Esteve <[email protected]>
> wrote:
>
> Roman, are you testing with the SDK compiled from the Harb branches,
> ROYALE_INTERFACE_INFO, or from develop?
>
>
>
> Hiedra
>
>
>
> *De:* Roman Isitua <[email protected]>
> *Enviado el:* jueves, 30 de diciembre de 2021 16:52
> *Para:* [email protected]
> *Asunto:* Re: Compiling Modules (was Re: Load time is very slow)
>
>
>
> I decided to remove the below settings completely
> -export-public-symbols=false
> -prevent-rename-protected-symbols=false
> -prevent-rename-public-symbols=false
> -prevent-rename-internal-symbols=false
>
>
> I enabled the below settings
>
> -js-dynamic-access-unknown-members=true;
> -js-default-initializers=true
>
>
> The release version starts up
>
>
>
>
>
>
>
> <image001.png>
>
>
>
>
>
> <image002.png>
>
>
>
> However, the moment I launch a module. I get the below error
>
>
>
> <image003.png>
>
>
>
>
>
> It appears to be failing when I launch the "*Overview*" module
> (by clicking the Overview side menu).
>
>
>
> So my current observation is that by retaining only two settings
>
>
>
> -js-dynamic-access-unknown-members=true;
> -js-default-initializers=true
>
>
>
> The release module starts up but the app fails whenever I launch a module.
>
>
>
> The smallest size settings in the documentation do not work. The app does
> not start up.
>
>
>
> -export-public-symbols=false
> -prevent-rename-protected-symbols=false
> -prevent-rename-public-symbols=false
> -prevent-rename-internal-symbols=false
>
>
>
>
>
>
>
> The error trace is below
>
>
>
>
>
> Uncaught TypeError: cm.valuesImpl.init is not a function
> at Wr.Rr.pl
> <https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwr.rr.pl%2F&data=04%7C01%7Caharui%40adobe.com%7C37895fe9f5244b9170fa08d9cc8d5b56%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637765729789686368%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=Fh9M3Q1O8NyfELxtrTrpaSyHEUPJnm1J4EMGNPLcO58%3D&reserved=0>
> (Overview.js:792)
> at Function.mq.generateMXMLProperties (Overview.js:743)
> at Wr.lq.generateMXMLAttributes (Overview.js:551)
> at new Wr (Overview.js:810)
> at QN.J.loadHandler (FrontEnd.js:1978)
> 3Overview.js:56 Uncaught TypeError: Cannot read properties of undefined
> (reading 'prototype')
> at P (Overview.js:56)
> at VG.convert (FrontEnd.js:910)
> at ny (FrontEnd.js:250)
> at HTMLElement.iy (FrontEnd.js:125)
> at HTMLElement.b (FrontEnd.js:121)
> FrontEnd.js:1649 Uncaught TypeError: M is not a function
> at sM.J.handleMouseOut (FrontEnd.js:1649)
> at Function.ny [as googFireListener] (FrontEnd.js:123)
> at ny (FrontEnd.js:250)
> at HTMLAnchorElement.iy (FrontEnd.js:125)
> at HTMLAnchorElement.b (FrontEnd.js:121)
> FrontEnd.js:1649 Uncaught TypeError: M is not a function
> at sM.J.handleMouseOver (FrontEnd.js:1649)
> at Function.ny [as googFireListener] (FrontEnd.js:123)
> at ny (FrontEnd.js:250)
> at HTMLAnchorElement.iy (FrontEnd.js:125)
> at HTMLAnchorElement.b (FrontEnd.js:121)
> J.handleMouseOver @ FrontEnd.js:1649
> ny @ FrontEnd.js:123
> ny @ FrontEnd.js:250
> iy @ FrontEnd.js:125
> b @ FrontEnd.js:121
> FrontEnd.js:1649 Uncaught TypeError: M is not a function
> at sM.J.handleMouseOut (FrontEnd.js:1649)
> at Function.ny [as googFireListener] (FrontEnd.js:123)
> at ny (FrontEnd.js:250)
> at HTMLAnchorElement.iy (FrontEnd.js:125)
> at HTMLAnchorElement.b (FrontEnd.js:121)
> J.handleMouseOut @ FrontEnd.js:1649
> ny @ FrontEnd.js:123
> ny @ FrontEnd.js:250
> iy @ FrontEnd.js:125
> b @ FrontEnd.js:121
> FrontEnd.js:1649 Uncaught TypeError: M is not a function
> at sM.J.handleMouseOver (FrontEnd.js:1649)
> at Function.ny [as googFireListener] (FrontEnd.js:123)
> at ny (FrontEnd.js:250)
> at HTMLAnchorElement.iy (FrontEnd.js:125)
> at HTMLAnchorElement.b (FrontEnd.js:121)
> J.handleMouseOver @ FrontEnd.js:1649
> ny @ FrontEnd.js:123
> ny @ FrontEnd.js:250
> iy @ FrontEnd.js:125
> b @ FrontEnd.js:121
> FrontEnd.js:1649 Uncaught TypeError: M is not a function
> at sM.J.handleMouseOut (FrontEnd.js:1649)
> at Function.ny [as googFireListener] (FrontEnd.js:123)
> at ny (FrontEnd.js:250)
> at HTMLAnchorElement.iy (FrontEnd.js:125)
> at HTMLAnchorElement.b (FrontEnd.js:121)
> J.handleMouseOut @ FrontEnd.js:1649
> ny @ FrontEnd.js:123
> ny @ FrontEnd.js:250
> iy @ FrontEnd.js:125
> b @ FrontEnd.js:121
> FrontEnd.js:1649 Uncaught TypeError: M is not a function
> at sM.J.handleMouseOver (FrontEnd.js:1649)
> at Function.ny [as googFireListener] (FrontEnd.js:123)
> at ny (FrontEnd.js:250)
> at HTMLAnchorElement.iy (FrontEnd.js:125)
> at HTMLAnchorElement.b (FrontEnd.js:121)
> J.handleMouseOver @ FrontEnd.js:1649
> ny @ FrontEnd.js:123
> ny @ FrontEnd.js:250
> iy @ FrontEnd.js:125
> b @ FrontEnd.js:121
> FrontEnd.js:1649 Uncaught TypeError: M is not a function
> at sM.J.handleMouseOut (FrontEnd.js:1649)
> at Function.ny [as googFireListener] (FrontEnd.js:123)
> at ny (FrontEnd.js:250)
> at HTMLAnchorElement.iy (FrontEnd.js:125)
> at HTMLAnchorElement.b (FrontEnd.js:121)
> J.handleMouseOut @ FrontEnd.js:1649
> ny @ FrontEnd.js:123
> ny @ FrontEnd.js:250
> iy @ FrontEnd.js:125
> b @ FrontEnd.js:121
> FrontEnd.js:1649 Uncaught TypeError: M is not a function
> at sM.J.handleMouseOver (FrontEnd.js:1649)
> at Function.ny [as googFireListener] (FrontEnd.js:123)
> at ny (FrontEnd.js:250)
> at HTMLAnchorElement.iy (FrontEnd.js:125)
> at HTMLAnchorElement.b (FrontEnd.js:121)
> J.handleMouseOver @ FrontEnd.js:1649
> ny @ FrontEnd.js:123
> ny @ FrontEnd.js:250
> iy @ FrontEnd.js:125
> b @ FrontEnd.js:121
> FrontEnd.js:1649 Uncaught TypeError: M is not a function
> at sM.J.handleMouseOut (FrontEnd.js:1649)
> at Function.ny [as googFireListener] (FrontEnd.js:123)
> at ny (FrontEnd.js:250)
> at HTMLAnchorElement.iy (FrontEnd.js:125)
> at HTMLAnchorElement.b (FrontEnd.js:121)
> J.handleMouseOut @ FrontEnd.js:1649
> ny @ FrontEnd.js:123
> ny @ FrontEnd.js:250
> iy @ FrontEnd.js:125
> b @ FrontEnd.js:121
>
>
>
> On Thu, Dec 30, 2021 at 4:32 PM Roman Isitua <[email protected]>
> wrote:
>
> I get the same error even when I set
> the -js-dynamic-access-unknown-members=true;
>
>
>
> On Thu, Dec 30, 2021 at 4:24 PM Roman Isitua <[email protected]>
> wrote:
>
>
>
> Using the below settings,
>
> -export-public-symbols=false
> -prevent-rename-protected-symbols=false
> -prevent-rename-public-symbols=false
> -prevent-rename-internal-symbols=false
> -js-dynamic-access-unknown-members=false;
>
> -js-default-initializers=true
>
>
> Debug version runs fine. The release version does not start up
>
> <image004.png>
>
>
> I get the below errors
>
> Uncaught TypeError: Cannot read properties of undefined (reading 'apply')
> at KE.hm (FrontEnd.js:1600)
> at XE.M.Fb (FrontEnd.js:943)
> at XE.M.uh (FrontEnd.js:937)
> at FE.M.na
> <https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Ffe.m.na%2F&data=04%7C01%7Caharui%40adobe.com%7C37895fe9f5244b9170fa08d9cc8d5b56%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637765729789686368%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=YmNsQLXa7hYCZzNh95RO0vFW0XcOV9LUzzoU4QP3Z9c%3D&reserved=0>
> (FrontEnd.js:497)
> at FE.M.v (FrontEnd.js:497)
> at dR.M.S (FrontEnd.js:213)
> at dR.Nz.S (FrontEnd.js:217)
> at dR.M.start (FrontEnd.js:1396)
> at index.html:45
> :8080/favicon.ico:1 Failed to load resource: the server responded with a
> status of 404 (Not Found)
>
>
>
>
>
> FrontEnd.js is the start up class for the application. i.e. It implements
> the Jewel application class.
>
>
>
>
>
>
>
> On Thu, Dec 30, 2021 at 3:19 PM Roman Isitua <[email protected]>
> wrote:
>
> Hi Harb,
>
>
>
> Thanks for your response. I have gone through the documentation. I will do
> my test again starting with the smallest size option and share my findings.
>
>
>
> Regards,
>
>
>
> On Thu, Dec 30, 2021 at 10:59 AM Harbs <[email protected]> wrote:
>
> Sorry for my deal in responding.
>
>
>
> Let’s take a step back.
>
>
>
> I’m not sure how you are compiling your modules. I just added some content
> to the module documentation page which explains what compiler options you
> need while compiling modules. (It still needs some editing.)
> https://apache.github.io/royale-docs/features/modules#minification
> <https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fapache.github.io%2Froyale-docs%2Ffeatures%2Fmodules%23minification&data=04%7C01%7Caharui%40adobe.com%7C37895fe9f5244b9170fa08d9cc8d5b56%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637765729789686368%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=FecB7cs2lF4nnYR6Y2QhjeYamL1GEg1g0M%2FkmIAz4Jw%3D&reserved=0>
>
>
>
> Are you using those options?
>
>
>
> On Dec 29, 2021, at 2:19 AM, Maria Jose Esteve <[email protected]> wrote:
>
>
>
> Hi, Let me join you with these tests....
>
>
>
> @Harb, I have compiled the SDK from this branch,
> feature/ROYALE_INTERFACE_INFO,
> and when running in debug I get this error:
>
>
>
> Message on the PURGE CONSOLE is displayed:
>
>
>
> Cannot convert org.apache.royale.reflection.beads.ClassAliasBead to IBead
>
>
>
> Message in the IDE Window:
>
>
>
> Se produjo una excepción: TypeError: Cannot convert [object Object] to
> IBead
>
> at App.org.apache.royale.core.ElementWrapper.addBead (
> http://localhost:8080/WNetSuitePlus/org/apache/royale/core/ElementWrapper.js:114:11
> )
>
> at App.org.apache.royale.core.HTMLElementWrapper.addBead (
> http://localhost:8080/WNetSuitePlus/org/apache/royale/core/HTMLElementWrapper.js:43:65
> )
>
> at App.org.apache.royale.jewel.Application.start (
> http://localhost:8080/WNetSuitePlus/org/apache/royale/jewel/Application.js:246:10
> )
>
> at App.App_loadXML (http://localhost:8080/WNetSuitePlus/App.js:1681:25
> )
>
> at
> org.apache.royale.net.URLLoader.org.apache.royale.events.EventDispatcher.fireListeners
> (
> http://localhost:8080/WNetSuitePlus/org/apache/royale/events/EventDispatcher.js:97:23
> )
>
> at Function.goog.events.EventTarget.dispatchEventInternal_ (
> http://localhost:8080/WNetSuitePlus/library/closure/goog/events/eventtarget.js:381:26
> )
>
> at
> org.apache.royale.net.URLLoader.org.apache.royale.events.EventDispatcher.dispatchEvent
> (
> http://localhost:8080/WNetSuitePlus/org/apache/royale/events/EventDispatcher.js:72:37
> )
>
> at org.apache.royale.net.URLLoader.jsEventHandler (
> http://localhost:8080/WNetSuitePlus/org/apache/royale/net/URLLoader.js:169:12
> )
>
>
>
> Call stack:
>
>
>
> <image003.png>
>
>
>
> [INFO] Executing MXMLC in tool group Royale with args: [
>
>
> -load-config=D:\Develop_Royale\Projects\WinPlusWebSuite\royaleapp\royalelogin\target\compile-app-config.xml,
>
> -js-default-initializers=true,
>
> -source-map=true,
>
> -js-dynamic-access-unknown-members=true,
>
>
> -keep-as3-metadata+=Inject,Dispatcher,EventHandler,Event,PostConstruct,PreDestroy,ViewAdded,ViewRemoved,Bindable,Transient,
>
> -keep-code-with-metadata=Inject,
>
> -show-binding-warnings=false,
>
> -export-public-symbols=false,
>
> -prevent-rename-protected-symbols=false,
>
> -prevent-rename-internal-symbols=false,
>
>
> -js-output=D:\Develop_Royale\Projects\WinPlusWebSuite\royaleapp\royalelogin\target\javascript,
>
> -compiler.targets=JSRoyale,
>
>
> D:\Develop_Royale\Projects\WinPlusWebSuite\royaleapp\royalelogin\src\main\royale\App.mxml
>
>
>
>
>
> The release execution does not change, the error is the same as before
> (SDK compilation from the develop branch):
>
>
>
> Se produjo una excepción: ReferenceError: Error #1065: Variable
> com.iest.winplusweb.models.MasterConfigSystemModel is not defined.
>
> at yR (http://localhost:8080/WPWebRelease/App.js:3605:1771)
>
> at Mya (http://localhost:8080/WPWebRelease/App.js:3343:365)
>
> at AR.J.usa (http://localhost:8080/WPWebRelease/App.js:434:441)
>
> at GFa.J.fromTypeDefinition (
> http://localhost:8080/WPWebRelease/App.js:5706:139)
>
> at Function.YT.getTypeDescriptor (
> http://localhost:8080/WPWebRelease/App.js:4570:820)
>
> at Function.fX.constructBean (
> http://localhost:8080/WPWebRelease/App.js:2336:472)
>
> at r$.J.initialize (http://localhost:8080/WPWebRelease/App.js:5041:66)
>
> at OW.J.init (http://localhost:8080/WPWebRelease/App.js:950:452)
>
> at OW.J.u (http://localhost:8080/WPWebRelease/App.js:951:454)
>
> at $$.J.addBead (http://localhost:8080/WPWebRelease/App.js:357:549)
>
>
>
> The main difference:
>
> project compiled from "SDK-develop" runs fine in js-debug and gives error
> in js-release and, compiled from "SDK-ROYALE_INTERFACE_INFO" does not
> launch because of conversion error.
>
>
>
> Hiedra
>
>
>
> *De:* Roman Isitua <[email protected]>
> *Enviado el:* martes, 28 de diciembre de 2021 15:55
> *Para:* [email protected]
> *Asunto:* Re: Load time is very slow
>
>
>
> @Harb
>
>
>
> I have checked out the feature/ROYALE_INTERFACE_INFO branch and compiled
> asjs and compiler. I have rebuilt my application with modules in release
> mode.
>
>
>
> I get the following error when I attempt to launch a module
>
>
>
>
>
> <image001.png>
>
>
>
>
>
> The module loads fine in debug mode
>
>
>
> <image002.png>
>
>
>
>
>
> Snippets of the log
>
>
>
> Overview.js:786 Uncaught TypeError: cm.valuesImpl.init is not a function
> at Rr.Mr.yl (Overview.js:786)
> at Function.iq.generateMXMLProperties (Overview.js:736)
> at Rr.hq.generateMXMLAttributes (Overview.js:546)
> at new Rr (Overview.js:804)
> at LN.J.loadHandler (FrontEnd.js:1967)
> Mr.yl @ Overview.js:786
> iq.generateMXMLProperties @ Overview.js:736
> hq.generateMXMLAttributes @ Overview.js:546
> Rr @ Overview.js:804
> J.loadHandler @ FrontEnd.js:1967
> load (async)
> LN.loadModule @ FrontEnd.js:1965
> dN.loadModule @ FrontEnd.js:2406
> LD.Un @ FrontEnd.js:1809
> ny @ FrontEnd.js:123
> ny @ FrontEnd.js:248
> iy @ FrontEnd.js:125
> b @ FrontEnd.js:121
>
>
>
>
>
> I have attached the full log to this email.
>
>
>
>
>
>
>
>
>
> On Tue, Dec 28, 2021 at 2:51 PM Roman Isitua <[email protected]>
> wrote:
>
> Hi Maria,
>
>
>
> Prior to starting this mail discussion "Load time is very slow". I can
> confirm I have only been compiling in debug mode. My target\javascript\bin\
> only had js-debug. It was after I upgraded my royale sdk from 0.9.7 to
> 0.9.8 that I compiled in release mode.
>
>
>
>
>
>
>
> On Tue, Dec 28, 2021 at 2:24 PM Maria Jose Esteve <[email protected]>
> wrote:
>
> Hi, @Roman, I think you are doing a double compile can it be? My times are
> the same as yours and I always compile in debug and release.
>
>
>
> Look at your target folder " target\javascript\bin\" and if you have two
> folders: js-debug and js-release you are compiling always double.
>
>
>
> In my case, the architecture of my project as well as the Maven
> compilation files (pom.xml) were provided by an external company (we didn't
> know anything about Maven or Royale at that time) and I understand that
> this formula was chosen to show us the options we had.
>
>
>
> A priori and without doing any test as Harb has done, I think that
> modularity gives us the advantage of compiling parts of the code once and
> not compiling them again if they are not modified. So far WITH MY
> COMPILATION TIMES, sometimes more than 1 minute, this is fundamental. But
> of course, now we have the problem of minification of the modules and it is
> really a serious problem because it is impossible for us to deploy in
> production.
>
>
>
> I will try to separate the compiación realese with a profile and if I
> succeed I will pass it to you @Roman.
>
>
>
> @Harb what do you mean by compiling the ROYALE_INTERFACE_INFO branch?
>
>
>
> Hiedra
>
>
>
> *De:* Harbs <[email protected]>
> *Enviado el:* lunes, 27 de diciembre de 2021 18:32
> *Para:* [email protected]
> *Asunto:* Re: Load time is very slow
>
>
>
> That doesn’t sound right.
>
>
>
> Are you sure you’re compiling debug and not release? That sounds like
> release build times.
>
>
>
> On Dec 27, 2021, at 3:31 PM, Roman Isitua <[email protected]> wrote:
>
>
>
> Wow ! You are using a workstation with a bleeding edge processor.
>
>
>
> I just compiled my app now. It took 44 seconds. (First compilation after
> ide start up.) Subsequently compilations are usually 19s to 20s.
>
>
>
> My application code base is very very small compared to yours. As we
> continue to add functionality, I expect the compile times to rise.
>
>
>
>
>
>
>
>
>
> <MainApp_pom.xml><Overview_pom.xml><fm_client2_pom.xml>
>
>
>
>