RE: [coldbox:17598] [coldbox 3.5.3] cachebox monitor debug pane

Pretty much, yes. Essentially, WireBox and CacheBox are two completely separate things, but they occasionally interact.

All objects managed by WireBox live in a scope. Here are all the scopes that WireBox can place an object in (Check them out at coldbox.system.ioc.scopes):

  • Singleton (once per injector)

  • CF scopes (session, application, client, cookie, etc)

  • Request scope

  • CacheBox (In a CacheBox provider)

  • No Scope (Transient object–never persisted)

If and only if an object is being placed in the CacheBox “scope” does WireBox use CacheBox as the persistence mechanism for that object. In that instance, you will be able to see those objects in your CacheBox debug panel along with hit/miss stats and such.

Now, as far as where WireBox is stored-- WireBox can actually be stored wherever you want and persisted in any CF scope (or not at all). This is especially true if you are creating the WireBox injector outside of a ColdBox application.
That being said, WireBox defaults to using scope registration in the application scope which basically means it sets itself in the ColdFusion application scope when it is created.

“Normal” WireBox setup for singleton storage

→ CF Application Scope
→ WireBox Injector
→ Singleton “Scope” CFC instance (instance.scopes[“SINGLETON”])

→ Actual instance of singletons (instance.singletons which is a ConcurrentHashMap)



ColdBox Platform Evangelist
Ortus Solutions, Corp

ColdBox Platform:

It makes sense now. Thanks for the thorough explanation.