Repository navigation
Conversation
- All module sources are BoxLang classes (.bx), ModuleConfig.bx included.
- BaseORMService, VirtualEntityService and ActiveEntity keep their API and
delegate to the bx-orm BIFs. newCriteria() returns entityCriteria().
- One EventHandler (BXEventHandler kept as a deprecated alias), with the
new ORMPostCommit point; ORMPostNew fires once from new().
- CriteriaEventBridge relays bx-orm's criteria events to ColdBox.
- HibernateTransaction aspect rides BoxLang transaction{}.
- DynamicProcessor: HQL cached per entity/method, list params bound as
lists on every call, bx-orm nonUnique mapped to NonUniqueResultException.
- Removed the Hibernate 5 criteria API (criterion/*), SQLHelper,
ORMUtil/JavaProxyBuilder and the Adobe engine support.
- CI: BoxLang engines only; temporary step builds bx-orm 2 from its
migration branch until it is published.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SnmFsqBfa9SR4V1rRXw57X
- Harness runs on BoxLang only with cborm.models.EventHandler; specs for the removed criteria API, SQLHelper and ORM utilities are deleted. - Specs use JPA ?1 parameters and cover newCriteria() on bx-orm (restrictions, SQL log, projections), the criteria event bridge, ORMPostNew fired once and the new ORMPostCommit point. - UPGRADING.md lists what stays, what changed and what was removed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SnmFsqBfa9SR4V1rRXw57X
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SnmFsqBfa9SR4V1rRXw57X
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SnmFsqBfa9SR4V1rRXw57X
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SnmFsqBfa9SR4V1rRXw57X
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SnmFsqBfa9SR4V1rRXw57X
Hibernate 7 instantiates entities while the ORM starts (to infer unsaved id values), before ColdBox puts WireBox in the application scope. An ActiveEntity's init() read application.wirebox and failed the ORM boot. getWireBox() and getLogger() now resolve them on first use. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SnmFsqBfa9SR4V1rRXw57X
Mementifier (and apps) call getEntityMetadata().getPropertyTypes(), getPropertyNames(), hasIdentifierProperty(), ... - the Hibernate 5 ClassMetadata API, which the Hibernate 7 entity persister still has. getKey(), getPropertyNames() and getTableName() read entityGetMetadata(). The VES count spec uses the declared property case (HQL is case-sensitive in Hibernate 6+). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SnmFsqBfa9SR4V1rRXw57X
Dynamic finders map each sortBy property to its declared case, since HQL property names are case-sensitive. The ActiveEntity count spec uses the declared property case. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SnmFsqBfa9SR4V1rRXw57X
bx-orm 2 now resolves HQL entity and property names in any case and rewrites plain ? positional parameters, so neither is a cborm 6 breaking change. UPGRADING and the changelog are corrected, and specs use a lowercase property and plain ? parameters to prove both. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SnmFsqBfa9SR4V1rRXw57X
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SnmFsqBfa9SR4V1rRXw57X
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SnmFsqBfa9SR4V1rRXw57X
… service fixes
- asStream returns a Java Stream read from the database (bx-orm asStream);
cbstreams and cbpaginator are no longer dependencies
- exists/countWhere/deleteWhere/deleteByID/deleteAll/getAll run on bx-orm
criteria: validated properties, composite ids, bulk deletes flush first,
no HQL injection through sortOrder or dynamic finder sortBy
- save/delete/saveAll flush every datasource they touch
- New: findWhereOrFail, firstOrNew, firstOrCreate, updateWhere,
getReference, lock, readOnly, options pass-through; ActiveEntity lock,
toStruct and entity=this defaults
- ORMPreFlush from bx-orm onFlush/onAutoFlush; entityNew() autowires
- DynamicProcessor: no property-name cache or lock, id properties in the
grammar, typed orm.* errors, self-healing compile cache, clearCache()
- Fixes: VES deleteAll/evictCollection/signatures, injection include
matching, DML detection, findWhere consistency, validationResult,
isValid includeFields, re-entrant new()
- Resource handler builds its own pagination block and falls back to
entityToStruct() without mementifier
- Transactions rely on BoxLang transaction{} rollback (no request flag)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SnmFsqBfa9SR4V1rRXw57X
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SnmFsqBfa9SR4V1rRXw57X
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SnmFsqBfa9SR4V1rRXw57X
… no annotations key Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SnmFsqBfa9SR4V1rRXw57X
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SnmFsqBfa9SR4V1rRXw57X
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SnmFsqBfa9SR4V1rRXw57X
Actions > Pre-Release (next) > Run workflow builds 6.0.0-<label>.<n> (label alpha, beta or rc; n is the next free number from the existing tags), runs the tests, uploads to downloads.ortussolutions.com and ForgeBox, tags the commit and creates a GitHub pre-release. Build.cfc now makes only development builds snapshots, so a pre-release keeps its version. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SnmFsqBfa9SR4V1rRXw57X
…e-release process Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SnmFsqBfa9SR4V1rRXw57X
lmajano
marked this pull request as ready for review
October 14, 2026 11:02
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Release PR for cborm 6: merges
nextintodevelopment. It pairs with ortus-boxlang/bx-orm#117 (bx-orm 2, Hibernate 7.4).cborm 6 is a pure BoxLang module built on bx-orm 2:
.bx).newCriteria()returns bx-orm'sentityCriteria()builder.transaction{}.cbstreams, and the resource handler builds its own pagination instead of usingcbpaginator.orm.*errors, and a list of bug fixes.The full list is in
changelog.mdunder Unreleased, and the migration steps are inUPGRADING.md.Kept as a draft so it ships together with bx-orm 2.0.0.
Issues
None filed for the release itself.
Type of change
Checklist
🤖 Generated with Claude Code
https://claude.ai/code/session_01SnmFsqBfa9SR4V1rRXw57X