Skip to content

0.34.0

Compare
Choose a tag to compare
@aliokan aliokan released this 15 Jan 16:00
· 5 commits to master since this release
c75bb10

Features

  • ClassDescriptorGenerator generate class descriptors recursively at compile time.
        var classDescriptor = ClassDescriptorGenerator.generate( HexUnitSuite );
  • #genhexunit compiler argument added to activate unit test compile time features.
  • CommandTrigger handles local variable injection with @Optional (parameters are working as well with static var replacement)
  • MacroUtil.getClassName added.
  • MacroUtil.compressField added.

Breaking change

  • Dataprovider's API uses only one argument.

This...

    public static var namedAndUnnamedParametersConstructorDataProvider:Array<Array<Dynamic>> = [
        [MixedParametersConstructorInjectee],
        [MixedParametersConstructorInjecteeConst],
        [MixedParametersConstructorInjecteeConstOutside],
        [MixedParametersConstructorInjecteeConstOutsideFQCN]
];

... becomes now:

    public static var namedAndUnnamedParametersConstructorDataProvider:Array<Class<Dynamic>> = [
        MixedParametersConstructorInjectee,
        MixedParametersConstructorInjecteeConst,
        MixedParametersConstructorInjecteeConstOutside,
        MixedParametersConstructorInjecteeConstOutsideFQCN
    ];

Enhancements

  • Unit test framework refactoring. Business logic extracted from data structures. (ClassDescriptor, MethodDescriptor...)
  • ArrayUtil cleaned, no more short lambda macro emulation.
  • AsyncResponder class removed.
  • We don't print anymore reflection data in exported code except with #debugReflection compiler argument.
  • Old annotation system removed (13 classes).
  • Old injectors classes removed. (44 classes).
  • During reflection merging we get rid of duplicated existing data and we keep super constructor data only if there's no constructor data available.
  • Injector generated methods are saved from DCE.
  • Useless php/conditional removed in Injector class.
  • Macro code coverage with enum injection. (24 tests)

Bugfixes

  • MacroUtil.getFQCNFromComplexType doesn't handle class with packaged type parameters belonging to another module.
  • MacroUtil.getFQCNFromComplexType doesn't return right fully qualified type for method closure without arguments.
  • Method reflection doesn't cover specific signatures #247
  • ReflectionBuilder uses class name instead of module's name.
  • Conflict between IsLoggable and IInjectable when they extend the same interface. #245
  • @Optional is set to false when it has no value
  • Injectors cannot handle function argument correctly as a constructor dependency. #247
  • Missing mapping exceptions are not thrown with the new injector in specific situations.
  • @lazy needs to be @public to work. #251
  • Abstract type is not used for local variables. #253
  • CommandTriggerBuilder doesn't request reflection update for module and injector annotated properties.

Experimental

  • hexCommand repository maintained and fine tuned to replace hexMVC soon.