Blog

Blog Archives - 21 Record(s)

Remove Filter Year: '2008' - Month: '8'

ColdBox 2.6.1 Final Release is now available

Posted by Luis Majano
Aug 16, 2008 00:00:00 UTC

We are pleased to announce ColdBox 2.6.1. This version is a critical fix release that ALL users should upgrade too, that will provide stability and tons of fixes. However, we have also included some goodies that we left out of 2.6.0 as they where not fully tested yet. Now they are. Below we have delineated the new goodies for 2.6.1. We have also created a What's New in 2.6.1 guide and you can read the entire release notes also.

What's New

ColdBox SideBar

This is another developer tool that will make your ColdBox development much easier thanks to Ernst van der Linden. We truly believe this developer tool will revolutionize the way you build your ColdBox Applications. TheThe full guide can be found here

This nifty little toolbar lives in your application (development of course) and helps you do the following:

* Reinit the framework

* Open cache and profiler monitors

* Dump vars

* Clear the Cache

* Clear Scopes

* Clear the log files

* Go in and out of debug mode

* Search the docs

* Search the forums

* Skinnable via css

* Add your own links via configuration (JSON)

* much more coming soon.

New Core Interception Points

We have added two more core interception points to ColdBox

* afterCacheElementExpired : Executes after an element has expired from the cache

* onException : Executes when an exception occurs anywhere in the framework

Caching Enhancements

There have been some cool minor enhancements to the cache.

* New FIFO Eviction policy (First In First Out)

* New method: setEvictionPolicy(policyObj), you can now override eviction policies with anything you want

* New method: getObjectMetadata(objectKey), you can now get the caching metadata structure about a specifc object key.

New Interceptor Output Buffer

What this means is that an interceptor has the following methods that enable you to add content to an output buffer that will be flushed after the execution of the interception point. Why would I use this? Well, just look at the ColdBox SideBar. I can create output without affecting handlers, views, etc. Interceptors wrap themselves around an execution (AOP), so you can output content in an non-obtrusive and decoupled manner.

* clearBuffer():void

* appendToBuffer(string):void

* getBufferString():string

* getBufferObject():coldbox.system.util.RequestBuffer

The buffer is unique per interception point but available to the entire chain of execution within an interception point. Once the interception point is executed, the interceptor service will check to see if the output buffer has content, if it does it will advice to write the output to the output stream. This way, you can produce output very cleanly from your interception points, without adding any messy-encapsulation breaking output=true tags to your interceptors. (BAD PRACTICE). This is an elegant solution that can work for both core and custom interception points.

//clear all of it first

clearBuffer();

//Append to buffer

appendToBuffer('This software is copyright by Luis Majano');

Bean Factory Plugin Autowire Update

The Autowire method in the bean factory now has a stopRecursion argument that can be used to send in a class name where recursion should stop.

Transfer Utilities

We have created several utilities for Transfer Integration that we introduced a while back. They are now in the core in the extras directory.

  • TransferConfigFactory
  • TDOBeanInjectorObserver

You can read more about these two tools and how they will help you when working with Transfer:

Critical Fixes and Updates

  • * #492 MTLogger Tracer method when called asynchrounously and from a remote call behaves weirdly, blanking out some variables due to cfthread.
  • * #493 setView() with no layout is not blanking out a pre-set layout
  • * #494 proxy,sessionstart,sessionend concurreny issues when ConfigAutoReload is set.
  • * #495 Throw an error that is informative when interceptor classes are not found instead of a bogus error.
  • * #499 onInvalidEvent crashes in SES mode
  • * #500 on Invalid Event error type is not configured correctly
  • * #501 resource bundle not handling relative paths, update to use same approach as other plugins
  • * #502 useSetterInjection not passed correctly across the inheritance tree in the beanFactory
  • * #503 Interceptor Service not registering correctly on demand registrations and doing double puts on some states
  • * #504 Interceptor state addition of an exists method, so overwriting does not occur
  • * #506 Missing onException core interception point
  • * #507 ExceptionHandler not firing on proxy errors
  • * #508 Request Context Decorator overriding the memento and loosing the controller reference
  • * #511 Resource bundle paths bug when unit testing remotely
  • * #517 event.noRender() has wrong logic for the remove bit

