Back from a vacation where I helped build the IT infrastructure at the Roskilde Festival, and a busy couple of weeks at work, it is now time for an extended version of the Grails Diary, covering the last weeks. I expect to be back on a weekly Grails Diary track again now :)
Since the last diary, there have been a new release of Grails: 2.4.2 and 2.3.11. This release consists primarily of bugfixes and performance tuning improvements.
The Groovy team has provided a bug-fix release, version 2.3.4 is available, with the release notes here. The new Groovy webpage is available in a beta version. It is really looking great, but there is still a few things that are missing. Guillaume has written a blog on 'Feedback and actions for the new Groovy website', and Cedric elaborates a bit on the technical details.
The Gradle team has just updated to the major version 2.0. It has been released with Groovy 2.3 and Java 8 support, and you can find the release notes here.Hans Doctor reveals the roadmap for Gradle beyond version 2.0. Ratpack has been updated to version 0.9.6.
The videos from GR8Conf EU has started to be published. There are a few sessions, where the recording failed or are missing, but most of the talks are already online, and the last of them will be comming shortly. Check the Videos section of this blog post.
Göran Ehrsson has since started to release a series of plugins for a CRM system he demoed in his talk (GR8 CRM). You can find more info at http://gr8crm.github.io/, but the presentation is really hands on, and a great way of architecturing your application with plugins!
Tickets for GR8conf US is still available, the conference starts next week, and the lineup is impressive!
My printed version of 'Grails in Action 2' arrived the other day. Congratutlations to Peter and Glenn for this great book on using Grails!
Podcasts and Videos of Presentations
Blogs, Articles, etc.
New Plugins
-
GR8 CRM Contact Management UI
This plugin extends crm-contact and provides contact management user interface for GR8 CRM applications.
-
GR8 CRM Contact Management
Provides "headless" contact management features for GR8 CRM.
This plugin provides no user interface, just domain classes and services for contact management.
For user interface see the crm-contact-lite plugin which provides a twitter bootstrap user interface.
-
Sencha Grails Asset Pipeline Plugin for Sencha Applications
An add-on for the Asset Pipeline Plugin that understands how to resolve file dependencies for Sencha Ext JS applications.
-
GR8 CRM Tagging Support
Provides tagging support for GR8 CRM
-
Twitter Bootstrap UI for GR8 CRM
This plugin provides Twitter Bootstrap layout for GR8 CRM applications.
-
Apache Shiro Security for GR8 CRM
This plugin leverage the shiro plugin to authenticate and authorize GR8 CRM users.
-
Basic Security Features for GR8 CRM
This plugin provides basic security feature for GR8 CRM.
Specific security implementations exists for Apache Shiro (crm-security-shiro).
-
Manage installed features in GR8 CRM
This plugin manages installed "features" in GR8 CRM.
A feature is a unit of functionality that can be enabled or disabled per user role.
-
GR8 CRM Dynamic i18n
Override i18n messages in your database to allow sysadmins to modify labels, help texts, etc. in your application.
This plugin is based on the 'i18n-db' plugin and adds GR8 CRM multi-tenancy support.
If you're not using GR8 CRM please use i18n-db instead.
-
GR8 CRM Core Plugin
GR8 CRM Core Functionality. See http://gr8crm.github.io for more information.
-
Runtime Datasources Plugin
Allows an application to add or remove JDBC datasources at runtime
-
Groovyschema Grails plugin
Declaratively validate deserialized JSON objects.
-
j2ssh SSH Plugin
Uses the j2ssh library to provide ssh access
-
Grails Cloudinary Plugin
Simplifies the usage of the cloudinary service at http://cloudinary.com/.
-
AngularJS Annotate Asset-Pipeline Plugin
Provides AngularJS dependency injection annotation support for the asset-pipeline static asset management plugin.
-
Sequence Number Generator
A Grails service that generate sequence numbers from different sequences, formats, etc.
You can control the starting number, the format and you can have different sequences based on application logic.
The method getNextSequenceNumber() is injected into all domain classes annotated with @SequenceEntity.
It returns the next number for the sequence defined for the domain class.
-
Repository for Persistent Selections
This plugin is an add-on to the 'selection' plugin (grails.org/plugin/selection) and let users save
selections to the database for later use.
The plugin provides SelectionRepositoryService to interact with selections and a Twitter Bootstrap user interface
for saving and managing saved selections.
Updated Plugins
-
AngularJS Resources Plugin
Angular JS resources plugin
-
AngularJS Template Asset-Pipeline Plugin
Provides AngularJS template support for the asset-pipeline static asset management plugin.
-
Facebook Authentication for Spring Security
Facebook Authentication for Spring Security Core plugin
-
Unified Selection
The selection plugin provides unified selection of information.
It uses a URI based syntax to select any information from any resource.
Grails plugins can add custom search providers.
Example 1: gorm://person/list?name=Gr%25
Example 2: ldap:dc=my-company&dc=com&cn=users
Example 3: bean://myService/method
Example 4: https://dialer.mycompany.com/outbound/next?agent=liza
-
Drop Box Plugin for Grails
Adds integration with the DropBox API. Here with this plugin you can use all DropBox services within from your Grails application
-
Grails Postgresql Extensions Plugin
This plugin provides hibernate user types to support for Postgresql Native Types like Arrays, HStores, JSON,… as well as new criterias to query this native types
-
MongoDB Create-Drop
Provides applications using MongoDB with the ability to mimic the "create-drop" behaviour available for other databases.
-
Grails Mandrill Plugin
This is a simple wrapper for the Mandrill REST API (http://www.mandrillapp.com)
-
Poly Driver Plugin
Provides the ability to specify a different preferred browser for a specific Geb specification class.
-
Ajax Dependancy Selection Plugin
Defines next auto completion/selection form field values ensuring it is bound on previous auto completed/selected form field. This can be used on two or more objects of hasMany and belongsTo. Provides: g:autocomplete, g:autoCompletePrimary, g:autoCompleteSecondary, g:autoCompleteSecondaryNR, g:selectPrimary, g:selectSecondary , g:selectSecondaryNR & g:selectController. g:selectAutoComplete and g:selectPrimaryNR. Now also supporting 1 object with multiple dependencies.
-
Mini Profiler plugin
Shows timing and sql query information in a head-up display in a web page, useful for debugging
database and other performance problems.
-
Jquery Date Time Picker Plugin
Makes it easy to use jQuery date and time pickers.
-
Clover Code Coverage for Grails
A plugin that integrates Clover into GRAILS projects. Clover is a Code Coverage tool that produces beautiful reports which are highly configurable and extensible. Clover not only reports which lines of code were executed during a test run, it also reports which tests hit which lines of code. Clover's reports include: Tag Clouds of your entire project that compare Complexity with Coverage A TreeMap to visualise the most complex, uncovered areas of your project Fully Cross Referenced HTML view...
-
AWS SDK Plugin
The AWS SDK Plugin allows your Grails application to use the Amazon Web Services infrastructure services.
It provides simple wrapper service around the official AWS SDK
-
Spring Security REST Plugin
Implements authentication for REST APIs based on Spring Security. It uses a token-based workflow
-
Console Plugin
A web-based Groovy console for interactive runtime application management and debugging
-
Restapidoc Plugin
a RESTful API documentation plugin for the Grails web application framework.
Very much inspired by Swagger API documentation, this plugin reuses the available information
of Grails Domain classes and Controllers to minimize documentation effort and to improve consistency.
-
Asset Pipeline Plugin
The Asset-Pipeline is a plugin used for managing and processing static assets in Grails applications. Asset-Pipeline functions include processing and minification of both CSS and JavaScript files. It is also capable of being extended to compile custom static assets, such as CoffeeScript.
-
SASS/SCSS Asset-Pipeline Plugin
Provides SASS/SCSS Compass support for the asset-pipeline static asset management plugin.
-
LESS Asset-Pipeline Plugin
Provides LESS support for the asset-pipeline static asset management plugin.
-
Atmosphere Meteor Plugin
This plugin incorporates the Atmosphere Framework, which includes client and server-side components for building asynchronous web applications.
-
RestApiDoc Plugin
The RestApiDoc plugin allows to document your Grails Rest API. Thanks to some Annotations (@), you will be ready to build a full API report (with a playground to perform test request). The plugin is based on
-
Groovy Template Grails Asset Pipeline Plugin
Provides Groovy Template support (including Grails Config access) to asset pipeline js/css files
-
Plugin Bootstrap CSS framework resource files
Provides Bootstrap CSS framework resour
-
Spring Security Core Plugin
Spring Security Core plugin
-
Joda-Time Plugin
Joda Time integration for Grails
-
Api Toolkit
The Grails API Toolkit is a complete set of API tools and an API abstraction layer that automates alot of the tasks needed to build your API like api docs, real time notifications / webhooks, generated headers, responsive content type and more. This also abstracts the API away from the Controller/model with a more universal API Object that can be defined with roles, rules and definitions for handling the request and response at the front controller.
-
Cucumber Plugin
Test your Grails apps with Cucumber
-
Easygrid Plugin
Provides a declarative way of defining Data Grids.
It works currently with jqGrid, google visualization and jquery dataTables.
Out of the box it provides sorting, filtering, exporting and inline edit just by declaring a grid in a controller and adding a tag to your gsp.
It also provides a powerful selection widget ( a direct replacement for drop-boxes )
-
Karma Test Runner Plugin
Runs javascript unit or e2e tests with karma. Provides a test type "javascript" which can be run in any test phase.
-
Criteria Js Plugin
GORM criteria for javascript
-
CXF plug-in for Grails
Brings easy exposure of service and endpoint classes as Apache CXF SOAP Services to Grails.
-
Spud Blog Plugin
Provides Blog / News functionality for Spud
-
REST Client Builder Plugin
Grails REST Client Builder Plugin
-
Cache Plugin
Grails Cache Plugin
Interesting Tweets
-
@epragt
Some love for #grailsfw #asset plugin from #JetBrains would be great! #manifest, #syntaxhighlight, #browse
-
@gradleplugins
calling all #gradle plugin authors: please submit your plugins to http://plugins.gradle.org/
-
@ilopmar
With #Grailsfw 2.4 support!! /cc @alotor
RT @grailsplugins: Grails Postgresql Extensions Plugin 4.0.0 released: http://kcy.me/yehi
-
@rfletcherEW
Using
listA.sort() == listB.sort()
feels clunky but works
-
@ivan_stefanov
"Imperative style feels like giving instructions to a
toddler. Functional style feels like communicating
with responsible adult" @venkat_s
-
@tednaleid
grails test wat!?:
assert !new MyController().is(new MyController())
fails…grails has overridden new on controllers to return a singleton?
-
@marcoVermeulen
Great example of how to use #springboot with oauth for bearer token authentication. https://github.com/royclarkson/spring-rest-service-oauth
-
@ratpackweb
Post from Roberto Guerra on rendering Groovy templates: http://blog.stumblingoncode.com/posts/2014-07-11-ratpack-templates.html
-
@saschaklein
Successfully prototyped a GroovyBuilder for Android - Hello World App works.
Time to refactor and fill content #groovylang #android
-
@epragt
On my @digitalocean $10 box, my current #grailsfw application does 62 requests per second, response time 700 ms. That's a great start!
-
@glaforge
A dozen pull requests in a day to improve the #groovylang website. I love this community! Thank you! :-)
-
@tednaleid
curious how others are using grails asset-pipeline with angular html templates, submitted issue with our solution https://github.com/bertramdev/asset-pipeline/issues/119
-
@GeekOut_ee
#Spring Boot seriously speeds up your development process. You can see it in action with @starbuxman at #GeekOutUK http://uk.geekout.ee
-
@aalmiray
@CedricChampeau got one of those lovely [at]CompileStatic puzzles for you (groovy 2.3.4) https://gist.github.com/aalmiray/62702bf554bf8c99f9e8 https://github.com/canoo/open-dolphin/commit/fd81119b8dfc158ef63dc57282c08aea671e89ee#diff-22c8c2b1a26cd7f5bedc95c13c8cbed9L110
-
@glaforge
If you're running a #groovylang user group, please add the details to the future Groovy website here: http://beta.groovy-lang.org/usergroups.html
-
@davydotcom
Asset-pipeline house cleaning successful!. All your PR's should be merged :)
-
@springcentral
Never heard of Spring Boot? 2 sec definition: automatic, not programmatic - on or off the cloud #java #groovy #cloudfoundry #inanutshell
-
@ratpackweb
New example app using GStorm for persistence from David Birtwell: https://github.com/dbirtwell/trackmystuff_ratpack_with_db
-
@ErinWith2Ls
#Gr8WorkshopTC finished, I deem it a success. Beginner track attendees-- I'm planning a follow-up session to finish the #Grails session
-
@JennStrater
Intro to groovy slides from @Gr8Ladies @gr8workshop #gr8workshoptc https://speakerdeck.com/jlstrater/groovy-as-a-scripting-language
-
@pledbrook
#lazybones just hit 100 stars on GitHub - very happily surprised!
-
@epragt
Lots of bugfixing in the new Grails 2.4.2 release. Kudos to the #grailsfw team! https://grails.org/2.4.2+Release+Notes
-
@tomaslin
Good read on Immutable Infrastructure - http://blog.codeship.io/2013/09/06/the-codeship-workflow-part-4-immutable-infrastructure.html
-
@DailyGrailsTip
Spring IO is a cohesive platform that ties #grailsfw and #groovylang with the rest of the Spring ecosystem - https://spring.io/platform
-
@danveloper
"Safety reference", "null safe", "safe navigation" ... Doesn't seem to be consensus on what "?." is called in #groovylang
-
@CedricChampeau
All #groovylang javadoc/groovydoc/gdk APIs are now online. http://bit.ly/1nH1CbV ex for 1.8.7: http://bit.ly/1nH1tp1
Conferences and meetups
GR8conf US, Minneapolis - USA, July 28th-29th, 2014.