Lucee 7.1 new features
Lucee 7.1 - Debugger, Performance & Compatibility
Lucee 7.1 introduces a native step debugger for VS Code, a wave of performance improvements across the compiler, runtime, and components, better Adobe ColdFusion compatibility for Query of Queries, and Java 25 as the new baseline.
What You Need to Know
- Native Step Debugger: Full DAP debugger with breakpoints, variable inspection, and a CFML debug console — directly in VS Code
- Java 25: Now the baseline — bundled in Docker images and installers
- Faster Everything: Compiler, runtime, JDBC loading, and component instantiation all got faster
- Lighter Components: Properties and accessors are now shared per class instead of duplicated per instance — less memory, less GC pressure
- QoQ Improvements: Case sensitivity options, engine selection, HSQLDB connection pooling
- Maven Extensions: Extension tags and functions can now use Maven coordinates
- SecretProvider API: Extended with set, remove, and list operations
Native Step Debugger
The headline feature. Lucee now has a native Debug Adapter Protocol (DAP) debugger that integrates directly with VS Code via the LuceeDebug extension.
What you get:
- Line and function breakpoints, including conditional breakpoints
- Break on uncaught exceptions with full cfcatch scope
- A
breakpoint()BIF for programmatic breakpoints - Variable inspection, modification, and hover evaluation
- Debug console with autocomplete and live CFML evaluation
- Console output streamed to VS Code
Zero production overhead. The debugger uses Lucee's existing ExecutionLog instrumentation with environment variable flags — when it's off, it's completely off. No agent, no polling, no performance hit.
Setup:
- Set
LUCEE_DAP_SECRET(required for authentication) - Set
LUCEE_DAP_HOSTfor Docker deployments - Install the LuceeDebug extension
See the LuceeDebug extension documentation for full setup instructions.
Java 25
Java 25 is now the baseline for Lucee 7.1. Docker images and installers bundle Java 25.
Java 21 still works, but 25 gives you the best performance and is what we test against.
Performance
Lucee 7.1 includes a broad set of performance improvements. Most of these are transparent — your existing code just runs faster.
CFML Compiler
The compiler is significantly faster, which means quicker first-request times and faster deployments.
If you've ever waited for a large application to compile on first hit, you'll notice the difference.
Faster, Lighter Components
Creating CFC instances is now faster and uses less memory. Properties and accessor functions (getters/setters) are generated once per class and shared across all instances, instead of being recreated every time you call new.
If your application creates a lot of component instances — and most do — this adds up.
Runtime
Under the hood, a long list of internal optimisations make queries return faster, concurrent requests scale better, and the engine produces less garbage for the JVM to clean up. None of these require any changes to your code.
Query of Queries
Case Sensitivity
QoQ string comparisons (LIKE, =, <>, IN) have always been case-insensitive in Lucee. Adobe ColdFusion has been case-sensitive since ColdFusion MX 7.
You can now enable case-sensitive comparisons, configurable at three levels:
- Per-query via
dbtypestruct - Per-application via
this.query.qoqin Application.cfc - Server-wide via environment variable
See Query of Queries (QoQ) for full configuration details and examples.
Engine Selection
Explicitly choose which QoQ engine to use instead of relying on auto-fallback:
"auto"— native first, HSQLDB fallback (default, unchanged)"native"— native only, errors if the SQL isn't supported"hsqldb"— skip native, go straight to HSQLDB
HSQLDB Connection Pooling
QoQ queries that fall back to HSQLDB now use a pool of isolated database instances instead of a single synchronised instance. This removes a bottleneck under concurrent load.
- ~2.4x throughput improvement (30k → 79k ops/sec)
- Pool size defaults to the lesser of CPU cores or 8
- Tunable via system property
lucee.qoq.hsqldb.poolsize
SQL Functions Reference
See QoQ SQL Functions and Operators for the full reference of supported SQL functions and operators.
Maven Support for Extensions
Extension tags and functions can now use Maven coordinates, making it easier to manage dependencies and integrate with existing Java ecosystems.
SecretProvider API
The SecretProvider now supports set, remove, and list operations in addition to the existing get. This enables full lifecycle management of secrets from CFML.
See Secret Management for details.
AI Multipart Content
AI sessions now support sending images, PDFs, and other documents alongside text prompts, and receiving multipart responses (text + generated images). See AI for details and examples.
Core Functionality Moved to Extensions
Some functionality that was previously baked into the Lucee core has been moved into separate extensions. These still ship with the full/fat JAR, but are now independently updatable. The light/zero distributions do not include them.
- SMTP — mail functionality is now in the mail extension
- FTP — FTP functionality is now in the FTP extension
- Compress — extract/compress functionality (zip, gzip) is now in the compress extension. The
extract()andcompress()BIFs are available when the extension is installed (LDEV-5959) - HSQLDB — removed from core (LDEV-5897)
- JTDS — old JTDS MSSQL driver removed from fat JAR (LDEV-6002)
JavaSettings Merge Fix
Previously, JavaSettings defined in Application.cfc would silently replace your cfconfig JavaSettings entirely — losing bundleDirectory, watchInterval, and any loadPaths defined at the system level. This is now fixed: Application.cfc settings properly merge with cfconfig (arrays concatenate, scalars override only when explicitly set).
If you were duplicating cfconfig settings in Application.cfc as a workaround, you may end up with doubled loadPaths. There is also an option to customise the merge behaviour.
Breaking Changes
For the complete list, see Breaking Changes between Lucee 7.0 and 7.1.
Resources
- Query of Queries (QoQ) - QoQ guide with configuration options
- QoQ SQL Functions and Operators - QoQ SQL functions and operators reference
- Selective Cache Invalidation - Selective cache invalidation
- Secret Management - Secret provider guide
- AI - AI integration guide
- Breaking Changes between Lucee 7.0 and 7.1 - Breaking changes between 7.0 and 7.1
- LuceeDebug Extension - Native step debugger for VS Code
- Lucee 7.1 Changelog - Full changelog