On 5/3/16, 11:53 AM, "Christofer Dutz" <christofer.d...@c-ware.de> wrote:
> >It would really be good if we could get together at ApacheCon US and sort >out the compilation problems. To me the current state of the FlexJS / >Extern / Framework feels more and more like something MacGyver banged >together. I will spend the time and money to meet with you, but I am not going to look forward to it if all I'm going to hear is complaints. The fact we're are even discussing Maven for FlexJS is because a group of volunteers were able to produce a proof-of-concept that enough folks found interesting. Maybe you always take the time to carefully write your POCs, but I don't, and at least the current code does enough to continue to get people interested. >I am trying to destil a default design pattern, but it seems impossible >as there seem to be hacks and exceptions all over the place. Maybe there are exceptions to the default pattern, but basically, we are trying to use conditional compilation to output multiple targets from a single code base. Maybe Maven isn't the right build tool to build the framework SWCs. In FlexJS, I see a difference between framework developers and application developers. Folks working on the framework have to abstract away runtime/platform differences so the application developers can use the framework SWCs to develop apps without having to worry about platform differences. Maybe we should just use Ant to create the framework SWCs or the pieces that finally go in the framework SWCs and have Maven publish those SWCs so that application developers can use Maven for their projects. > >Problems I'm currently having: >- I seem to be unable to get around the problem of the missing TextField >class when compiling the JavaScript >/Users/christoferdutz/Projects/Apache/Flex/flex-asjs/frameworks/projects/C >ore/src/main/flex/org/apache/flex/core/CSSTextField.as:160 >The definition of base class TextField was not found. > public class CSSTextField extends TextField > >- If I skip the JavaScript generation I have to comment out line 70 of >ApplicationBase as this seems to produce this error: >/Users/christoferdutz/Projects/Apache/Flex/flex-asjs/frameworks/projects/C >ore/src/main/flex/org/apache/flex/core/ApplicationBase.as:70 >Error: Call to a possibly undefined method info through a reference with >static type Class. > _info = c.info(); You can check the Ant console output to see if these errors are somehow being ignored, but otherwise, it sounds like you are still compiling every file in the SWC and maybe have some other configuration issue like whether playerglobal/airglobal or js.swc is being used for the built-in classes. > >- If I skip the SWC compilation and want to continue with the Extern >compilation I get the same problem as with the JavaScript compilation as >the TextField is missing too. > >- I can't detect if a module produces just an extern-swc, just an swc, a >swc containing JavaScript or a mixture of this. Currently this logic is >hard-coded in the build scripts, but I would like to make the builds >simpler. What could help me detect what to build? The only thing I can >automate is the generation of ActionScript code from JavaScript via >externc (here you have to provide which files to include/exclude. If the >number of files is empty the plugin does nothing) AFAIK, every project in frameworks/projects produces JS files, an externs.swc, and a final SWC that contains the JS files. ExternC shouldn't be used on code in frameworks/projects. > >- Config options that could be made in the config-xml files are added as >arguments to the compiler. As we don't have a xml schema for the config >files it's really hard to find out where to put stuff. I don't know of a way to use variable substitution in the config-xml files, so that's why some SWCs are specified on the command-line in build.xml. > >I was planning on talking about the new FlexJS compilation with Maven at >ApacheCon, but it feels like I will have to fallback to the old talk >about Flexmojos, but even with this I am in great doubt that it would >actually still work. So it will be a theoretical talk about something >that might come, but what I can talk about won't shed a good light on the >project :-( Well, it wasn't for lack of trying. I have put all feature development on hold for the last 3 weeks to try to get Maven to work for Falcon and FlexJS. I hope you agree that Falcon is ready. But all I think our community really wants for FlexJS is a set of Maven artifacts they can use in their apps. I'm not sure they care whether we create those artifacts entirely with Maven. I know you claimed Maven would make it easier for framework developers to contribute to the framework, but whether we use Maven or not, at least trying to use Maven helped us get a bit more consistency in the code bases. -Alex