Debugging & Logging - License Scanner
Analyze code for feature usage and license compliance
Overview
The License Scanner is a diagnostic tool in ColdFusion Administrator that analyzes your application codebase to identify which ColdFusion features, tags, and functions are actually being used. This powerful analysis helps determine whether you need an Enterprise Edition license or if Standard Edition would suffice, potentially saving significant licensing costs.
Beyond license optimization, the scanner provides valuable insights into your application's feature dependencies, helps identify unused capabilities, and assists with planning upgrades or migrations. The scanner generates comprehensive reports showing exactly which CFML tags, functions, and Enterprise-only features are present in your code.
Purpose and Use Cases
License Optimization
- Cost Reduction
- Identify if applications can run on Standard Edition instead of Enterprise
- Right-Sizing
- Ensure you're paying for only the features you actually use
- Planning
- Determine license requirements before purchasing or renewing
Enterprise Edition costs significantly more; switch to Standard if possible to save on licensing costs.
Feature Discovery
- Inventory
- Catalog which CF features your application relies on
- Documentation
- Generate feature usage reports for technical documentation
- Dependency Mapping
- Understand feature dependencies before refactoring
Help new team members understand application capabilities through comprehensive feature analysis.
Migration Planning
- Version Upgrades
- Identify deprecated features before upgrading CF versions
- Platform Transitions
- Assess compatibility when moving to different CF implementations
- Lucee Migration
- Compare feature usage with Lucee compatibility
Verify feature availability in cloud-hosted CF environments and alternative platforms.
Compliance and Auditing
- License Audits
- Provide evidence of feature usage during vendor audits
- Compliance Reports
- Document that you're using appropriate license tier
- Multi-Server Validation
- Ensure all servers have correct license types
Track feature usage changes over time for historical compliance tracking.
Running the License Scanner
Configuration
- Directory Selection
- Specify root directory containing CFML files to scan
- Include Subdirectories
- Option to recursively scan all subdirectories
- File Types
- Automatically includes .cfm, .cfc, .cfml files
Can scan entire webroot or specific application directories. May allow excluding vendor code and third-party libraries.
Execution
- Start Scan
- Click button to initiate scanning process
- Progress Indicator
- Shows scanning progress and files processed
- Duration
- Scan time depends on codebase size (seconds to minutes)
Minimal impact on server performance during scan. Runs in background; administrator remains responsive.
Report Generation
- Automatic
- Report generated immediately upon scan completion
- Format
- HTML report displayed in administrator interface
- Export Options
- May support exporting to PDF or CSV
Previous scan results may be accessible. Some versions allow comparing multiple scan results.
Identifying Feature Usage
CFML Tags
- Detection
- Scans for all CFML tag usage throughout codebase
- Frequency
- Reports how many times each tag appears
- Location
- Shows which files contain each tag
Identifies common tags (cfquery, cfoutput, cfloop) and rare tags that might be refactored.
CFML Functions
- Function Calls
- Catalogs all function invocations in code
- Built-in Functions
- Tracks usage of CF built-in functions
- Usage Patterns
- Identifies most frequently used functions
May distinguish between built-in and UDFs. Flags deprecated functions in current CF version.
Enterprise-Only Features
- Critical Detection
- Specifically identifies features requiring Enterprise Edition
- Gateway Services
- Event gateways (SMS, IM, Directory Watcher)
- Advanced Features
- Distributed caching, cluster management, .NET integration
Includes server monitoring APIs, advanced PDF capabilities, and Solr integration.
Standard Edition Features
- Core CFML
- All standard tags and functions
- Database Access
- Basic database operations and file I/O capabilities
- Web Services
- Basic SOAP and REST support, email, charting
Comprehensive support for most common web application features without Enterprise licensing.
Compliance Checking
License Requirement Analysis
- Verdict
- Clear indication if Standard or Enterprise license required
- Reasoning
- Explanation of why Enterprise is needed (if applicable)
- Feature List
- Specific Enterprise features detected in code
Shows occurrence count and whether Enterprise features are in core application or optional modules.
Standard Edition Compatibility
- Green Light
- If no Enterprise features detected, confirms Standard compatibility
- Confidence Level
- High confidence when comprehensive scan completed
- Recommendations
- Suggestions for confirming compatibility through testing
If close to Standard-compatible, provides guidance on removing Enterprise dependencies.
Enterprise Edition Requirements
- Mandatory Features
- List of detected Enterprise-only features
- Usage Context
- Where and how Enterprise features are used
- Alternatives
- Suggestions for Standard-compatible alternatives (if available)
Impact assessment shows difficulty of removing Enterprise dependencies.
Gray Areas and Limitations
- Dynamic Code
- May not detect dynamically generated CFML
- Conditional Logic
- Features in dead code paths still flagged
- Version Differences
- Feature availability varies by CF version
Third-party code usage not always clear. Some edge cases require manual verification.
Report Analysis
Summary Section
- Overall Verdict
- Standard or Enterprise license required
- File Count
- Total CFML files scanned
- Feature Count
- Number of distinct features detected
Shows total lines processed (if provided) and count of Enterprise-only feature usages.
Detailed Feature List
- Feature Name
- Specific tag, function, or capability
- Edition
- Standard, Enterprise, or Both
- Occurrences
- Number of times feature appears in code
List of files containing the feature with specific line numbers (if available).
File-by-File Breakdown
- File Path
- Full path to each scanned file
- Features Used
- List of features detected in that file
- Enterprise Flags
- Clear marking of files using Enterprise features
Assessment of file importance to application and criticality ratings.
Actionable Recommendations
- License Decision
- Clear guidance on appropriate license tier
- Cost Savings
- Estimated savings if downgrading to Standard (if applicable)
- Refactoring Suggestions
- How to eliminate Enterprise dependencies (if close)
Recommendations for validating Standard Edition compatibility through testing.
Report Generation and Export
Built-in Reporting
- HTML View
- Interactive report displayed in administrator
- Filtering
- Filter by feature type, edition requirement, or file
- Sorting
- Sort by feature, occurrence count, or file name
Expandable sections allow collapse/expand of detailed sections for easier navigation.
Export Options
- PDF Export
- Generate PDF for distribution or archival
- CSV Export
- Export data for analysis in Excel or databases
- Print-Friendly
- Formatted for printing if needed
Option to email report to stakeholders for distribution and review.
Historical Tracking
- Scan History
- Keep record of previous scans (if supported)
- Comparison
- Compare current scan with previous results
- Trend Analysis
- Track feature usage changes over time
Audit trail documents when scans were performed and by whom.
Best Practices
License Management
- Run license scan before purchasing or renewing ColdFusion licenses
- Scan all production applications across all servers
- Review scan results with financial and technical stakeholders
- Document scan results for license compliance audits
- Re-scan after major application changes or additions
- Consider scanning quarterly to track feature usage trends
- Use scan results to negotiate licensing with Adobe
Development and Planning
- Scan during initial application assessment and planning
- Include scan results in technical documentation
- Use feature inventory for onboarding new developers
- Review Enterprise feature usage to assess if alternatives exist
- Scan before major refactoring to understand dependencies
- Test application on Standard Edition if scan indicates compatibility
Migration and Upgrades
- Scan before upgrading to new ColdFusion version
- Identify deprecated features that need updating
- Use scan to plan migration from Enterprise to Standard (if feasible)
- Document feature usage before migrating to alternative platforms
- Create baseline scan before starting migration project
- Re-scan after migration to verify feature parity
Comprehensive Scanning
- Include all application directories in scan
- Scan shared libraries and utility directories
- Include administrative and maintenance scripts
- Don't exclude third-party code without understanding its requirements
- Scan multiple times if codebase changes frequently
- Consider scanning development, staging, and production if they differ
Result Interpretation
- Don't assume scan is 100% comprehensive - review results manually
- Verify detected Enterprise features are actually in use (not dead code)
- Consider whether Enterprise features are truly required
- Investigate alternatives for Enterprise features if cost is concern
- Test on Standard Edition if scan is borderline
- Get second opinion from ColdFusion experts on critical decisions
Common Issues and Solutions
Incomplete Scan Results
- Symptom: Known features not appearing in scan results
- Cause: Files not included in scan path, dynamic code generation
- Solution: Verify scan path includes all application directories
- Dynamic Code: Manually review code that generates CFML at runtime
- External Files: Ensure cfinclude'd files are in scan path
False Positives for Enterprise Features
- Symptom: Enterprise features flagged but not actually used
- Cause: Dead code, commented code, or conditional logic
- Solution: Manually review flagged files to verify actual usage
- Comments: Scanner may detect features in code comments
- Testing: Run application on Standard Edition to verify compatibility
Scan Performance Issues
- Symptom: Scan takes extremely long or times out
- Cause: Very large codebase, slow disk I/O
- Solution: Scan smaller directory trees separately
- Exclusions: Exclude known third-party or vendor directories
- Timeout: Increase scan timeout if configurable
Report Not Generated
- Symptom: Scan completes but no report displayed
- Cause: Error during report generation, memory issues
- Solution: Check ColdFusion error logs for details
- Memory: Increase JVM heap if report generation fails
- Browser: Try different browser or clear cache
Version-Specific Feature Detection
- Symptom: Scan results don't match expected CF version capabilities
- Cause: Scanner based on current CF version, not target version
- Solution: Manually verify feature availability in target CF version
- Documentation: Consult CF documentation for version-specific features
- Testing: Test on actual target CF version
Enterprise vs Standard Edition Features
Key Enterprise-Only Features
- Event Gateways: SMS, IM, Directory Watcher, custom gateways
- Server Monitoring: Built-in monitoring tools and APIs
- .NET Integration: Calling .NET assemblies from CFML
- Advanced Caching: Distributed caching, ehcache integration
- Enterprise Manager: Centralized multi-server management
- Advanced Security: Sandbox security, advanced user management
- PDF Manipulation: Some advanced PDF features (signing, redaction)
- WebSocket: Advanced WebSocket features (some versions)
- Scheduler Clustering: Cluster-aware scheduled tasks
Features Available in Both Editions
- Core CFML: All standard tags and functions
- Database Access: Full database functionality
- Web Services: SOAP, REST creation and consumption
- PDF Generation: Basic PDF creation from HTML/reports
- Image Manipulation: cfimage and image functions
- Email: Send and receive email
- File Operations: Complete file system access
- Charting: Built-in charting capabilities
- Scheduling: Basic scheduled tasks
- ORM: Hibernate ORM integration
Decision Framework
When to Use Standard Edition
- No Enterprise-only features detected in scan
- Single-server deployment
- No advanced monitoring requirements
- No event gateway usage
- Budget-conscious projects
- Small to medium-sized applications
- Successfully tested on Standard Edition
When Enterprise Edition is Required
- Uses event gateways (SMS, IM, Directory Watcher)
- Requires .NET integration
- Needs built-in server monitoring
- Multi-server deployment requiring centralized management
- Advanced security requirements (sandboxing)
- Requires distributed caching across servers
- Uses advanced PDF manipulation features
Cost-Benefit Analysis
- Calculate annual license cost difference (Enterprise vs Standard)
- Estimate effort to remove Enterprise dependencies
- Consider ongoing maintenance costs
- Evaluate business value of Enterprise-only features
- Factor in alternative solutions (external tools, services)
- Account for testing and migration time
Related Resources
- Debugging & Logging - Code Analyzer - Static code analysis tool
- Server Settings - Settings Summary - Configuration overview
- Security - Administrator - Security configuration
- ColdFusion Administrator Reference - Main administrator guide