Skip to content

Releases: DoclerLabs/hexMachina

0.23.0

12 Jun 08:21
Compare
Choose a tag to compare

Behaviour change

Auto-mapping in IDependencyOwner is now added at the end of the constructor instead of the beginning.

Changelog

Bugs

Enhancements

//Constructor
test = new hex.mock.MockContextHolder( new hex.mock.MockApplicationContext( 'newRecursivity' ) );
//Constructor use for property assignment
r = new hex.mock.MockRectangle();
r.size = new hex.structures.Point( 10, 20 );
//Constructor use in anonymous structures
o2 = { p: new hex.mock.MockContextHolder( new hex.mock.MockApplicationContext( 'propertyRecursivity' ) ) };
//Array declaration in another Array with constructor use
test = 
    [
        new hex.mock.MockClass(),
        new hex.mock.AnotherMockClass(),
        new hex.mock.MockClassWithIntGeneric( 3 ),
        [ new hex.mock.MockClassWithIntGeneric( 4 ), 5 ]
    ];
  • Prepare custom parsers support

0.22.0

30 May 20:49
Compare
Choose a tag to compare

Feature

  • IAnnotationReplace is no longer necessary for the injector related metadata when using IInjectorContainer
  • MacroUtil.append
  • MacroUtil.flatToExpr
  • MappingDefinition typedef can be used to describe injector's mappings.
  • IDependencyOwner implementation on a class allows it to use metadata for describing needed dependencies.
  • MappingChecker does some mapping matching and can return missing mappings for any dependency owner.
  • DSL: injectInto is called after every object has been built, and injectorCreation has been removed.
  • Static xml compiler checks mapping intergity passed to dependency owner's constructor
  • AsyncStatelessService timeout duration set to 10000 instead of 100

0.21.1

17 May 13:28
Compare
Choose a tag to compare

0.21.0

16 May 21:24
Compare
Choose a tag to compare

Feature

@Inject(MyConstants.NAME_ONE)
public var injectedOne:String;

Bugs

0.20.2

15 May 11:23
Compare
Choose a tag to compare

API change

Remove hex.di.mapping.MappingDefinition

- rd.addMappedDependencies( [ new MappingDefinition( IService ) ]);
+ rd.addMappedDependencies([ {type: IService } ]);

Changelog

Bugs

Enhancements

0.20.1

03 May 13:48
Compare
Choose a tag to compare

Bugs

  • Fix: Macro can be in an invalid state because it doesn't check if it's running for switching state.
  • Fix: Trigger didn't copy listeners collection before triggering

0.20.0

03 May 07:28
Compare
Choose a tag to compare

API change

  • CommandExecutor has now less restriction for the module parameter
--- public function new ( injector : IDependencyInjector, ?module : IModule )
+++ public function new ( injector : IDependencyInjector, ?module : IContextModule )

Changelog

Features

  • DSL runtime parameters: Static compilers (Xml and Flow) can use runtime parameters to dynamize compiled code during its execution. Parameters are statically typed and double compile-checked, 1st time during DSL declaration, 2nd time during execution call. examples: #225

Enhancements:

  • Injector.getInstance can take target type as parameter
  • ILogger is now injected in all commands instead of relying on the owners logger

Bugfix:

  • Fixed inconsistencies in the parameterized message output (#224)
  • MacroCommands owner is now propagated to child commands (FrancisBourre/hexMVC#74)

0.19.1

25 Apr 11:34
Compare
Choose a tag to compare

Bugs

0.19.0

24 Apr 15:15
Compare
Choose a tag to compare

API change

  • Owner in hex.control.command.ICommand is now typed as IContextModule instead of IModule
  • hex.di.mapping.MappingConfiguration configure doesn't need IDispatcher<{}>.
--- public function configure( injector : IDependencyInjector, dispatcher : IDispatcher<{}>, module : IModule ) : Void
+++ public function configure( injector : IDependencyInjector, module : IContextModule ) : Void
  • In DSL XML type should now be written Xml instead of XML
--- <data id="fruits" type="XML" parser-class="hex.mock.MockXmlParser">
+++ <data id="fruits" type="Xml" parser-class="hex.mock.MockXmlParser">

Changelog

Features

  • BasicStaticFlowCompiler and BasicStaticXmlCompiler allows type checking and multiple compiler passes with dependency and controlled visibility by compilation inheritance.
  • StaticXmlCompiler added that supports full IoC features mixed with features listed above.
  • Flow DSL supports conditional compiling.
  • Application context's name is optional inside DSL file.
  • DSL compilers (xml and flow) can override application context name.
  • this keyword added to both DSLs (xml and flow) to get application context reference.
  • Flow DSL parser accepts one to many metadata headers.
  • Flow compilers use conditional variables as parameters.
  • IAnnotationReplace utility which replaces expressions in annotations with their values (#182)

Enhancements

  • IContextModule becomes core interface for any applicative module with injector, domain and logger.
  • IModule extends IContextModule.
  • IApplicationContext extends IContextModule, It means that an application context behaves like a super lightweight module.
  • ApplicationContext is mapped as IContextModule in DSL compiled code.
  • MacroUtil.getFQCNFromComplexType added.
  • MacroUtil.getFQCNFromExpression added.
  • MacroUtil.getFQCNFromString added.
  • ArrayUtil.indexOf ensures to retrieve method closure on Neko target.
  • Any is used instead of Dynamic when it's possible.
  • CoreFactory throws better exception messages when registering fails.
  • Assembler doesn't handle it's own expression anymore. Job is done with parsers.
  • Void method trigger support - ITrigger<Void->Void>
  • Optionals in method triggers support - ITrigger<?String->Void>
  • IsLoggable produces better structured log messages leveraging the api of hexLog
  • IsLoggable optional includeParams property to add method parameters into custom message
  • IsLoggable searches for an existing logger before creating one
  • hexUnit has new asserts: arrayDeepContainsElement and arrayDeepContainsElementsFrom
  • Domain support in loggers created in modules (and in everything else that uses injected logger from the module context)
  • Dedicated logger context (MacroContext) designed for using loggers in macros
  • hexMachina is using hexLog everywhere instead of trace

Bugs

  • State event handlers with method closures on Neko target fail.
  • Dependency provider fix for getInstance call (target class is now null)

0.18.0

21 Mar 13:15
Compare
Choose a tag to compare

Enhancements

#222 Drop haxe 3.2.1 support