I gave
distrib (#228) and
builder (#211) a try.
The results:
Unfortunately v2.3.1 of the Eclipse plugin/builder does not seem to be a drop-in replacement for the 2.3.0 version that we currently use (we've patched v2.3.0):
- no as3 code is generated any more
- I'm not able to access the GraniteDS properties page (error instead)
Fortunately issue GDS-995 is not caused by the builder (IMHO). The builder - even v2.3.0 - does a good job. To me it is an externalizer issue.
For the externalizer (distrib #228): The result of the new DefaultExternalizer#findOrderedFields impl still is not in sync with the generated as3 code (I'm talking builder v2.3.0 here).
The builder generates as3 getters (and read/writeExternal code) as soon as it encounters the label field in the Java class hierarchy (I think this is correct). This is at the abstract level:
abstract class AbstractFoo {
public abstract String getLabel();
}
The externalizer's findOrderedFields sees that same label field not until its implementation at the concrete level:
class ConcreteFoo extends AbstractFoo {
public String getLabel() {
Hence the mismatch.
So, to conclude, what became better with your fix is that the externalizer now actually calls the getLabel method (before your fix it was left totally uncalled). The moment of the method call is however still not in sync with the generator.
Grtz,
Gerrie