LogBox stand-alone doesn't ship with required dependency (cbproxies)
Description
Activity
Luis MajanoOctober 14, 2023 at 12:01 PM
You are absolutely right. I think the download originally was for authors so they could debug. But I see the confusion point. @Brad Wood @Javier Quintero I think we need to put a notice in ForgeBox that the download is without dependencies or just leave it for authors.
Adam CameronOctober 14, 2023 at 11:35 AM
Yeah I don’t think the issue is with the codebase, it’s a lack of clarity on the ForgeBox site.
There’s nothing on the “Versions” tab that observes “this ain’t gonna work if you just download from here, you need the dependencies as well”. If it said that clearly… problem goes away, I reckon.
But as it stands, those downloads are pretty pointless. I mean… there’s a dependencies tab there, with the “1” in the tab title, but one has to be paying attn to notice that. I think it’s reasonable that if a lib is offered for manual download, then it should include everything that’s needed to actually use it..?
Am completely fine with you doing absolutely nowt further with this now. It wasted a bit of my time working around the “missing” dependency, but that’s time I’ll never get back no matter what ya might do, so I’ll take it as a sunk cost . it’s all working fine now, that said (file locking issues I raised separately notwithstanding, but we’ll deal with that separately).
Cheers for the follow-up, Luis.
Luis MajanoOctober 10, 2023 at 10:57 AM
Ok, I have double tripled checked this ticket and I cannot reproduce the issue. However, I know why the issue exists, because you downloaded it directly from FORGEBOX. ColdBox 7 started using dependencies, thus you need CommandBox to install it in order to install the dependencies. if you do install logbox
. It will install the cbproxies module as well.
Can you try this please
Luis MajanoSeptember 22, 2023 at 8:54 AM
Yep, totally right, we had this with TestBox. Accepted.
I am running LogBox stand-alone, as downloaded from https://www.forgebox.io/view/logbox/version/7.1.0+10#versions
In that we get to here in LogBox.cfc:
// Register the task scheduler according to operating mode if ( isObject( variables.coldbox ) ) { // ... } else if ( isObject( arguments.wirebox ) ) { // ... } else { variables.asyncManager = new coldbox.system.async.AsyncManager(); variables.taskScheduler = variables.asyncManager.newScheduledExecutor( name : "logbox-tasks", threads: 20 ); }
(In LogBox stand-alone, all those
coldbox
CFC paths arelogbox
, but the code is the same other than that)And that tries to load a
ScheduledExecutor.cfc
, which has this code:var jCallable = createDynamicProxy( new coldbox.system.async.cbproxies.models.Callable( supplier = arguments.task, method = arguments.method, debug = variables.debug, loadAppContext = variables.loadAppContext ), [ "java.util.concurrent.Callable" ] );
Now… ColdBox might ship with this
cbproxies
thing, but LogBox does not. LogBox has nologbox.system.async.cbproxies.models.Callable
. So… splat.If LogBox code is calling a dependency… you kinda need to include the dependency, right?
I’ve worked around this from my perspective so there’s no urgency on my part, but figured you’d like to know.
This breaks the
RollingFileAppender
that ships with LogBox standalone, as it tries to load that aysnc stuff.