<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Deepak Sir</title>
    <description>The latest articles on DEV Community by Deepak Sir (@deepak_sir__).</description>
    <link>https://dev.to/deepak_sir__</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3924748%2F642b10f5-bbca-46b4-93f8-0c9031ef7b65.png</url>
      <title>DEV Community: Deepak Sir</title>
      <link>https://dev.to/deepak_sir__</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/deepak_sir__"/>
    <language>en</language>
    <item>
      <title>Code Review Checklist for ColdFusion PRs: What Senior Devs Catch Before Merging</title>
      <dc:creator>Deepak Sir</dc:creator>
      <pubDate>Wed, 16 Sep 2026 05:40:44 +0000</pubDate>
      <link>https://dev.to/deepak_sir__/code-review-checklist-for-coldfusion-prs-what-senior-devs-catch-before-merging-1jfh</link>
      <guid>https://dev.to/deepak_sir__/code-review-checklist-for-coldfusion-prs-what-senior-devs-catch-before-merging-1jfh</guid>
      <description>&lt;p&gt;A good ColdFusion code review isn’t a style debate — it’s a systematic check for the specific bugs, security holes, and performance traps that CFML makes easy to introduce. Senior reviewers scan every pull request for a consistent set of things: is every query parameterized with  (the SQL-injection check), is every variable inside a CFC method var/local-scoped (the ColdFusion threading bug that corrupts data under load), is shared-scope access (session/application/server) locked or handled safely, is user output encoded (encodeForHTML/encodeForJavaScript/encodeForURL — the XSS check), are errors handled without leaking stack traces, file paths, or datasource names, are credentials in environment variables rather than hardcoded, and will this query pattern scale (no N+1, no unbounded loops holding connections). The best teams encode as much of this as possible into automated gates — CFLint for the mechanical checks, "block the merge if a changed cfquery lacks cfqueryparam" — so human reviewers focus on logic and design. This guide is that checklist, organized by what senior ColdFusion devs actually catch before approving a PR.&lt;br&gt;
&lt;strong&gt;&lt;a href="https://medium.com/@Coding-Algorithms/code-review-checklist-for-coldfusion-prs-what-senior-devs-catch-before-merging-62e797259a43?sharedUserId=Coding-Algorithms" rel="noopener noreferrer"&gt;Read More&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>devops</category>
      <category>opensource</category>
      <category>security</category>
    </item>
    <item>
      <title>ColdFusion Java Integration Causing Classloader Conflicts Between Applications</title>
      <dc:creator>Deepak Sir</dc:creator>
      <pubDate>Tue, 15 Sep 2026 05:47:40 +0000</pubDate>
      <link>https://dev.to/deepak_sir__/coldfusion-java-integration-causing-classloader-conflicts-between-applications-cn5</link>
      <guid>https://dev.to/deepak_sir__/coldfusion-java-integration-causing-classloader-conflicts-between-applications-cn5</guid>
      <description>&lt;p&gt;&lt;strong&gt;One JAR, Many Versions: Fixing ColdFusion Classloader Conflicts Between Apps&lt;/strong&gt;&lt;br&gt;
Your ColdFusion server hosts several applications, each using Java libraries. One application needs a newer version of a library, so you add its JAR. Then a different application breaks. It throws a strange error about a method that should exist, or a loader constraint violation.&lt;br&gt;
&lt;strong&gt;&lt;a href="https://medium.com/@Coding-Algorithms/coldfusion-java-integration-causing-classloader-conflicts-between-applications-19c059a6eb32?sharedUserId=Coding-Algorithms" rel="noopener noreferrer"&gt;Read More&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>java</category>
      <category>devops</category>
      <category>opensource</category>
    </item>
    <item>
      <title>ColdFusion Java Class Loading Fails After Application Reload</title>
      <dc:creator>Deepak Sir</dc:creator>
      <pubDate>Mon, 14 Sep 2026 05:56:17 +0000</pubDate>
      <link>https://dev.to/deepak_sir__/coldfusion-java-class-loading-fails-after-application-reload-5579</link>
      <guid>https://dev.to/deepak_sir__/coldfusion-java-class-loading-fails-after-application-reload-5579</guid>
      <description>&lt;h2&gt;
  
  
  Class Not Found After Reload: Fixing ColdFusion Java Class Loading
