Skip to content

Releases: DoclerLabs/hexMachina

0.17.0

20 Mar 17:33
Compare
Choose a tag to compare

API change

hex.control.async.IAsyncCallback change to hex.control.async.Expect

Changelog

bugs

#221 Crash when dispatch is called on sealed Dispatcher

0.16.1

09 Mar 13:33
Compare
Choose a tag to compare

Bugs

#220 Remove hexLog dependency in hexCore

0.16.0

06 Mar 19:31
Compare
Choose a tag to compare

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

13 Feb 17:12
Compare
Choose a tag to compare

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 implements IInjectorContainer.
  • 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. Use MappingConfiguration 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 of XmlCompiler.readXmlFile
  • Use XmlCompiler.compileWithAssembler instead of XmlCompiler.readXmlFileWithAssembler
  • Use XmlReader.read instead of XmlReader.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

26 Jan 14:16
Compare
Choose a tag to compare

Features

#197 Possibility of interacting with an instance after its construction from xml dsl
#198 Method Forwarder

Bugs

#196 Service listening doesn't work when the service has mapped type declared.

0.13.0

23 Jan 18:15
Compare
Choose a tag to compare

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 to static-call. #186
  • Xml dsl change: factory attribute renamed to factory-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

09 Dec 07:53
Compare
Choose a tag to compare

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

02 Dec 10:58
Compare
Choose a tag to compare

Features

#175 Injector can use class with type params as argument

Bugs

#172 JUnitTestNotifier should escape data

0.9.1

28 Nov 12:35
Compare
Choose a tag to compare

Bugs

#169 Injector cant inject into properties with {} Generic

0.9.0

16 Nov 09:34
Compare
Choose a tag to compare

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')