I see that on the server I'm able to run TourDeJewel. [1] I will commit now
one thing and see whether my code will be runnable.

[1]
https://builds.apache.org/job/Royale-asjs/1954/artifact/examples/royale/TourDeJewel/target/javascript/bin/js-debug/index.html

wt., 16 lip 2019 o 16:33 Piotr Zarzycki <[email protected]>
napisał(a):

> Hi Carlos,
>
> Did you check whether you can run TourDeJewel ? I have build SDK using
> Maven and than TourDeJewel and I couldn't run application. I'm getting [1].
> When I build HelloWorld and run I got the same.
>
> [1] https://ibb.co/NKjNBMJ
>
> Thanks,
> Piotr
>
> wt., 16 lip 2019 o 16:10 Carlos Rovira <[email protected]>
> napisał(a):
>
>> Hi,
>>
>> thanks Josh for the update!
>> One question about it: should separate the @extern classes in Jewel
>> (dialogPollyfill and hljs classes) or with this change now can live in
>> that
>> library?
>> Just to know it, although for other organizational purposes I think it
>> should be probably separated.
>>
>> @Greg Dove <[email protected]>  just merged locally this changes and
>> rebuild Crux branch and seems some changes are needed there when building
>> ANT SDK. I probably can't do changes to try to solve this before you reach
>> the problem since I'm busy with work things. Just copy here my log so it
>> could be of help for you
>>
>> I suppose is the need to change in this branch from library-path to
>> external-library-path
>>
>>
>> compile-swf:
>>
>>      [echo] Compiling libs/Crux.swc
>>
>>      [echo] ROYALE_HOME: /Users/carlosrovira/Dev/Royale/Source/royale-asjs
>>
>>      [echo] ROYALE_SWF_COMPILER_HOME:
>> /Users/carlosrovira/Dev/Royale/Source/royale-asjs
>>
>>      [echo] ROYALE_COMPILER_HOME:
>> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/js
>>
>>      [java] args:
>>
>>      [java]
>> +royalelib=/Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks
>>
>>      [java] +playerglobal.version=11.1
>>
>>      [java] +env.AIR_HOME=/Users/carlosrovira/Dev/Air/Sdks/AIR_SDK_25
>>
>>      [java] -compiler.strict-xml=true
>>
>>      [java] -compiler.targets=SWF,JSRoyale
>>
>>      [java] -metadata.date=07/16/19 12:12 +0200
>>
>>      [java] -metadata.dateFormat=MM/dd/yy HH:mm Z
>>
>>      [java] -swf-debugfile-alias=/org/apache/royale/0.9.6
>>
>>      [java]
>>
>> -output=/Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/projects/Crux/target/Crux.swc
>>
>>      [java]
>>
>> -load-config=/Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/projects/Crux/src/main/config/compile-swf-config.xml
>>
>>      [java]
>>
>> -js-load-config=/Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js-config.xml
>>
>>      [java]
>>
>> -js-load-config+=/Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/projects/Crux/../../js/projects/CruxJS/src/main/config/compile-js-config.xml
>>
>>      [java] target:SWF
>>
>>      [java] target:JSRoyale
>>
>>      [java] COMPC
>>
>>      [java] Loading configuration:
>>
>> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/projects/Crux/src/main/config/compile-swf-config.xml
>>
>>      [java]
>>
>>      [java] 128421 bytes written to
>>
>> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/projects/Crux/target/Crux.swc
>> in 3,234 seconds
>>
>>      [java] COMPCJSCRoyale
>>
>>      [java] 6.474858102 seconds
>>
>>      [java]
>>
>> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/MXRoyaleJS.swc
>> The definition XMLList depended on by mx.messaging.config.ServerConfig in
>> the SWC
>>
>> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/MXRoyaleJS.swc
>> could not be found
>>
>>      [java]
>>
>>      [java]
>>
>>      [java]
>>
>> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/MXRoyaleJS.swc
>> The definition XML depended on by mx.messaging.config.ServerConfig in the
>> SWC
>>
>> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/MXRoyaleJS.swc
>> could not be found
>>
>>      [java]
>>
>>      [java]
>>
>>      [java]
>>
>> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/MXRoyaleJS.swc
>> The definition XML depended on by mx.messaging.channels.PollingChannel in
>> the SWC
>>
>> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/MXRoyaleJS.swc
>> could not be found
>>
>>      [java]
>>
>>      [java]
>>
>>      [java]
>>
>> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/MXRoyaleJS.swc
>> The definition QName depended on by mx.utils.ObjectUtil in the SWC
>>
>> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/MXRoyaleJS.swc
>> could not be found
>>
>>      [java]
>>
>>      [java]
>>
>>      [java]
>>
>> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/MXRoyaleJS.swc
>> The definition XMLList depended on by mx.utils.ObjectUtil in the SWC
>>
>> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/MXRoyaleJS.swc
>> could not be found
>>
>>      [java]
>>
>>      [java]
>>
>>      [java]
>>
>> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/MXRoyaleJS.swc
>> The definition XML depended on by mx.utils.ObjectUtil in the SWC
>>
>> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/MXRoyaleJS.swc
>> could not be found
>>
>>      [java]
>>
>>      [java]
>>
>>      [java]
>>
>> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/MXRoyaleJS.swc
>> The definition XMLList depended on by mx.messaging.Channel in the SWC
>>
>> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/MXRoyaleJS.swc
>> could not be found
>>
>>      [java]
>>
>>      [java]
>>
>>      [java]
>>
>> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/MXRoyaleJS.swc
>> The definition XML depended on by mx.messaging.Channel in the SWC
>>
>> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/MXRoyaleJS.swc
>> could not be found
>>
>>      [java]
>>
>>      [java]
>>
>>      [java]
>>
>> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/MXRoyaleJS.swc
>> The definition XML depended on by mx.messaging.channels.AMFChannel in the
>> SWC
>>
>> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/MXRoyaleJS.swc
>> could not be found
>>
>>      [java]
>>
>>      [java]
>>
>>      [java]
>>
>> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/MXRoyaleJS.swc
>> The definition XMLList depended on by mx.utils.UIDUtil in the SWC
>>
>> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/MXRoyaleJS.swc
>> could not be found
>>
>>      [java]
>>
>>      [java]
>>
>>      [java]
>>
>> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/ReflectionJS.swc
>> The definition org.apache.royale.utils.Language depended on by
>> org.apache.royale.reflection.nativejs.AS3Vector in the SWC
>>
>> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/ReflectionJS.swc
>> could not be found
>>
>>      [java]
>>
>>      [java]
>>
>>      [java]
>>
>> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/ReflectionJS.swc
>> The definition org.apache.royale.utils.Language depended on by
>> org.apache.royale.reflection.describeType in the SWC
>>
>> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/ReflectionJS.swc
>> could not be found
>>
>>      [java]
>>
>>      [java]
>>
>>      [java]
>>
>> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/ReflectionJS.swc
>> The definition org.apache.royale.utils.Language depended on by
>> org.apache.royale.reflection.getQualifiedClassName in the SWC
>>
>> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/ReflectionJS.swc
>> could not be found
>>
>>      [java]
>>
>>      [java]
>>
>>      [java]
>>
>> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/projects/Crux/src/main/royale/org/apache/royale/crux/processors/EventHandlerProcessor.as(23):
>> col: 10 Definition org.apache.royale.utils.Language could not be found.
>>
>>      [java]
>>
>>      [java] import org.apache.royale.utils.Language;
>>
>>      [java]        ^
>>
>>      [java]
>>
>>      [java]
>>
>> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/projects/Crux/src/main/royale/org/apache/royale/crux/processors/EventHandlerProcessor.as(106):
>> col: 16 Access of possibly undefined property Language.
>>
>>      [java]
>>
>>      [java] method = Language.closure(method, bean.source,
>> eventHandlerTag.host.name);
>>
>>      [java]          ^
>>
>>      [java]
>>
>>      [java]
>>
>> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/projects/Crux/src/main/royale/org/apache/royale/crux/processors/EventHandlerProcessor.as(127):
>> col: 15 Access of possibly undefined property Language.
>>
>>      [java]
>>
>>      [java] method = Language.closure(method, bean.source,
>> eventHandlerTag.host.name);
>>
>>      [java]          ^
>>
>>      [java]
>>
>>      [java]
>>
>> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/projects/Crux/src/main/royale/org/apache/royale/crux/processors/InjectProcessor.as(123):
>> col: 61 Access of possibly undefined property QName.
>>
>>      [java]
>>
>>      [java] var bind:Boolean = injectTag.bind && !( destPropName is QName
>> );
>>
>>      [java]                                                         ^
>>
>>      [java]
>>
>>      [java]
>>
>> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/projects/Crux/src/main/royale/org/apache/royale/crux/processors/InjectProcessor.as(137):
>> col: 26 Access of possibly undefined property QName.
>>
>>      [java]
>>
>>      [java] if( destPropName is QName && injectTag.bind == true )
>>
>>      [java]                     ^
>>
>>      [java]
>>
>>      [java] Java Result: 3
>>
>>
>> BUILD FAILED
>>
>> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/build.xml:652: The
>> following error occurred while executing this line:
>>
>>
>> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/build.xml:143:
>> The following error occurred while executing this line:
>>
>>
>> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/build.xml:370:
>> The following error occurred while executing this line:
>>
>>
>> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/projects/Crux/build.xml:85:
>> The following error occurred while executing this line:
>>
>>
>> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/projects/Crux/build.xml:111:
>> condition satisfied
>>
>>
>> Total time: 12 minutes 8 seconds
>>
>> Error:Build stopped - build SDK with ANT
>>
>>
>> Thanks!
>>
>> Carlos
>>
>>
>>
>>
>> El mar., 16 jul. 2019 a las 0:20, Josh Tynjala (<
>> [email protected]>)
>> escribió:
>>
>> > The Maven royale-compiler build is fixed now. :)
>> >
>> > --
>> > Josh Tynjala
>> > Bowler Hat LLC <https://bowlerhat.dev>
>> >
>> >
>> > On Mon, Jul 15, 2019 at 1:19 PM Josh Tynjala <[email protected]
>> >
>> > wrote:
>> >
>> > > FYI: Found an issue building royale-compiler with Maven. Working on
>> the
>> > > fix.
>> > >
>> > > --
>> > > Josh Tynjala
>> > > Bowler Hat LLC <https://bowlerhat.dev>
>> > >
>> > >
>> > > On Mon, Jul 15, 2019 at 12:32 PM Josh Tynjala <
>> [email protected]
>> > >
>> > > wrote:
>> > >
>> > >> Hey folks,
>> > >>
>> > >> I just pushed some commits to royale-compiler and royale-asjs, and I
>> > >> wanted to add a little explanation, and some possible troubleshooting
>> > >> advice if anything seems to have broken in your apps.
>> > >>
>> > >> My work over the last week has been to fix an issue related to
>> > specifying
>> > >> dependencies when compiling libraries for JS. As you probably know,
>> the
>> > >> compiler supports two options for adding libraries as dependencies,
>> > >> library-path and external-library-path. The library-path compiler
>> option
>> > >> basically says "include all classes that I use from this SWC in the
>> > final
>> > >> output". It's typically what you use when compiling an app that uses
>> a
>> > >> library. The external-library-path compiler option basically says
>> "if I
>> > use
>> > >> anything from this SWC, check that I'm using the types correctly, but
>> > don't
>> > >> include any of classes from this SWC in the final output".
>> > >>
>> > >> If you're compiling an app, you typically use library-path for
>> > >> everything. You use external-library-path only for dependencies like
>> > >> playerglobal.swc/airglobal.swc in Flash or typedef SWCs in JS.
>> > Basically,
>> > >> for an app project, external-library-path is for classes that are
>> > provided
>> > >> natively by the Flash runtime or a web browser, like Chrome or
>> Firefox.
>> > >>
>> > >> When compiling libraries, external-library-path is also used to
>> prevent
>> > >> the compiler from creating a "fat" library that stuffs in all of the
>> > >> dependencies. Let's say that you have a library, A.swc. It provides
>> some
>> > >> core functionality that is needed by both B.swc and C.swc. When we
>> > compile
>> > >> B.swc and C.swc, we don't want the classes from A.swc duplicated in
>> > both of
>> > >> them. So we add A.swc to the external-library-path when compiling
>> B.swc
>> > or
>> > >> C.swc. Then, if you use those SWCs when compiling an app, you need to
>> > add
>> > >> A.swc, B.swc, and C.swc to the library-path.
>> > >>
>> > >> To put that in Royale terms, A.swc is something like LanguageJS.swc
>> or
>> > >> CoreJS.swc. They're some of our lowest-level SWCs in the framework.
>> > B.swc
>> > >> and C.swc are more like BasicJS.swc or JewelJS.swc, and they tend to
>> > share
>> > >> multiple classes from the lower-level stuff.
>> > >>
>> > >> Up until now, library-path and external-library-path were a little
>> > quirky
>> > >> when compiling to JS. It was related to the goog.provide() and
>> > >> goog.require() calls that you might have seen in the generated JS.
>> These
>> > >> are from the module system that we use in Royale. The compiler didn't
>> > know
>> > >> how to differentiate between classes that had goog.provide() and
>> classes
>> > >> that were typedefs for JS libraries. It treated everything on the
>> > >> external-library-path as a typedef, and this led to missing
>> > goog.require()
>> > >> calls in the generated JS. To work around this, when we specified
>> > >> dependencies in our framework SWCs, we used library-path to ensure
>> that
>> > >> goog.require() would be used.
>> > >>
>> > >> This workaround of using library-path led to "fat" SWCs that
>> contained
>> > >> all of their dependencies. Low-level classes in SWCs like CoreJS were
>> > >> duplicated in higher-level SWCs. This led to the compiler getting
>> > confused
>> > >> about exactly where a class was defined.
>> > >>
>> > >> This has resulted in some minor issues here and there, but nothing
>> too
>> > >> major until recently. However, Harbs noticed the other day that it
>> > caused
>> > >> the compiler to copy extra default CSS into apps from SWCs that you
>> may
>> > not
>> > >> have been using. So, you might build an app with the Basic
>> components,
>> > but
>> > >> you'd get extra CSS from Jewel or MaterialDesignLite. This could
>> mess up
>> > >> your app's styling pretty dramatically.
>> > >>
>> > >> I updated the compiler to better detect when a class needs
>> > goog.require()
>> > >> and when it's a typedef. If that class comes from a SWC, the compiler
>> > knows
>> > >> to check for an included file like, js/out/com/example/MyClass.js. If
>> > the
>> > >> generated JS is there, goog.require() is necessary. If it's missing,
>> > it's
>> > >> treated as a typedef class instead. If the class is an .as source
>> file
>> > >> instead, the compiler looks for the @externs asdoc tag to determine
>> if
>> > it's
>> > >> a typedef class (and everything else needs goog.require() instead).
>> > >>
>> > >> By the way, if we ever support other module systems, it shouldn't be
>> too
>> > >> difficult to extend this code to detect different SWC layouts for
>> each
>> > >> module system.
>> > >>
>> > >> If your project is an app, this change should not cause any problems.
>> > >> You're probably using library-path and external-library-path
>> correctly.
>> > >>
>> > >> If you have a project that is a library, you should check your
>> compiler
>> > >> options to see if you are using library-path and
>> external-library-path
>> > >> correctly. If your library depends on another library, you probably
>> > should
>> > >> be using external-library-path because you don't want a "fat" SWC. In
>> > other
>> > >> words, if you're using library-path in a library project, you
>> probably
>> > need
>> > >> to change that to external-library-path.
>> > >>
>> > >> If you have any custom typedef SWCs, you may want to recompile them.
>> At
>> > >> one point, the compiler had a bug where classes in typedef SWCs were
>> > being
>> > >> incorrectly added to the "js/out" folder in the SWC, but that was
>> > >> incorrect. They should have been placed in an "externs" folder
>> instead.
>> > The
>> > >> compiler handles this correctly now, but old typedef SWCs may look
>> like
>> > >> goog.require() SWCs instead. To be sure, you can open a SWC file in
>> any
>> > >> program that can read ZIP files, and you'll see the internal folder
>> > >> structure. If a typedef SWC has a "js/out" folder, it's not going to
>> > work
>> > >> properly.
>> > >>
>> > >> If you're working directly out of the royale-compiler and royale-asjs
>> > Git
>> > >> repos, be sure to update and rebuild them both. The nightly builds
>> > should
>> > >> be updated shortly.
>> > >>
>> > >> When you build any apps, be sure to clean first, just to be sure that
>> > you
>> > >> have the latest JS files from the SWCs.
>> > >>
>> > >> If you run into any other problems with these changes, please let me
>> > >> know. I'll get them fixed right away!
>> > >>
>> > >> --
>> > >> Josh Tynjala
>> > >> Bowler Hat LLC <https://bowlerhat.dev>
>> > >>
>> > >
>> >
>>
>>
>> --
>> Carlos Rovira
>> http://about.me/carlosrovira
>>
>
>
> --
>
> Piotr Zarzycki
>
> Patreon: *https://www.patreon.com/piotrzarzycki
> <https://www.patreon.com/piotrzarzycki>*
>


-- 

Piotr Zarzycki

Patreon: *https://www.patreon.com/piotrzarzycki
<https://www.patreon.com/piotrzarzycki>*

Reply via email to