&lt;/h2&gt;

&lt;p&gt;Your ColdFusion application loads a Java JAR through javaSettings and works perfectly. Then you update the JAR, and the application reloads to pick it up. Suddenly, a class-not-found error appears. The JAR is right there on disk, yet ColdFusion cannot find its classes.&lt;br&gt;
&lt;strong&gt;&lt;a href="https://medium.com/@Coding-Algorithms/coldfusion-java-class-loading-fails-after-application-reload-e5e8c7ef39e3?sharedUserId=Coding-Algorithms" rel="noopener noreferrer"&gt;Read More&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>java</category>
      <category>security</category>
      <category>opensource</category>
    </item>
    <item>
      <title>ColdFusion Integration Testing With a Real Database: Strategies That Don’t Wreck Prod Data</title>
      <dc:creator>Deepak Sir</dc:creator>
      <pubDate>Thu, 10 Sep 2026 05:41:22 +0000</pubDate>
      <link>https://dev.to/deepak_sir__/coldfusion-integration-testing-with-a-real-database-strategies-that-dont-wreck-prod-data-4jj6</link>
      <guid>https://dev.to/deepak_sir__/coldfusion-integration-testing-with-a-real-database-strategies-that-dont-wreck-prod-data-4jj6</guid>
      <description>&lt;p&gt;Integration tests that exercise your ColdFusion data layer against a real database give you the truest picture of production behavior — but only if they never touch production data and never leave test rows behind. The golden rule is twofold: never run integration tests against your production database, and never mock the database in an integration test (mocking is for unit tests; integration tests exist precisely to verify the real SQL). Three strategies keep this safe. (1) A dedicated test database — a separate datasource, seeded with a known schema and fixture data, that tests can freely mutate and reset; never point tests at prod. (2) Transaction rollback per test — the most powerful pattern: wrap each test in a cftransaction, let it insert/update/delete freely, then roll back at the end so every change vanishes and the next test starts from a clean slate — no cleanup code, no residue. (3) Explicit seed-and-teardown — seed known data before each test and delete it after, for the cases where rollback won't work. In TestBox, you hook these into the spec lifecycle (beforeEach/afterEach/aroundEach). This guide shows each strategy in ColdFusion, with the principles that keep a real-database test suite fast, isolated, and prod-safe.&lt;br&gt;
&lt;strong&gt;&lt;a href="https://medium.com/@Coding-Algorithms/coldfusion-integration-testing-with-a-real-database-strategies-that-dont-wreck-prod-data-9fda84def043?sharedUserId=Coding-Algorithms" rel="noopener noreferrer"&gt;Read More&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>security</category>
      <category>opensource</category>
      <category>database</category>
    </item>
    <item>
      <title>Mocking CFCs in TestBox: How to Isolate and Unit Test ColdFusion Business Logic</title>
      <dc:creator>Deepak Sir</dc:creator>
      <pubDate>Wed, 09 Sep 2026 08:01:13 +0000</pubDate>
      <link>https://dev.to/deepak_sir__/mocking-cfcs-in-testbox-how-to-isolate-and-unit-test-coldfusion-business-logic-46k4</link>
      <guid>https://dev.to/deepak_sir__/mocking-cfcs-in-testbox-how-to-isolate-and-unit-test-coldfusion-business-logic-46k4</guid>
      <description>&lt;p&gt;Mocking is how you unit-test a ColdFusion component’s business logic in isolation — without its real dependencies (database, email, HTTP, payment gateway) actually running. TestBox includes MockBox, a stubbing and mocking framework that replaces a CFC’s collaborators with fakes you control, so a test exercises only the logic you’re testing. You create a fake with createMock() (wrap an object for mocking/spying), createEmptyMock() (remove all methods so you only mock what you need), or createStub() (a blank object from scratch); you program its behavior with $( "methodName", returnValue ) (make a method return something), $args() (return based on specific arguments), $results() (return a sequence across calls), and $throws() (simulate a failure); you inject it into the component under test with $property(); and you verify interactions with $times() / $verifyCallCount(), $once(), $never(), and $atLeast(). The result: a test that runs in milliseconds, hits no real database, sends no real email, and can simulate any success or failure case — testing your logic, not your dependencies. This guide covers the full MockBox API with working examples.&lt;br&gt;
