groovy

securing grails plugin artifacts with filters

So you've just installed the handy dandy Spring Security plugin (http://grails.org/plugin/acegi), which makes it incredibly easy to secure entire Grails controllers and/or controller actions with annotations, such as the following: This is enabled by turning on controller annotations in your SecurityConfig.groovy file: So all is now good in our project. We can secure either controllers or actions with annotations, enabling us to declaratively setup security side-by-side with the code that we're securing in a very straightforward manner.

making java groovier with lambdaj

I spent the better part of yesterday tracing my way through the codebase for a large-scale enterprise application that my team is building right now, and I happened upon the following piece of code: //...imports excluded for clarity public class BusinessActivityBinMetaClassHelper { //... public static List<Long> getSrmMetaClassIdListJava(List<BusinessActivityBinMetaClass> businessActivityBinMetaClassList) { List<Long> srmMetaClassIdList = new ArrayList<Long?(); if(businessActivityBinMetaClassList != null) { for(BusinessActivityBinMetaClass businessActivityBinMetaClass : businessActivityBinMetaClassList) { if(businessActivityBinMetaClass.getSrmMetaClass() != null && businessActivityBinMetaClass.getSrmMetaClass().getSrmMetaClassId() != null) { srmMetaClassIdList.

ive forked the grails paypal plugin

I'm currently completing the finishing touches on a new e-commerce site for my wife's stationary business. We decided a long time ago to use PayPal for all of the payment processing since we've had a great experience using it for our eBay selling. About a year ago Graeme Rocher polished off the last release of a PayPal plugin that is available in the Grails Plugin repository. It really is a very nice plugin, yet I had a couple of problems with it:

joels builderbuilder in groovy

Joel Neely started a series of posts over the weekend detailing a proposed exploration of what Functional Programming means “to me as a practicing OO software developer?” The task at hand is to look at the generation of Data Transfer Objects which include a static inner class that functions as a builder. Since I'm exploring both Clojure and Scala right now, Joel has asked me to play along. After reading the task definition today, I couldn't resist taking a crack at the problem in Groovy, especially since tackling a Builder DSL is not something I've gone after before.

grails prototype scriptaculous persistent grid sorting goodness

Ever wanted to do drag-n-drop sorting of a grid of images on a page and persist it? Here's my solution using Grails, Prototype, and Script.aculo.us. Basically what prompted this was the need for my wife to be able to sort the various product images that she had on a screen at any given time in any way that she pleased, and it had to be easy to work with. What follows is by no means a complete solution to this problem, but it represents where I am in the development process and may be useful to you, my hapless reader.

groovy post to a url

If you've ever worked with the brilliant Recaptcha service, you'll know that their REST API requires an HTTP POST rather than a GET. As I had only used GET requests thus far, I googled around and found a pretty easy solution: private def evaluateCaptcha(def remoteIp, def challenge, def response) { def config = recaptchaService.getRecaptchaConfig() def urlString = "http://api-verify.recaptcha.net/verify" def queryString = "privatekey=${config.recaptcha.privateKey}&remoteip=${remoteIp}&challenge=${challenge}&response=${URLEncoder.encode(response)}" def url = new URL(urlString) def connection = url.

loty time again scala or clojure

In 2007 I established several professional development goals (and later reported my progress on these), one of which was to learn Groovy and Grails. This goal stemmed from the continually referenced idea from The Pragmatic Programmer to “learn a new language every year.” This idea has become so ubiquitous that it even has it's own four-letter acronym, LOTY (Language of the Year). Since establishing and reporting on these goals, I've had several things get in the way of fully realizing all of them.

deploying grails with groovy

Interesting title, eh? Maybe this one will make it through Glen's filter at GroovyBlogs.org. On to the meat. I've been steadily working on a couple of Grails applications, one being the website for the Memphis JUG, and another being the e-commerce site for my wife's soon to be launched designer stationery business. Just like your average Grails developer, I've been happily coding away at 127.0.0.1 using the good old development Jetty+MySQL stack.

need a textile engine look no further than plextile

In finishing up the first release of JUG Nexus, the open source engine (http://github.com/mstine/jug-nexus/tree/master) behind the new Memphis JUG website, I needed to put a good Textile engine in place. I really don't care for writing actual HTML in a content management system, and JUG Nexus being a lightweight CMS, I wanted a lightweight markup syntax for entering the details of upcoming JUG meetings. Textile is exactly that, and is also used for entering content into the very useful JUGEvents system produced by JUG Padova for the Java User Group community at large.

grails 10 released

Grails, by far my favorite of the JVM dynamic language frameworks, was released this morning, with a snazzy, new, “Web 2.0 style” website to boot. Congratulations Graeme and company on all of your hard work!