[Survey] What do you want in ColdBox?

Hello everyone,

Team ColdBox is working on putting together a list of features for our 4.0 release. Before we finalize anything, we’d like to hear from you. Please give us your wishlist for the ColdBox Platform and what you’d like to see us work on. There’s always items like documentation and additional screen casts, etc but let’s focus specifically on what development items we can do to make ColdBox faster, easier, smarter, and flexible for YOU. No suggestion is too big or small.

Please just reply here in the forum so we can all discuss. Don’t be shy, we can handle criticism :slight_smile:

Thanks!

~Brad

ColdBox Platform Evangelist
Ortus Solutions, Corp

E-mail: brad@coldbox.org
ColdBox Platform: http://www.coldbox.org
Blog: http://www.codersrevolution.com

Brad,

It is hard to suggest something that already has so much, but one of the things that I think could be improved is how the event handling is managed.

Sometime ago I found that something I needed to do in ContentBox, was not working. It turns out that nobody responded to the post, but the run down is that you can’t override in the interception point for preEvent() and it only works when it is used as a wrapper in the handler.

By looking at the code for the runEvent(), this makes sense as to why and how.

My solution was to modify the code as per the previous post on the subject, to check if the event had been overridden after the interceptor announce. But the overall problem is that one can expect code to run when it will not run, which it will do if the overridden event also uses the preEvent() to setup code for the handler.

By looking at this section of code for runEvent() it shows a limitation that can cause problems, as I discovered because my override event failed to get called.

What I am proposing here, is that this section needs to change. To a queue based processing, haven’t thought about the implication as yet, but override would need to keep looping the changes until no more overridden events have occurred.

As you can see then there is a danger, that this could end up into an endless loop that will never exit, which would need some discussion as how to then handle that.

I’d like to see support for DetachedCriteria/Subqueries baked into the CriteriaBuilder. I currently use a home-brewed version of this, but would really like to see it implemented for real into CB.

That sounds interesting. Can you help us or post your work?

Sure thing. I’ll pull together what I have so far and post it when I get a chance. Thanks

Hey Brad.

I’d like to see “this.handlersParentLookup” in modules, so I can override module handlers in my application, the same way I can for views and layouts.

So, for example, in my parent application I override module handlers to adjust functionality without needing to touch the module itself.

I’ve actually adjusted Coldbox myself to get this working, but I only used the handlersLocation and NOT the handlersExternalLocation – to make sure that any name conflicts didn’t become an issue (such as main.cfc/general.cfc etc.) Obviously I can extend the module handler using this method, so I can create custom events or override existing module events – was is kinda cool.

As I said, I’ve adjusted CB myself already, but I think this would be useful for others perhaps?

I just added this to HandlerService:getRegisteredHandler:

if (moduleSettings[moduleReceived].handlerParentLookup) {

ParentHandlerReceived = “modules.#moduleReceived#.#handlerReceived#”;

handlerIndex = listFindNoCase(handlersList, ParentHandlerReceived);

// Check for conventions location

if ( handlerIndex ){

return HandlerBean

.setHandler(listgetAt(handlersList,handlerIndex))

.setMethod(MethodReceived);

}

// Check for external location

/* don’t actually look in the external location, name conflicts are likely…

handlerIndex = listFindNoCase(handlersExternalList, ParentHandlerReceived);

if( handlerIndex ){

return HandlerBean

.setInvocationPath(instance.handlersExternalLocation)

.setHandler(listgetAt(handlersExternalList,handlerIndex))

.setMethod(MethodReceived);

}

*/

}

Tom.

Hi all,

What I would like in ColdBox 4 is the opportunity to choose for a NoSQL (MongoDB?) to use with the virtual entityservice and other ORM option. In Grails you have the possibility to annotate a bean to tell him to use the Hibernate or MonogoDB plugin for ORM. So in 1 app, you can use both.

Is that something that can be looked into?

Kind regards.

Erik-Jan Jaquet

I would like to see an API to allow the community to easily extend/modify/create debug panels beyond the dumpVar trick. I’d also like to see the debugging panels able to be run in a separate tab (like CF debug panel, Firebug, etc.) so that it’s completley separate from the page being rendered. (you could even integrate them into Firebug/Chrome Dev Tools… although this is more work and multiple moving targets)

For instance, if the debug panels were pulled out and loaded as modules, community members could easily add/modify them by just dropping a new package into the modules folder…

Funny you mention this, as this is already part of the 4 roadmap. The debugger is being removed from the core and added as a module.

signature0.jpg

Luis F. Majano
CEO
Ortus Solutions, Corp
www.ortussolutions.com

ColdBox Platform: http://www.coldbox.org
Linked In: http://www.linkedin.com/pub/3/731/483
Blog: http://www.luismajano.com
IECFUG Manager: http://www.iecfug.com

Social: twitter.com/lmajano facebook.com/lmajano

Hi Erik,

Great point. I guess the problem might be then we need to build an ORM around NoSQL. So not sure if this is in the roadmap already for Hibernate, I actually think it is. So it might just be a core CFML thing.

signature0.jpg

Luis F. Majano
CEO
Ortus Solutions, Corp
www.ortussolutions.com

ColdBox Platform: http://www.coldbox.org
Linked In: http://www.linkedin.com/pub/3/731/483
Blog: http://www.luismajano.com
IECFUG Manager: http://www.iecfug.com

Social: twitter.com/lmajano facebook.com/lmajano