All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
3.6.0 - 2025-02-19
3.5.0 - 2025-02-19
3.4.0 - 2023-09-18
- Excludes not working on property aliases
- BoxLang certification, pending ORM updates
- Updated scripts
3.4.0 - 2023-09-18
- Full null support
cfproperty
doesn't work on lucee. #38
- ColdBox BE Auto Testing
- Adobe 2023 Certification
- Ortus ORM extension
- Github actions update
- ColdBox 6, 7 Auto testing
autoCastBooleans
ongetMemento()
was always set totrue
.
- New global settings
autoCastBooleans
which allows you to turn this feature on or off. By default we inspect if a value is not numeric andisBoolean
and auto cast it to JavaBoolean
so it translated to a boolean in json. - New
this.memento.autoCastBooleans
so you can turn on/off this feature at an entity level. - New
autoCastBooleans
argument to thegetMemento()
to turn on/off this feature for that call only.
- Issue occurs where the
iso8601Format
flag is only being applied to the top level object properties and does not cascade, resulting in child date properties not being properly formatted. #33 datemask
andtimeMask
arguments where not being params by defaultgh-release
action had the wrong code
- Updated all the GHA actions to newest levels and compatible Java builds.
- Refactored the ORM includes to its own function
- ORM Includes is only set to
true
ifcborm
has been registered
- fix: Use
box:
namespace for CommandBox compatibility
- New github action workflows
- New module template files
- Faster approach to dealing with loading and processing of entities by eager loading Java classes that are used always
- Prevent argument modification and duplicate includes processing: #26
- Dropped ACF2016
- Migration to github actions
- CFFormatting Rules
- New mementifier
profiles
. You can now create multiple output profiles in yourthis.memento.profiles
which can be used to mementify your object graph.
- New setting
convertToTimezone
which if you set a timezone, mementifier will convert date/time's to that specific timezone.
- Ability to do output aliases using
:
notation:property:alias
- When using orm with composite keys and no default includes it should look at the metdata for the identifier type not the includes
- ColdBox 6 Testing upgrades
- cborm 3 testing
- TestBox 4 upgrade
- Full varscoping access to avoid scope lookups
- Markdown linting
- Updated formatting rules
- Updated travis OS
- fix: Correctly apply nested mappers #20
- Thanks to @elpete you can now add date/time formatting rules at the
getmemento()
level and thethis.memento
level. Please see the readme for further information.
- Reverted missing
nestedIncludes.len()
for ignore defaults on nested hierarchies.
- Allow defaults to be
null
thanks to @elpete - Updated changelog to new keepachangelog.com standards
- Added new release recipe according to new module template
- Added new formating rules
- Added github auto publishing on releases
Feature
: Enabled mappers to be called after memento was finalized in order to allow you to build composite properties and non-existent properties on the mementoFeature
: New settingtrustedGetters
to allow you to leverage virtualgetters()
especially on frameworks like Quick. This setting can also be used in thegetMemento()
calls directly or setup in an entity definition.
- Enabled wildcard default includes (*) to retrieve inherited object properties instead of doing wacky things for inherited defaults to work.
- New setting to chose a default value to expose when getters return
null
:nullDefaultValue
- ORM Auto includes now ONLY includes properties to avoid bi-directional recursive exceptions. This is also a compatiblity, where before EVERYTHING was included. Now, only properties are included.
- Updated to cborm2 for testing harness
- Updated to TestBox 3
- Removed ACF 11 Support
- ORM Auto includes only marshalls properties instead of everything.
- More Adobe ColdFusion incompatibilities
- Added the
ResultsMapper
model which will create results map a-la cffractal. Just inject and call via theprocess()
method.
- ACF11 Compats
- Allow for
defaultIncludes = [ "*" ]
to introspect the properties of the object automatically instead of writing all properties manually.
- Allow for arrays of complex objects that don't have mementos
- ACF11 Incompats due to member functions
- Only process memento based objects from WireBox.
- Wrong date formatting pattern for Java SimpleDateFormat
- New setting:
ormAutoIncludes
which defaults totrue
. If enabled, and an ORM entity does not have any includes defined, we will automatically include all ORM properties including relationships.
- ACF Incompatibilities
- Ensure result item
- Fixes on non-existent properties
- Major performance boosts
- Lucee issues with degradation over time
- Fix on WireBox target detection
- First iteration of this module