efanXtraRelease Notes
v2.0
Core parts re-written to allow standard classes and const classes to be used as components (they're no longer just for mixins!). This allows a much more natural style of Fantom programming with efan components. The rendering process has also been significanly simplified for a speedier result.
v2.0.6
- Chg: Optimised the common Template finders.
- Bug: Pods could not be contributed as EfanLibraries more than once.
- Bug: Nested components, each with a body fn, could cause a
StackOverflowErr
.
v2.0.4
- Chg: Renamed the, now unused, render method variable
ctx
to_ctx_
to prevent clashes with component field names.
v2.0.2
- Chg: efanXtra now references
EfanCompiler
by ID so other non-efanXtra IoC instances may be created.
v2.0.0
- New: Re-written for efan 2.0.
- Chg: Updated all pods to latest versions.
v1.0
v1.2.0
- New: Fandoc Type comments may also be used as templates.
- Chg: Updated to work with IoC v3. (Breaking Change.)
- Chg:
TemplateConverters
now takes contributions of|Str->Str|
. (Breaking Change.) - Chg: Baseclass names are also used to find templates.
- Chg: Each component renders into it's own
StrBuf
. This allows us to render arbitrary, non-nested, components and embed the result in template Strs.
v1.1.20
- Chg: Better handling of threaded services / dependency provided objects injected into components.
v1.1.18
- Chg: Advanced API change to accomodate @Inject'ed threaded services.
- Bug: efanXtra now honours the
@Autobuild
facet.
v1.1.16
- Chg: Renamed
@EfanLocation
->@TemplateLocation
. (Oops!)
v1.1.14
- New: Added a couple of library methods to
EfanXtra
. - Chg: Updated to IoC 2.0.0.
- Chg: Renamed
@EfanTemplate
->@EfanLocation
. (Breaking change.) - Chg: Internal work to lazily compile
EfanLibraries
.
v1.1.12
- Chg: Removed
ArgNotFoundErr
in favour of the one in Bean Utils. - Chg: Updated to IoC 1.7.6.
v1.1.10
- Bug: Bodged release - updated to IoC 1.7.2.
v1.1.8
- Chg: Updated to use IoC 1.7.0.
v1.1.6
- Chg: Updated to use IoC 1.6.4, added dependency on IoC Env 1.0.6
- Chg:
EfanXtraConfigIds.templateTimeout
now defaults to2min
in production environments, and2sec
otherwise. - Chg: Removed
EfanXtraConfigIds.supressStartupLogging
. To suppress the startup log, remove theRegistryStartup
contributionafEfanXtra.logLibraries
.
v1.1.4
- Chg: Updated to use Concurrent 1.0.4.
- Chg: (Internal) Created
ComponentRenderer
. - Bug: Could not re-compile components.
v1.1.2
- Chg: Updated to use efan 1.4.0.
v1.1.0
- New: Template files are optional! Small components may just override
renderTemplate()
instead. - Chg: Overhauled and tidied up the public API and documentation. (Breaking change.)
- Chg: Type checks involving Lists and Maps are more lenient when calling lifecycle methods.
v1.0.14
- Chg: Updated to use IoC 1.6.0 and Concurrent 1.0.0.
v1.0.12
- Chg: Components may now have threaded services injected into them!
v1.0.10
- New: Added
EfanLibraries.callMethod()
hook for Pillow. - Chg: Components automatically
use
the pod that the component mixin was defined in. - Chg:
ComponentCompiler
callbacks now take the component type. - Chg:
FindEfanByFacetValue
is public for use by Pillow. - Chg: Render methods are searched for on the component instance, not just the mixin. This is so it may still be called if it's added dynamically.
v1.0.8
- New:
fandoc
files may be used as efan templates!
v1.0.6
- Chg: Upgraded to Ioc 1.5.0.
- Chg: Upgraded to Ioc Config 1.0.0.
v1.0.4
- Chg:
@InitMethods
may now only returnVoid
orBool
. Throw BedSheet'sReProcessErr
if you wish to perform a different action. - Chg: Multiple components may now share the same template file.
v1.0.2
- Chg: Overhauled API documentation.
- Chg: Tweaked some method signatures with correct nullable types.
v1.0.0
- New: Introduced component lifecycle methods: @InitRender, @BeforeRender & AfterRender.
- New: Added
@Abstract
facet to mark base components. - Chg: Template rendering is held in a single mutable
StrBuf
so it may be manipulated by lifecycle methods. - Chg: Components are now defined by extending
EfanComponent
, not by annotating with a@Component
facet. - Chg: Renamed to
efanXtra
(fromefanExtra
).
v0.0.8
- New: Added
EfanTemplateDirectories
service which scans external directories for efan templates. - New: Compilation err msgs are updated with code hints should a simple component rendering typo be spotted. (ALIEN-AID)
v0.0.6
- New: Fields may be annotated with any facet, not just
@Inject
. Think@Config
!!! - Chg: Updated to efan-1.3.2
- Chg: Better Err msgs if component template not found.
v0.0.4
- New: Component templates can be specified via the
@Component.template
field. - New: Added a contributable
EfanTemplateFinders
service. - New: Ability to suppress startup log messages.
- New: Added compiler hooks (mainly for Pillow).
- New:
efanXtra.component()
returns component instances. - Chg:
@Component
facet is inherited.
v0.0.2
- New: Preview Release