&lt;strong&gt;&lt;a href="https://medium.com/@Coding-Algorithms/mocking-cfcs-in-testbox-how-to-isolate-and-unit-test-coldfusion-business-logic-51ad5e695d96?sharedUserId=Coding-Algorithms" rel="noopener noreferrer"&gt;Read More&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>security</category>
      <category>testing</category>
    </item>
    <item>
      <title>TestBox for ColdFusion: From Zero Test Coverage to a CI-Passing Suite in One Week</title>
      <dc:creator>Deepak Sir</dc:creator>
      <pubDate>Tue, 08 Sep 2026 12:52:40 +0000</pubDate>
      <link>https://dev.to/deepak_sir__/testbox-for-coldfusion-from-zero-test-coverage-to-a-ci-passing-suite-in-one-week-hji</link>
      <guid>https://dev.to/deepak_sir__/testbox-for-coldfusion-from-zero-test-coverage-to-a-ci-passing-suite-in-one-week-hji</guid>
      <description>&lt;p&gt;You can take a ColdFusion application from zero automated tests to a CI pipeline that runs your suite on every push in about a week, using TestBox — the BDD/TDD testing and mocking framework for CFML (and BoxLang) from Ortus. The path is concrete: install TestBox as a dev dependency (box install testbox testbox-cli --saveDev), scaffold a /tests harness, write specs as CFCs extending testbox.system.BaseSpec using the clean describe() / it() / expect() syntax, mock dependencies with MockBox (createMock()) so units test in isolation, run the suite locally with testbox run from CommandBox, and wire it into CI (GitHub Actions, GitLab, Jenkins) so every push runs the tests and fails the build on a red test. TestBox produces JUnit and 15+ other reports out of the box, and free GitHub Actions (coldfumonkeh/cfml-testbox-action or the official Ortus-Solutions/setup-commandbox) run it against your chosen ColdFusion engine — even a matrix of engines. This guide is the day-by-day, one-week plan to get there.&lt;br&gt;
&lt;strong&gt;&lt;a href="https://medium.com/@Coding-Algorithms/testbox-for-coldfusion-from-zero-test-coverage-to-a-ci-passing-suite-in-one-week-47e0d52d9f2b?sharedUserId=Coding-Algorithms" rel="noopener noreferrer"&gt;Read More&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>security</category>
      <category>devops</category>
    </item>
    <item>
      <title>Event-Driven ColdFusion With ColdBox Interceptors and SQS: Decoupling Your Monolith</title>
      <dc:creator>Deepak Sir</dc:creator>
      <pubDate>Fri, 04 Sep 2026 06:12:28 +0000</pubDate>
      <link>https://dev.to/deepak_sir__/event-driven-coldfusion-with-coldbox-interceptors-and-sqs-decoupling-your-monolith-3oam</link>
      <guid>https://dev.to/deepak_sir__/event-driven-coldfusion-with-coldbox-interceptors-and-sqs-decoupling-your-monolith-3oam</guid>
      <description>&lt;p&gt;You decouple a ColdFusion monolith by making it event-driven — instead of one giant function that does ten things in sequence, code announces that something happened and independent listeners react. ColdFusion gives you two complementary tools for this. ColdBox interceptors are an in-process event bus: they implement the observer/publisher-subscriber pattern, so you announce("onOrderPlaced", { order = prc.order }) and any registered interceptor "listening" for that event runs — decoupling your code within the application without the caller knowing who reacts. Amazon SQS (Simple Queue Service) is an out-of-process, durable message queue: your app drops a message on a queue with ColdFusion's native getCloudService() SQS integration (built in since ColdFusion 2021), and a separate worker consumes and processes it later — decoupling work across time and process, so slow or failure-prone tasks (emails, PDF generation, third-party syncs) run asynchronously and don't block or crash the request. Used together: an interceptor fires on a domain event and drops a durable message on SQS; a worker processes it independently. This is how a tangled ColdFusion monolith becomes a set of loosely-coupled, event-driven components — without a full microservices rewrite. This guide shows both, with working code.&lt;br&gt;
