v3.1 internal refactor: replace WireBox/TestBox, decompose init#1883
Merged
v3.1 internal refactor: replace WireBox/TestBox, decompose init#1883
Conversation
Remove Ortus Solutions dependencies (WireBox DI container and TestBox package) to eliminate external dependency management issues across the 8-engine test matrix. Replace with: - Injector.cfc: Lightweight DI container with map/to/asSingleton API, self-registers as application.wirebox for backward compatibility - Bindings.cfc: DI binding configuration (global, eventmethods, ViewObj) - wheels/testbox/: Bundled TestBox subset with BDD runner, reporters, and minimal globber for bundle discovery Components (Controller, Model, Test, Dispatch, onapplicationstart) now create Plugins directly via `new wheels.Plugins()` instead of relying on WireBox property injection, matching the pattern already used by EventMethods.cfc. All box.json files updated to remove testbox/wirebox dependencies. Application.cfc templates updated to use new Injector. Test runners updated to reference bundled testbox path. Verified: tests match baseline exactly (81 bundles, 1723 specs, 0 failures) across Lucee 5, Lucee 6, H2, MySQL, and PostgreSQL. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ons, fix test errors - Remove legacy core/tests/ directory (old RocketUnit structure, unused) - Rename $wbMixer marker to $mixed in MixerUtil.cfc - Organize Global.cfc with clear section markers (cache, factory, routing, text, datetime, request, params, misc, cors) - Decompose onapplicationstart.cfc settings into 7 init includes: caching, security, debugging, orm, views, formats, functions (reduces from ~1017 to ~291 lines) - Parameterize addRecord/updateRecord in Migration.cfc using queryExecute with bound parameters instead of string concatenation - Add $executeWithParams helper to migrator Base.cfc - Add MockBox + mockutils to bundled TestBox (fixes 53 mapper spec errors) Test results: 81 bundles, 1723 specs, 0 failures, 0 errors across H2, MySQL, and PostgreSQL on Lucee 6. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adobe ColdFusion statically registers all function definitions from included .cfm files at CFC compile time. Since runner.cfm is included from multiple Public.cfc methods (directly and via views/runner.cfm), Adobe throws DuplicateFunctionDefinitionException. Convert setTestboxEnvironment and $duplicateWheelsEnvironment from named private functions to variables-scoped closures, which don't get registered in the CFC's function table. Tested: Lucee 5/6/7, Adobe 2023/2025, BoxLang — 0 failures, 0 errors. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Resolve conflicts by keeping v3.1 refactored approach (decomposed init includes, no wirebox/testbox deps) while preserving authenticateThis plugin addition from develop. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The Oracle JDBC download URL in tests.yml was replaced with literal "..." causing all Adobe CF engine tests to fail. The other workflow files had similar issues with paths changed to reference root box.json that doesn't exist. Restoring correct templates/base/src/ paths. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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.
Summary
Test plan
🤖 Generated with Claude Code