tools

Running CFGroovy on in a Hibernate-Aware Environment

In my last post I mentioned the issue with using CFGroovy's Hibernate when Hibernate is already loaded by the app server, such as the case with JBoss 4.2+ and a certain unreleased CFML runtime (cough … Centaur … cough).  The gist of it is that Hibernate appears to create some static references to itself that [...]

CFGroovy 1.x Features

It was a big weekend for CFGroovy.  In addition to the 1.0 release, I started doing some work for the 1.x series (which is available in the trunk).  There are several significant changes to  the engine:

Groovy has been upgraded to 1.6.0 from the previous 1.5.6 version.
You can specify a custom Groovy JAR for your CFGroovy.cfc [...]

CFGroovy 1.0!

After a lengthy burn in period, I've officially released CFGroovy 1.0.  It is identical to CFGroovy 1.0RC3, so if you're running that version there is no need to upgrade.  You can get the 1.0 engine binaries, 1.0 demo binaries (including the engine), view the 1.0 tag in Subversion (engine or demo), or visit the project [...]

Spring 2 "scope" goodness for ColdSpring

In Spring 1.2 (and ColdSpring, which emulates it), you have the "singleton" attribute, which was a boolean flag for whether a bean is a singleton (the default) or a prototype (instantiated afresh for every getBean call).  If you've used Spring 2.0+, you've probably come across the "scope" attribute, which supersedes the "singleton" attribute, and allows [...]

Apache HTTPD's mod_proxy_balancer

Last year we bought a Barracuda web firewall/load balancer appliance at work and have had nothing but problems with it.  Even the support guys from Barracude were unable to solve our dropped connection problems.  Needless to say, rather disappointing for a $15K device.
We're also in the process of moving off of Akamai to another CDN [...]

Google Bar Charts

I just learned today from Joshua that Google Charts added an option to automatically compute bar widths and gaps for bar (or column) charts.  Doing it manually is always a total PITA, and I've intentionally chosen line chart where a bar chart was a better fit for that precise reason.  Now, however, you just set [...]

CFGroovy 1.1 Goodness?

For CFGroovy 1.1, I want to do this sort of thing, where GroovyFactoryBean will instantiate the specified Groovy object and return it, suitable for injecting into an arbitrary CFC of choice:
<bean id="groovyFactory" class="cfgroovy.GroovyFactoryBean">
<constructor-arg name="cfgroovy"><ref bean="cfgroovy" /></constructor-arg>
</bean>
<bean class="cfcs.service">
<constructor-arg name="dao">
<bean factory-bean="groovyFactory" factory-method="getObject">
<constructor-arg name="clazz"><value>com.barneyb.Dao</value></constructor-arg>
[...]

CFGroovy 1.0 RC3

This is the final expected RC for CFGrovoy 1.0 and includes a couple more API tweaks (backwards compatible, of course).  Bad form to do this right now, but like the attributes-to-params change, I want to get them in before the 1.0 release so I can build the next round of enhancements without mucking up the [...]

Calling FB3Lite as a Custom Tag

Today at work, Joshua wanted to invoke one of our FB3Lite apps from within an external CFM file (a CMS template) to reuse some code.  So I added a little snippet to the top of index.cfm to detect if it's being called as a custom tag and only execute during the start phase.  So you [...]

Base Conversion Functions

In the theme of URL shorteners, I whipped up some simple base conversion functions that don't have the hard limit of 36 that the inputBaseN and formatBaseN built-ins do, but otherwise are exact replacements.  Everything is controlled by the first line, the list of digits.  The functions will support whatever base you want, as long [...]