&lt;strong&gt;&lt;a href="https://medium.com/@Coding-Algorithms/event-driven-coldfusion-with-coldbox-interceptors-and-sqs-decoupling-your-monolith-31834d639079?sharedUserId=Coding-Algorithms" rel="noopener noreferrer"&gt;Read More&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>devops</category>
      <category>security</category>
    </item>
    <item>
      <title>Microservices With ColdFusion: API Gateway Pattern, Service Discovery, and Inter-Service Auth</title>
      <dc:creator>Deepak Sir</dc:creator>
      <pubDate>Thu, 03 Sep 2026 06:22:57 +0000</pubDate>
      <link>https://dev.to/deepak_sir__/microservices-with-coldfusion-api-gateway-pattern-service-discovery-and-inter-service-auth-41fn</link>
      <guid>https://dev.to/deepak_sir__/microservices-with-coldfusion-api-gateway-pattern-service-discovery-and-inter-service-auth-41fn</guid>
      <description>&lt;p&gt;ColdFusion fits a microservices architecture as the service implementation — each service is a ColdFusion REST API (native REST since CF10, or via Taffy/ColdBox/FW/1) — while the surrounding infrastructure handles the cross-cutting patterns. The API gateway is the single entry point: it terminates TLS, validates the caller’s JWT once, applies rate limiting and routing, and forwards the request to the right ColdFusion service with the validated identity injected as headers (e.g., X-User-Id, X-User-Role) — so your CFML never validates JWT signatures and your signing secret never lives in application code. Service discovery solves "where is service B?" without hardcoding IPs: services register with a registry (Consul, Eureka, etcd) or use Kubernetes' built-in DNS-based discovery, and callers look up healthy instances by name. Inter-service authentication secures service-to-service calls behind the gateway: mutual TLS (mTLS, e.g., via Consul Connect's service mesh) so each side proves its identity, or short-lived service tokens (client-credentials OAuth2), always over TLS. The key architectural insight: ColdFusion writes the business logic; the gateway, registry, and service mesh are infrastructure that ColdFusion services plug into — most run in containers/Kubernetes alongside your CF instances. This guide covers each pattern and how ColdFusion participates.&lt;br&gt;
