You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flex.apache.org by Christofer Dutz <ch...@c-ware.de> on 2015/09/22 17:19:35 UTC
[FLEXJS] Maven Packaging and Flexmojos Support
Hi,
So I got a lot further in my efforts to adjust Flexmojos to support FlexJS (Even if I thought I already did).
I added a new artifical artifact "org.apache.flex.flexjs.framework:framework:pom and zipped the xml files in the framework directory. I even added all "project/*/*-manifest.xml" files. Now I'm getting the following message from the compiler:
Could not find file for class: org.apache.flex.core.ILayoutParent
java.lang.RuntimeException: Unable to find JavaScript filePath for class: org.apache.flex.core.ILayoutParent
at org.apache.flex.compiler.internal.graph.GoogDepsWriter.addDeps(GoogDepsWriter.java:176)
at org.apache.flex.compiler.internal.graph.GoogDepsWriter.addDeps(GoogDepsWriter.java:210)
at org.apache.flex.compiler.internal.graph.GoogDepsWriter.addDeps(GoogDepsWriter.java:210)
at org.apache.flex.compiler.internal.graph.GoogDepsWriter.addDeps(GoogDepsWriter.java:210)
at org.apache.flex.compiler.internal.graph.GoogDepsWriter.buildDB(GoogDepsWriter.java:128)
at org.apache.flex.compiler.internal.graph.GoogDepsWriter.getListOfFiles(GoogDepsWriter.java:80)
at org.apache.flex.compiler.internal.codegen.mxml.flexjs.MXMLFlexJSPublisher.publish(MXMLFlexJSPublisher.java:330)
at org.apache.flex.compiler.clients.MXMLJSC.compile(MXMLJSC.java:467)
at org.apache.flex.compiler.clients.MXMLJSC._mainNoExit(MXMLJSC.java:346)
at org.apache.flex.compiler.clients.MXMLJSC.mainNoExit(MXMLJSC.java:272)
at org.apache.flex.compiler.clients.MXMLJSC.execute(MXMLJSC.java:167)
at net.flexmojos.oss.compiler.DefaultFlexCompiler.executeTool(DefaultFlexCompiler.java:294)
at net.flexmojos.oss.compiler.DefaultFlexCompiler.executeMxmlcMain(DefaultFlexCompiler.java:192)
at net.flexmojos.oss.compiler.DefaultFlexCompiler.access$300(DefaultFlexCompiler.java:37)
at net.flexmojos.oss.compiler.DefaultFlexCompiler$2.command(DefaultFlexCompiler.java:86)
at net.flexmojos.oss.compiler.command.CommandUtil$1.run(CommandUtil.java:50)
at java.lang.Thread.run(Thread.java:745)
File not found: org.apache.flex.core.ILayoutParent
When looking around, I could find that there is such a file located in
flex-asjs/frameworks/js/FlexJS/libs/org/apache/flex/core/ILayoutParent.js
So what is located in these directories? I thought all the js is packaged in with the swcs? But this doesn't seem to be the case. How does this directory fit into the big picture?
Chris
PS:
- Is there a reason for the "project/*/*-manifest.xml" files not having a standardized name? Most are called basic-manifest.xml but it seems the only similarity is that they are all ending on "-manifest.xml"
- Is there a reason for not bundling the manifest in the swc files? Currently referencing them from the flex-config.xml and packaging parts of the artifacts inside another doesn't really look clean to me.
(How would it be to have some sort of naming convention ... most are named "basic-manifest.xml" but not all ...
AW: [FLEXJS] Maven Packaging and Flexmojos Support
Posted by Christofer Dutz <ch...@c-ware.de>.
Ok .. so I updated everything and re-built but couldn't see anything improving.
Digging a little deeper, it seems that a resource seems to have been renamed and officially a ILayoutParent no longer exists. Unfortunately the monkey-patching using the framework/js/FlexJS directory seems to preventing the thing from blowing up and none seems to be noticing something fishy happening. How about adding a validator to the ant build making sure the monkey-patches are in sync with the rest? Currently it seems several components in core seem to refeence stuff only available in the "monkey-patch" directory ... this is not good.
Chris
________________________________________
Von: Christofer Dutz
Gesendet: Dienstag, 22. September 2015 17:44
An: dev@flex.apache.org
Betreff: AW: [FLEXJS] Maven Packaging and Flexmojos Support
So in general I shouldn't need to worry about that directory and all should be in the core.swc for example (This would have been where I would be expecting it to be).
Ok ... that makes me happy as I was preparing myself for some need to start hacking stuff but this way hopefully I won't need to :-)
And regarding the problems of FB ... would it do any harm, if we simply stuffed the manifests inside the swcs AND left them in the file system for FB to work with? This way real tools could work with a clean structure and wouldn't have to adopt hacks needed because of FB being "slightly out of date" ;-) (sorry ... couldn't resist ;-) )
Chris
________________________________________
Von: Alex Harui <ah...@adobe.com>
Gesendet: Dienstag, 22. September 2015 17:31
An: dev@flex.apache.org
Betreff: Re: [FLEXJS] Maven Packaging and Flexmojos Support
On 9/22/15, 8:19 AM, "Christofer Dutz" <ch...@c-ware.de> wrote:
>Hi,
>
>
>So I got a lot further in my efforts to adjust Flexmojos to support
>FlexJS (Even if I thought I already did).
>
>I added a new artifical artifact
>"org.apache.flex.flexjs.framework:framework:pom and zipped the xml files
>in the framework directory. I even added all "project/*/*-manifest.xml"
>files. Now I'm getting the following message from the compiler:
>
>
>Could not find file for class: org.apache.flex.core.ILayoutParent
>
>When looking around, I could find that there is such a file located in
>flex-asjs/frameworks/js/FlexJS/libs/org/apache/flex/core/ILayoutParent.js
>
>So what is located in these directories? I thought all the js is packaged
>in with the swcs? But this doesn't seem to be the case. How does this
>directory fit into the big picture?
All JS is currently copied into js/FlexJS/libs because files found there
override what is found in the SWCs. This allows folks to monkey-patch
what is in the SWCs.
Regarding ILayoutParent, a recent check-in renamed it so maybe something
isn't fully in sync.
>
>Chris
>
>PS:
>- Is there a reason for the "project/*/*-manifest.xml" files not having a
>standardized name? Most are called basic-manifest.xml but it seems the
>only similarity is that they are all ending on "-manifest.xml"
There are different manifests for different component sets. FlexJS allows
for swapping in different component sets. Like replacing the basic
component set with a set that leverages JQueryUI components or the
Flat/Bootstrap components.
>- Is there a reason for not bundling the manifest in the swc files?
>Currently referencing them from the flex-config.xml and packaging parts
>of the artifacts inside another doesn't really look clean to me.
>
I agree it is messy. I don’t think FB knows how to unbundle them from a
SWC. But if that isn’t true, we can certainly head in that direction.
HTH,
-Alex
AW: [FLEXJS] Maven Packaging and Flexmojos Support
Posted by Christofer Dutz <ch...@c-ware.de>.
So in general I shouldn't need to worry about that directory and all should be in the core.swc for example (This would have been where I would be expecting it to be).
Ok ... that makes me happy as I was preparing myself for some need to start hacking stuff but this way hopefully I won't need to :-)
And regarding the problems of FB ... would it do any harm, if we simply stuffed the manifests inside the swcs AND left them in the file system for FB to work with? This way real tools could work with a clean structure and wouldn't have to adopt hacks needed because of FB being "slightly out of date" ;-) (sorry ... couldn't resist ;-) )
Chris
________________________________________
Von: Alex Harui <ah...@adobe.com>
Gesendet: Dienstag, 22. September 2015 17:31
An: dev@flex.apache.org
Betreff: Re: [FLEXJS] Maven Packaging and Flexmojos Support
On 9/22/15, 8:19 AM, "Christofer Dutz" <ch...@c-ware.de> wrote:
>Hi,
>
>
>So I got a lot further in my efforts to adjust Flexmojos to support
>FlexJS (Even if I thought I already did).
>
>I added a new artifical artifact
>"org.apache.flex.flexjs.framework:framework:pom and zipped the xml files
>in the framework directory. I even added all "project/*/*-manifest.xml"
>files. Now I'm getting the following message from the compiler:
>
>
>Could not find file for class: org.apache.flex.core.ILayoutParent
>
>When looking around, I could find that there is such a file located in
>flex-asjs/frameworks/js/FlexJS/libs/org/apache/flex/core/ILayoutParent.js
>
>So what is located in these directories? I thought all the js is packaged
>in with the swcs? But this doesn't seem to be the case. How does this
>directory fit into the big picture?
All JS is currently copied into js/FlexJS/libs because files found there
override what is found in the SWCs. This allows folks to monkey-patch
what is in the SWCs.
Regarding ILayoutParent, a recent check-in renamed it so maybe something
isn't fully in sync.
>
>Chris
>
>PS:
>- Is there a reason for the "project/*/*-manifest.xml" files not having a
>standardized name? Most are called basic-manifest.xml but it seems the
>only similarity is that they are all ending on "-manifest.xml"
There are different manifests for different component sets. FlexJS allows
for swapping in different component sets. Like replacing the basic
component set with a set that leverages JQueryUI components or the
Flat/Bootstrap components.
>- Is there a reason for not bundling the manifest in the swc files?
>Currently referencing them from the flex-config.xml and packaging parts
>of the artifacts inside another doesn't really look clean to me.
>
I agree it is messy. I don’t think FB knows how to unbundle them from a
SWC. But if that isn’t true, we can certainly head in that direction.
HTH,
-Alex
Re: [FLEXJS] Maven Packaging and Flexmojos Support
Posted by Alex Harui <ah...@adobe.com>.
On 9/22/15, 8:19 AM, "Christofer Dutz" <ch...@c-ware.de> wrote:
>Hi,
>
>
>So I got a lot further in my efforts to adjust Flexmojos to support
>FlexJS (Even if I thought I already did).
>
>I added a new artifical artifact
>"org.apache.flex.flexjs.framework:framework:pom and zipped the xml files
>in the framework directory. I even added all "project/*/*-manifest.xml"
>files. Now I'm getting the following message from the compiler:
>
>
>Could not find file for class: org.apache.flex.core.ILayoutParent
>
>When looking around, I could find that there is such a file located in
>flex-asjs/frameworks/js/FlexJS/libs/org/apache/flex/core/ILayoutParent.js
>
>So what is located in these directories? I thought all the js is packaged
>in with the swcs? But this doesn't seem to be the case. How does this
>directory fit into the big picture?
All JS is currently copied into js/FlexJS/libs because files found there
override what is found in the SWCs. This allows folks to monkey-patch
what is in the SWCs.
Regarding ILayoutParent, a recent check-in renamed it so maybe something
isn't fully in sync.
>
>Chris
>
>PS:
>- Is there a reason for the "project/*/*-manifest.xml" files not having a
>standardized name? Most are called basic-manifest.xml but it seems the
>only similarity is that they are all ending on "-manifest.xml"
There are different manifests for different component sets. FlexJS allows
for swapping in different component sets. Like replacing the basic
component set with a set that leverages JQueryUI components or the
Flat/Bootstrap components.
>- Is there a reason for not bundling the manifest in the swc files?
>Currently referencing them from the flex-config.xml and packaging parts
>of the artifacts inside another doesn't really look clean to me.
>
I agree it is messy. I don’t think FB knows how to unbundle them from a
SWC. But if that isn’t true, we can certainly head in that direction.
HTH,
-Alex