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.
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.
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
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
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
A web-based Groovy console for interactive runtime application management and debugging
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
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.
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 integration for Grails
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.
Test your Grails apps with Cucumber
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
Criteria Js Plugin
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
Grails Cache Plugin
Some love for #grailsfw #asset plugin from #JetBrains would be great! #manifest, #syntaxhighlight, #browse
calling all #gradle plugin authors: please submit your plugins to http://plugins.gradle.org/
With #Grailsfw 2.4 support!! /cc @alotor
RT @grailsplugins: Grails Postgresql Extensions Plugin 4.0.0 released: http://kcy.me/yehi
listA.sort() == listB.sort()
feels clunky but works
"Imperative style feels like giving instructions to a
toddler. Functional style feels like communicating
with responsible adult" @venkat_s
grails test wat!?:
assert !new MyController().is(new MyController())
fails…grails has overridden new on controllers to return a singleton?
Great example of how to use #springboot with oauth for bearer token authentication. https://github.com/royclarkson/spring-rest-service-oauth
Post from Roberto Guerra on rendering Groovy templates: http://blog.stumblingoncode.com/posts/2014-07-11-ratpack-templates.html
Successfully prototyped a GroovyBuilder for Android - Hello World App works.
Time to refactor and fill content #groovylang #android
On my @digitalocean $10 box, my current #grailsfw application does 62 requests per second, response time 700 ms. That's a great start!
A dozen pull requests in a day to improve the #groovylang website. I love this community! Thank you! :-)
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
#Spring Boot seriously speeds up your development process. You can see it in action with @starbuxman at #GeekOutUK http://uk.geekout.ee
@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
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
Asset-pipeline house cleaning successful!. All your PR's should be merged :)
Never heard of Spring Boot? 2 sec definition: automatic, not programmatic - on or off the cloud #java #groovy #cloudfoundry #inanutshell
New example app using GStorm for persistence from David Birtwell: https://github.com/dbirtwell/trackmystuff_ratpack_with_db
#Gr8WorkshopTC finished, I deem it a success. Beginner track attendees-- I'm planning a follow-up session to finish the #Grails session
Intro to groovy slides from @Gr8Ladies @gr8workshop #gr8workshoptc https://speakerdeck.com/jlstrater/groovy-as-a-scripting-language
#lazybones just hit 100 stars on GitHub - very happily surprised!
Lots of bugfixing in the new Grails 2.4.2 release. Kudos to the #grailsfw team! https://grails.org/2.4.2+Release+Notes
Good read on Immutable Infrastructure - http://blog.codeship.io/2013/09/06/the-codeship-workflow-part-4-immutable-infrastructure.html
Spring IO is a cohesive platform that ties #grailsfw and #groovylang with the rest of the Spring ecosystem - https://spring.io/platform
"Safety reference", "null safe", "safe navigation" ... Doesn't seem to be consensus on what "?." is called in #groovylang
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
, Minneapolis - USA, July 28th-29th, 2014.