&lt;strong&gt;&lt;a href="https://medium.com/@Coding-Algorithms/microservices-with-coldfusion-api-gateway-pattern-service-discovery-and-inter-service-auth-3df016ba411d?sharedUserId=Coding-Algorithms" rel="noopener noreferrer"&gt;Read More&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>devops</category>
      <category>security</category>
    </item>
    <item>
      <title>ColdFusion Dependency Injection With WireBox: Why DI Matters for CFML Testability</title>
      <dc:creator>Deepak Sir</dc:creator>
      <pubDate>Wed, 02 Sep 2026 05:48:10 +0000</pubDate>
      <link>https://dev.to/deepak_sir__/coldfusion-dependency-injection-with-wirebox-why-di-matters-for-cfml-testability-1gg1</link>
      <guid>https://dev.to/deepak_sir__/coldfusion-dependency-injection-with-wirebox-why-di-matters-for-cfml-testability-1gg1</guid>
      <description>&lt;p&gt;Dependency injection (DI) is the practice of giving an object its dependencies from the outside instead of letting it create them internally — and in ColdFusion, WireBox (the DI/AOP framework from Ortus, bundled with ColdBox and available standalone) does this automatically. Instead of variables.userDAO = new UserDAO() hard-wired inside your service, you declare property name="userDAO" inject="UserDAO"; and WireBox supplies it. This matters enormously for testability, and the reason is direct: when a component receives its dependencies from outside, your tests can substitute those real dependencies with mock objects — a fake database, a fake email sender, a fake payment gateway — so you test the component in isolation, fast, without touching a real database or external service. Ortus states it plainly: with WireBox, "objects will become more testable and easier to mock," which accelerates TDD/BDD development. WireBox eliminates the object-creation and wiring boilerplate, so in your tests you don't assemble a tangle of real objects — you inject mocks (via MockBox, built into TestBox) and test behavior. Hard-coded new dependencies are the opposite: they can't be swapped, so the class can't be unit-tested in isolation. This guide explains DI, WireBox, and exactly why the combination makes CFML testable.&lt;br&gt;
&lt;strong&gt;&lt;a href="https://medium.com/@Coding-Algorithms/coldfusion-dependency-injection-with-wirebox-why-di-matters-for-cfml-testability-2321ffeceae4?sharedUserId=Coding-Algorithms" rel="noopener noreferrer"&gt;Read More&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Moving From Tag-Based Spaghetti CFM to a ColdBox MVC Application: A Real Migration Story</title>
      <dc:creator>Deepak Sir</dc:creator>
      <pubDate>Tue, 01 Sep 2026 06:35:51 +0000</pubDate>
      <link>https://dev.to/deepak_sir__/moving-from-tag-based-spaghetti-cfm-to-a-coldbox-mvc-application-a-real-migration-story-3614</link>
      <guid>https://dev.to/deepak_sir__/moving-from-tag-based-spaghetti-cfm-to-a-coldbox-mvc-application-a-real-migration-story-3614</guid>
      <description>&lt;p&gt;You don’t rewrite a legacy tag-based ColdFusion application from scratch — you migrate it incrementally, and ColdBox is built to let you do exactly that without breaking existing URLs on day one. The proven path uses ColdBox’s Implicit View Dispatch: drop your old .cfm files into ColdBox's /views folder, and ColdBox auto-creates the events/routes from the folder structure, so views/about/contactUs.cfm is instantly reachable at /about/contactUs — no handlers, no layouts, no routes, and all your old URLs keep working. The app is now running inside ColdBox while still procedural. From there you refactor gradually — extract a shared layout, pull business logic out of the .cfm files into model/service CFCs (wired with WireBox dependency injection), build real handlers (controllers), and add routes — one screen at a time, at whatever pace is safe. This is the Strangler Fig pattern: the new MVC structure grows around the legacy code until the legacy code is gone, with both coexisting throughout so you never do a risky "big bang" rewrite. This is a real, documented migration approach, with the sequence, the code, and the pitfalls to avoid.&lt;br&gt;
