Framework One version 2.2 release candidate 2 is now available for testing (download from the Framework One page on RIAForge). This includes a couple of bug fixes, compared to release candidate 1. See the FW/1 2.2 RC2 release notes on Github for more details. Unless any showstopping bugs are found this week, the final 2.2 release will be made early next week, merged to master, and then develop will become the 2.5 branch.
December 02, 2013 · By Sean Corfield · No Comments
November 30, 2013 · By Sean Corfield · 6 Comments
November 24, 2013 · By Sean Corfield · No Comments
Based on feedback from the community, I have released clojure.java.jdbc 0.3.0-beta2 to Maven Central.
This includes two very important changes:
- The clojure.java.jdbc.sql and clojure.java.jdbc.ddl namespaces have been removed.
- The API functions that were already marked as deprecated have moved to the clojure.java.jdbc.deprecated namespace
This means that if you depend on the clojure.java.jdbc.sql or clojure.java.jdbc.ddl namespaces, which were introduced in 0.3.0-alpha1, you will need to switch to the java-jdbc/dsl project (release 0.1.0 is on Clojars). The new namespaces in that project are java-jdbc.sql and java-jdbc.ddl. If you depend on these namespaces, I strongly recommend you migrate to a more sophisticated DSL, such as:
- HoneySQL - https://github.com/jkk/honeysql
- SQLingvo - https://github.com/r0man/sqlingvo
- Korma - http://www.sqlkorma.com
More importantly, if you depend on the older (0.2.3) API in clojure.java.jdbc, you'll need to switch to the clojure.java.jdbc.deprecated namespace in your code, until you can migrate to new API in clojure.java.jdbc instead.
These steps are more radical than I would have liked but they simplify the library and streamline the API - and the auto-generated documentation - which should reduce all the confusion expressed about the library right now. This will allow the library to move forward in a more focused manner, with an API that no longer depends on dynamic variables.
November 18, 2013 · By Sean Corfield · 1 Comment
This was my third Clojure/conj and the first year it's been outside of Raleigh, NC - with the actual event at the George Washington Masonic Memorial, in a beautiful theater, and lodging at the (expensive) Embassy Suites, just a few minutes away. As usual, the caliber of the talks was (mostly) excellent - which is important in a single track conference - and the hallway / bar conversations were also very educational / entertaining!
November 04, 2013 · By Sean Corfield · No Comments
The clojure.java.jdbc library has finally hit "feature complete" for the upcoming 0.3.0 release and so the first beta release has been made available. For full details, see the clojure.java.jdbc README on Github but here's a quick list of changes in this release:
- query as-arrays? true now allows you to leverage lazy result fetching - JDBC-72
- "h2" is now recognized as a protocol shorthand for org.h2.Driver
- Tests no longer use :1 literal - JDBC-71 - (this was due to a change made in Clojure 1.6 that has since been reverted, but may be revisited in future)
- Conditional use of javax.naming.InitialContext so the library can be compiled on Android - JDBC-69
- New db-query-with-resultset function replaces private db-with-query-results* and processes a raw ResultSet object - JDBC-63
- Allow :set-parameters in db-spec to override set-parameters internal function to allow per-DB special handling of SQL parameters values (such as null for Teradata) - JDBC-40
JDBC-65 (a bug affecting SQLite) will be fixed before the 0.3.0 final release. JDBC-70 (an enhancement to DDL) may also be included.
November 02, 2013 · By Sean Corfield · 12 Comments
With FW/1 Version 2.2 just around the corner - after a long time in incubation - and FW/1 itself being almost four and a half years old, it's a good time to look ahead at what's in store.
November 02, 2013 · By Sean Corfield · No Comments
FW/1 Version 2.2 Release Candidate 1 and a maintenance release for FW/1 1.3 (Compatibility Branch). For detailed changes, and more about the roadmap, read on...
November 01, 2013 · By Sean Corfield · No Comments
As both Scotch on the Rocks and cf.Objective() broaden their range of topics to include more general web development topics, and other languages alongside CFML, it seemed like a good idea to submit a talk to both that would fit both "web development" and "other languages" as well as having a tie-in to CFML...
October 23, 2013 · By Sean Corfield · 4 Comments
At World Singles, we're just going thru the process of upgrading from Railo 3 to Railo 4 (specifically from 3.3.4 to 4.1.1) and I thought I'd jot down a quick blog post about it. First off, I should explain that we use the WAR install on a vanilla Tomcat install, and mod_proxy_ajp to connect Apache to Tomcat. See my Railo for Dummies blog post from 2009 about setting up that sort of environment for background. We have three web contexts (web applications), each running their own configured WAR install of Railo, so we can package each web application up easily and move it around, including the Railo runtime. We can also upgrade each web application separately.
We'd already upgraded from Java 6 to Java 7 (download and unpack the JDK from Oracle into a new folder, update the symlink for the default java executable), and from Tomcat 6 to Tomcat 7 (download and unpack the Tomcat archive from Apache into a new folder, update the symlink for the current version, copy setenv.sh and context.xml from the old to the new - we'd customized those - and then add <Host..> entries to server.xml as necessary). Piece of cake so far.***
I expected the Railo upgrade to be more work than Tomcat. I was wrong. A pleasant surprise! I downloaded the new Railo 4.1.1 WAR file and unpacked it into a temporary folder (using jar xf /path/to/railo-4.1.1.009.war). Then I copied the WEB-INF folder over my existing Railo installations:
tar cf - WEB-INF | ( cd /path/to/application/webroot; tar xf - )
That's just my go to method for non-destructively copying a whole directory tree on top of an existing set of files. The only file that needed customization was web.xml in one web application context where we had some SES URL patterns that matched subfolders. That was just a matter of adding three <url-pattern> lines to the <servlet-mapping> section for the CFMLServlet. That's all it took: download, unpack, copy (and a small edit). Started up Tomcat and Railo happily deployed itself into each web application context, without overwriting any of my previous Railo 3.3.4 settings in the three admins. Nice!
Any code changes? Yes, just two: ColdBox has a MessageBox plugin that uses isEmpty() which is now a built-in function - changing the two unqualified calls to this.isEmpty() solved that - and a couple of strange places where I'd accidentally used float and int as function return types in cfscript - this worked in Railo 3 as if I'd written numeric but in Railo 4 it was type checked as a Java primitive type (interesting in itself!) so I just changed those to numeric and everything else just worked!
***Piece of cake except for Braintree which is one of our payment providers. We were using an older version of their library and once we moved to Java 7, the security certificate processing was more strict and calls to their sandbox (not their production system) failed. Updating to the latest Braintree JAR on Maven Central fixed that.
October 21, 2013 · By Sean Corfield · No Comments
The cf.Objective() 2014 Call for Speakers is open until November 1st so you have just under two weeks to submit your topics. You can also vote for existing topic submission at that same link.
And if you want to submit non-CFML web development topics that you think would appeal to a CFML / JS audience in terms of broadening their skills, you should do that too! Last year Scott Stroz did an excellent talk about Groovy on Grails, and I touched on some advanced CFML techniques inspired by other languages in my polyglot talk.
Note: when you submit a talk, please make sure to follow the guidelines outlined in this blog post about cf.Objective() 2014 submission format!