Want to know what method you are currently executing, programmatically?

Posted by Luis Majano
Aug 14, 2008 00:00:00 UTC
I am recently building a simple mock factory for cf7 (unfortunately I can't use coldmock, no cf8 goodness). One hurdle I was missing, is how to know which method I am currently executing in order to make a return look. Well, or good old friend java to the rescue. This is totally undocumented and please tread with care:

stack = CreateObject("java","java.lang.Exception").init().getStackTrace();

//loop over our stacktrace

for(x=1;x lte ArrayLen(stack);x=x+1){

if( findnocase( getMetdata(this).path, stack[x] ) ){

foundLine = stack[x];

break;

}

}

//cleanup our line

runningFunction = replacenocase(listlast(foundline.getClassName(),"$","func",""));

There you go!! That parses out the inner class name (your method) out of the compiled cf class that coldfusion created for you. I can now do my lookup against it.

StringBuilder.length() does not work with Adobe CF and JDK 1.6.X

Posted by Luis Majano
Aug 11, 2008 00:00:00 UTC
I have been doing some string buffer testing and wanted to take advantage of using the new class StringBuilder that was implemented in jdk 1.5. I am running cf8 with jdk 1.5 and 1.6 and decided to do some tests with it. I found out that calling buffer.length() on a cf instance running on jdk 1.6 would fail but a call to the same length method on jdk 1.5 does not. Go Figure!!

Would this be a bug on the Adobe cf java proxy? It seems to me, because the same tests on Railowork (even faster to say the least)!!

To reproduce this error, just try this below:

The string is #myBuffer.toString()#

The length is #myBuffer.length()#

The error that Adobe CF produces is that the method length() does not exist. The only workaround for this is by lengthing the string produced, but it will definitely be slower than a direct length call:

Length: #myBuffer.toString().length()#

New ColdBox Store Launched!

Posted by Luis Majano
Aug 09, 2008 00:00:00 UTC

I am happy to announce that our new ColdBox Marketplace has launched. We have tried to put together some great items for you and will be adding several more in the near future. Show your support for ColdBox by buying some of these great products. We have created several T-shirts, buttons, mousepads, jackets, hoodies with incredible design.

In the next few days we will be launching our accessories section where you will be able to buy customizable shoes, messenger bags, totes, ties, and even aprons. I already ordered my set!!

.htacces rules to protect against SQL Injection attacks

Posted by Luis Majano
Aug 08, 2008 00:00:00 UTC
Due to the huge spur in SQL injection attacks, Sana Ullah has done some great work on some .htaccess rules to protect against such injections. They have been committed to the ColdBox SVN, but we are also sharing here. Please note that all the rules are for ColdBox SES, so make sure to update accordingly.

RewriteEngine on

#SQL Injection Protection --Read More www.cybercrime.gov

#Please use these rules if below words does not conflict with your friendly-urls. You may modify accordingly

RewriteRule ^.*EXEC\(@.*$ /notfound.htm [L,F,NC]

RewriteRule ^.*CAST\(.*$ /notfound.htm [L,F,NC]

RewriteRule ^.*DECLARE.*$ /notfound.htm [L,F,NC]

RewriteRule ^.*DECLARE%20.*$ /notfound.htm [L,F,NC]

RewriteRule ^.*NVARCHAR.*$ /notfound.htm [L,F,NC]

RewriteRule ^.*sp_password.*$ /notfound.htm [L,F,NC]

RewriteRule ^.*%20xp_.*$ /notfound.htm [L,F,NC]

#Ignore images and this would be last rule --if the condition matched

RewriteRule ^/(.*\.(png|gif|jpg|bmp)) /$1 [L,PT,NC]

#Ignore CSS or JS files and this would be last rule --if the condition matched

RewriteRule ^/(.*\.(css|js)) /$1 [L,PT,NC]

#Ignore txt/doc/pdf/xls files and this would be last rule --if the condition matched

RewriteRule ^/(.*\.(txt|pdf|doc|xls)) /$1 [L,PT,NC]

RewriteRule ^$ index.cfm [QSA]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.cfm/%{REQUEST_URI} [QSA,L]

CBOX-101 Core ColdBox Landing Page is now online

Posted by Luis Majano
Aug 07, 2008 00:00:00 UTC
We just finalized our first course landing page in our website. You can find so much more information about our course offering like general information, requirements, outline, and more. Our first course is CBOX-101: Core ColdBox and can be found here:

http://www.coldboxframework.com/index.cfm/courses/cbox101

We have also created several shortened links, thanks to ColdBox Routing, to the following urls:

ColdBox Platform Training Outline and More

Posted by Luis Majano
Aug 05, 2008 00:00:00 UTC
Below you can see our press release dealing with ColdBox training. It covers our early bird pricing and Course Outline. So remember that you can register online now.

ColdBox Platform Training

[email protected]

http://www.coldboxframework.com/index.cfm/support/training

ColdBox Platform Training Seminars Releases October 2008 Outline and Extends Early-Bird Special Pricing

Rancho Cucamonga, CA, August 5, 2008 - ColdBox Platform Official Training Seminars today released

the Course Outline for their October 2008 ColdBox Platform 101 seminar to be held in Dallas, Texas, and also announced

that the Early-Bird Special Price of just $1,195 has been extended through August 31, 2008. Registrants can take

advantage of this $200 savings over the full seminar price of $1,395 by completing their registration before 5PM

(Pacific Daylight Time) on August 31, 2008.

Course Outline

Unit 1

  • Course Introduction
  • ColdFusion Components

    • Overview
    • Best Practices

  • Effective Web Application Architecture

    • MVC Architecture
    • What is a Model?
    • Domain Modeling
    • Service Layers
    • IOC

  • ColdBox Platform Introduction

    • What is a framework
    • Why use a framework
    • What is ColdBox
    • ColdBox Application Request Life Cycle

      • ColdBox's Front Controller
      • Event Driven Framework
      • SES routing overview
      • MVC Request Life Cycle
      • Remote Request Life Cycle

Unit 2

  • ColdBox Installation
  • Reference & Development Tool Installations
  • ColdBox Dashboard
  • A ColdBox Application Field Trip

    • ColdBox Debugger
    • Directory Structure & Conventions
    • ColdBox's Main Components

Unit 3

  • The ColdBox Configuration File
  • URL Actions
  • The ColdBox Setting Structures
  • The Request Context Object

Unit 4

  • Pretty URLs SES Routing
  • Framework Super Type

    • Understanding the basic Framework class
    • Reserved Words & Methods

  • Event Handlers

Unit 5

  • The ColdBox Layout Manager
  • ColdBox Plugins Architecture
  • Core Plugins

    • Storage Plugins
    • Utilities Plugins
    • Visual Plugins
    • Internationalization
    • RSS/Feeds

Unit 6

  • ColdBox Interceptor Architecture
  • Core Interceptors

    • SES
    • Environment Control
    • Autowire
    • Security Interceptor: Securing your application

Unit 7

  • ColdBox Proxy
  • ColdBox-Ajax Integrations
  • ColdSpring/Lightwire Integration

Unit 8

  • ColdBox Event Handler Unit Testing
  • ColdBox Best Practices

The ColdBox Platform 101 Seminar is a 2-Day Introduction to ColdBox and ColdBox Platform Application Development providing

16+ hours of intense, hands-on training with ColdBox author Luis Majano and

other qualified ColdBox Trainers in an intimate setting with only 15 seats available. Attendees will be guided through a

quick overview of ColdBox and then step-by-step instruction on putting ColdBox to work for themselves in their own

applications. The skills learned in this seminar can be immediately applied to a developer's daily tasks.

For more information on ColdBox Platform Training or to register, please visit the

ColdBox Training web site.

Over 3000 ColdBox downloads already!!

Posted by Luis Majano
Aug 04, 2008 00:00:00 UTC
I was really impressed and happy to report that there are over 3000 ColdBox downloads since the new website a couple of months ago. It seems that the downloads keep increasing and so does the documentation :)

I just want to thank the entire ColdBox team for their work and perseverance in this great project. Keep up the good work guys!!

ColdBox Training Early Bird Extended

Posted by Luis Majano
Aug 04, 2008 00:00:00 UTC
We have extended our Early Bird Pricing until August 31st, 2008 to allow time for other people to benefit from this great price. You can register online by visiting http://www.coldboxframework.com/index.cfm/support/training and clicking on the Register Now Button.

Two new members to the ColdBox Team: Tom de Manincor and Ernst van der Linden

Posted by Luis Majano
Aug 01, 2008 00:00:00 UTC

I want to welcome two new members to the ColdBox Team today, Tom de Manincor and Ernst van der Linden.  Their dedication and contributions to the project have been incredible over the years. We are also good friends and best of all we where all in different locations. Tommy is now living in California, but before he was all over the place :).  Ernst is from The Netherlands and talk about world collaboration. I am truly excited that our commitment to this project is strong and growing.  We are producing some very exciting new funtionalities and tools to help developers achieve their goals even faster. The future of ColdBox is bright and shining like ever before.

Let me start with Tommy. I met Tommy at my previous employer and he was one of the pioneers of the first non-public versions of ColdBox. He was involved with project direction and implemented several projects using our first iteration framework. Over the years he has truly become an OO guru and keeps pushing things to the limit.  His New York accent and attitude always comes out and its always funny to talk to.   We are currently working on some cool cluster communications and messaging that will become available for ColdBox in the near future.  Welcome aboard Tommy!!

I met Ernst online, like we all do. He has been a big advocate of ColdBox since day 1 and he produces some incredible software applications with it.  He has been contributing to ColdBox in all areas of development, from testing, bug reporting, sample creations, architectural and design issues and our new top secret project called: Project SideBar, which will be announced in the coming months. So welcome aboard Ernst.

Below are the bios and links:

Tom de Manincor - http://www.tomdeman.com/blog/

I have been working with ColdFusion since 4.5 Express was released. Its been a pleasure to develop in a language that has grown to be so powerful. I had the luxury of working with Luis Majano, creator of Coldbox framework, back in 2004. A great educator and programmer. Who introduced me to another great mentor of mine, Rob Gonda, creator of AjxCFC. Another very talented and knowledgable resource. Like them, I share a passion for my work, and a pride in sharing it with the community. I have developed in mama's spagetti code, a handful of frameworks, and everything in between.


As of late, I have been focusing my efforts on Object Oriented programming with Cold Fusion. I try to learn as much as I can about design patterns, best practices, and new ways to blow my mind with code.


I am currently the Lead Developer with Blush Media, LLC out in El Segundo, California. Developing a number of applications in Coldbox, Coldspring, and Transfer.

Ernst Van der Linden - http://evdlinden.behindthe.net

A software architect: primarily using ColdFusion and Java in combination with SQL databases.


Began programming in 1988 on a Commodore 64 and started with Coldfusion in 1996. He has designed applications for companies such as General Electric, Philips and Shell.


In 1999 Ernst van der Linden launched his own software company BehindThe.net which builds HR Management Software for multinationals.


Site Updates

Archives

Entries Search