Hi,

has anyone had a look/any comment on my proposed tool api project that would 
allow managing of the various implementations of compilers in the FDK?


I have taken my thoughts a little further. While implementing the PMD 
modularization I encountered the

Java SerivceLoder mechanism and I would like to use this in Flexmojos to select 
the modules the user wants to use. 
http://docs.oracle.com/javase/6/docs/api/java/util/ServiceLoader.html


I currently had planned a FlexTool interface with a "toolName" and "toolGroup" 
property and an "ecexute" method. while thinking even further, I doubt that 
someone would use the default compiler for SWCs, Falcon for SWFs and ASDoc by 
yet another. So what do you think about having a "compiler group" and this 
either has a concrete "getCOMPC", "getMXML", "getASDoc", ... or more consists 
of a Map of tools "getTool('ASDOC')" Where the key to the map could be an Enum 
or a String.


Eventually the Map version with a String key would be the most generic version 
and we would probably not have to extend that interface in the near future. 
Especially when thinking of the JavaScript future.


So I would change my proposal to having two interfaces:


FlexTool

- public String getName()

- public int execute(String[] args)


FlexToolGroup

- public String getName();

- public FlexTool getTool(String name)


If we added one FlexToolGoup to each compiler implementation project (Default, 
Falcon, FlexJS, VF2JS) and in these the "getTool" method is implemented in a 
way to return the implementation matching that particular group, it would make 
tooling a lot easier:

ServiceLoader<FlexToolGroup> flexToolGroups = 
ServiceLoader.load(FlexToolGroup.class);


Reply via email to