&lt;strong&gt;&lt;a href="https://medium.com/@Coding-Algorithms/moving-from-tag-based-spaghetti-cfm-to-a-coldbox-mvc-application-a-real-migration-story-e379c68362be?sharedUserId=Coding-Algorithms" rel="noopener noreferrer"&gt;Read More&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>security</category>
      <category>opensource</category>
      <category>devops</category>
    </item>
    <item>
      <title>FW/1 vs ColdBox vs Mura: Which ColdFusion Framework Fits Your Team in 2025?</title>
      <dc:creator>Deepak Sir</dc:creator>
      <pubDate>Mon, 31 Aug 2026 06:04:24 +0000</pubDate>
      <link>https://dev.to/deepak_sir__/fw1-vs-coldbox-vs-mura-which-coldfusion-framework-fits-your-team-in-2025-56fk</link>
      <guid>https://dev.to/deepak_sir__/fw1-vs-coldbox-vs-mura-which-coldfusion-framework-fits-your-team-in-2025-56fk</guid>
      <description>&lt;p&gt;These three aren’t the same kind of tool, and choosing well starts with knowing that. FW/1 (Framework One) and ColdBox are MVC application frameworks — you use them to build custom ColdFusion applications. Mura is a CMS (content management system) — you use it to run content-driven websites where non-developers edit pages, not to scaffold a bespoke app. So the real question isn’t “which framework,” it’s “am I building a custom application (FW/1 or ColdBox) or running a content site (a Mura-family CMS)?” Among the application frameworks: FW/1 is lightweight and minimalist — historically a single file, convention-over-configuration, with a tiny learning curve, ideal for small-to-medium apps and teams that want the framework to get out of the way. ColdBox is the full-featured HMVC platform — conventions-based, modular, with an ecosystem (WireBox DI, TestBox testing, CommandBox, LogBox, CacheBox), aggressive maintenance, and a conference (Into the Box) — ideal for larger, team-based, enterprise applications. Mura matters with a 2025 caveat: Mura CMS went closed-source/proprietary with v10 in 2020, and the open-source lineage now lives on as Masa CMS (a community fork of Mura 7.1). This guide compares all three by what they are, their strengths, and which fits your team.&lt;br&gt;
&lt;strong&gt;&lt;a href="https://medium.com/@Coding-Algorithms/fw-1-vs-coldbox-vs-mura-which-coldfusion-framework-fits-your-team-in-2025-ab14de43363b?sharedUserId=Coding-Algorithms" rel="noopener noreferrer"&gt;Read More&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>security</category>
      <category>opensource</category>
      <category>discuss</category>
    </item>
    <item>
      <title>ColdBox 7 Quickstart: Dependency Injection, Interceptors, and REST Routing in 2025</title>
      <dc:creator>Deepak Sir</dc:creator>
      <pubDate>Thu, 27 Aug 2026 05:39:18 +0000</pubDate>
      <link>https://dev.to/deepak_sir__/coldbox-7-quickstart-dependency-injection-interceptors-and-rest-routing-in-2025-1dl4</link>
      <guid>https://dev.to/deepak_sir__/coldbox-7-quickstart-dependency-injection-interceptors-and-rest-routing-in-2025-1dl4</guid>
      <description>&lt;p&gt;ColdBox 7 is the modern HMVC (Hierarchical Model-View-Controller) framework for ColdFusion/CFML, and three of its pillars carry most applications: WireBox for dependency injection, interceptors for event-driven cross-cutting logic, and a routing DSL for clean RESTful APIs. Dependency injection is as simple as property name="userService" inject="UserService"; in a handler or model — WireBox constructs and wires the object for you, no XML. Interceptors let you tap ColdBox's lifecycle (e.g., preProcess, announced at the start of every request) to run logic like API security or logging across many events, registered in config/ColdBox.cfc. And REST routing is a one-liner: resources("photos") in config/Router.cfc auto-generates the full set of RESTful routes mapping HTTP verbs to handler actions (index, create, show, update, delete), or you build routes explicitly with route("/api/user/:id").withAction({...}).toHandler("api.user"). ColdBox 7 (released 2023) dropped Adobe 2016, added Adobe 2023 and Lucee 6 support, and delivered major WireBox performance gains (signature caching cited at 585% faster object wiring). This quickstart walks DI, interceptors, and REST routing with working code.&lt;br&gt;
&lt;strong&gt;&lt;a href="https://medium.com/@Coding-Algorithms/coldbox-7-quickstart-dependency-injection-interceptors-and-rest-routing-in-2025-b6c75053c42f?sharedUserId=Coding-Algorithms" rel="noopener noreferrer"&gt;Read More&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>devops</category>
      <category>opensource</category>
      <category>security</category>
    </item>
  </channel>
</rss>
