Releases: DoclerLabs/hexMachina
0.17.0
0.16.1
0.16.0
API change
- Request is final (related #204)
- execute added in Command, without arguments (related #205)
- Module is not anymore added as listener on IStatefulService use in MappingConfiguration (related #217)
Changelog
Enhancements
#204 Request should be final (hexMVC)
#205 Forbid arguments in Command execute method (hexMVC)
#217 Remove add(dispatcher) if IStatefulService in MappingConfiguration (enhancement, hexInject)
Bugs
#208 unable to pass custom type as ExecutionPayload (hexAnnotation, hexCore, hexInject)
#209 Cannot map Map<String, String> in ExecutionPayload (hexCore)
#213 AnnotationProvider - should be able to register the same domain on different parent (hexMVC)
#216 Problem with withClassName (hexCore, hexMVC)
0.15.0
This released is focused mainly on making hexDSL repository autonomous with:
- Tools to create your own DSL and to extend existing ones. Documentation about this topic will be written soon.
- The introduction of three components for two different DSL protocol: XML and Flow.
XML
BasicXmlCompiler
for compiling xml DSL files.BasicXmlReader
for reading (at runtime) xml DSL files.
XML documentation is available here
Flow
BasicFlowCompiler
for compiling flow DSL files. Flow protocol looks like Haxe syntax.
Flow documentation is available here.
Features
- Triggers accept function signatures. #199
public var callbacks( default, never ) : ITrigger<String->Int->Void>;
- Trigger supports class parameters.
public var trigger( default, never ) : ITrigger<IListener<IParam>>;
ITrigger.disconnectAll
added to remove all listeners.
Changes
- Trigger doesn't need to be annotated anymore. #55
IGuard
implementsIInjectorContainer
.PrivateConstructorException
message is optional.VirtualMethodException
message is optional.- Locator is not observable anymore.
- Locator uses trigger event system.
- IStatefulService moved to the core.
- MappingConfiguration moved to hexInject repository. Use:
hex.di.mapping.MappingConfiguration
- Deprecated
ServiceLocator
class has been removed. UseMappingConfiguration
instead. - Module._dispatchPrivateMessage use
Request
as second parameter. - Context dispatcher doesn't need a name injection, just use
@Inject dispatcher : Dispatcher<{}>
#200 - Use
XmlCompiler.compile
instead ofXmlCompiler.readXmlFile
- Use
XmlCompiler.compileWithAssembler
instead ofXmlCompiler.readXmlFileWithAssembler
- Use
XmlReader.read
instead ofXmlReader.readXmlFile
Fix
- Assertions failed count returned is wrong sometimes.
- Flash system errors are not caught during an assertion.
isLoggable
implementation is sometimes failing.
0.14.0
0.13.0
hexCore
@Trigger
: New event system based on compile-time generation with fast performances and caching.- Injector API updated with
@Trigger
event-system - MessageType becomes an abstract converted to a String at compile-time. You can inline it now.
- Goodbye to all these classes:
BasicHandler
,DynamicClosuredispatcher
,Event
,EventDispatcher
,IEvent
,IEventDispatcher
,IEventListener
,LightweightClosureDispatcher
,LightweightListenerDispatcher
,MonotypeClosureDispatcher
. MacroUtil.assertTypeMatching
MacroUtil.assertValueMatching
hexUnit
- The browser notifier doesn’t need any div and CSS to work. HTML code is auto-generated.
@Trigger
event-system replaces previous one for better performances and readability.- Fix: IWebSocketNotifier is available on all targets
hexReflection
- hexAnnotation dependencies.
hexInject
- Everything can be mapped/injected at runtime and compile-time:
abstract
,typedef
, functions, primitives, classes with type params,enum
… - Perfect type matching at compile-time for any kind of dependency with
InjectionUtil
static extension. @Trigger
event-system replaces previous one for better performances and readability.InjectionMapping
simplified, type property removed.
hexDsl
- This new repository will contain all the core tools for building and parsing any custom DSL.
hexMVC
- Fix: private properties isAtomic and isSequenceMode are useless in Macro class. #190
- Module uses new
InjectionUtil
for defining its dependencies. - Fix:
ViewHelper
internal get/set are public. #162
hexIoC
FlowCompiler
with flow dsl (work in progress): This dsl allows to use haxe syntax (instead of xml) for describing your system.- New parsing/building system based on abstraction. Implements
IBuilder<T>
- Core classes moved to new repository: hexDSL
- Factories return generated data instead of decorating value objects.
- Assemblers doesn’t act as building facades anymore. Now, parsers use abstract buiders with enum values to make building request:
builder.build( PROPERTY( propertyVO ) );
- Fix: static variables cannot be passed as method call arguments. #191
- Fix: Method call with type params doesn't work. #62
- New
IApplicationAssembler
signatures:
function getFactory<T>( factoryClass: Class<IBuilder<T>>, applicationContextName : String, applicationContextClass : Class<IApplicationContext> ) : IBuilder<T>;
function buildEverything() : Void;
function release() : Void;
function getApplicationContext<T:IApplicationContext>( applicationContextName : String, applicationContextClass : Class<T> ) : T;
Default use: assembler.getApplicationContext( name, ApplicationContext );
Assemblers logic change, context are created independently from factories.
IApplicationContext.dispose
added.
- Fix: Build fails with haxe 3.2.1 and neko vm 2.1 on linux. #183 #184
- Xml dsl change:
singleton-access
attribute renamed tostatic-call
. #186 - Xml dsl change:
factory
attribute renamed tofactory-method
and limited to instance. #187 - Context dispatcher is available from context's injector.
- hexadecimal Int type (ex: 0xffffff) added to xml dsl. #193
travis
- Add macro ImportAll.run() on each repo to detect any potential problem. #194
- Add
#if macro
on classes only needed at compile-time. Timer.delay
removed on neko target for haxe 3.2.1.
0.11.0
Features
#180 Type params for any instance in the DSL
#173 Allow later addition of fields with Inject metadata
#142 Support for typed maps
#175 Injector can use class with type params as argument
Enhancements
#179 "Safe state" for runtime assembling
#177 new state change should not be triggered during previous state change
#74 Array collection as argument
#137 Construct Map in DSL
Bugs
#178 Can't listen for exit state transition in DSL
#176 ReflectionBuilder doesn't check for null params on a field leading to a compile error
0.10.0
0.9.1
0.9.0
Features
#146 New State DSL
#164 New HexReflection repository
#165 Generic types handling with Injector feature hexInject
#166 Instance type mapping with generics from DSL
#167 Array type mapping with generics from DSL
#168 Payload with class name to handle generics at runtime
Enhancements
#145 remove scope argument from State event API
Bugs
#151 Logger property is not injected when IsLoggable interface is implemented
#152 XmlCompiler.readXmlFileWithAssembler not work with this._applicationAssembler
#163 Fix issues find with --macro include('hex')