Plugin - Grails Database Migration Plugin. Plugin - JAlarms plugin for Grails. Send application notifications using a wide range of protocols via JAlarms.
This plugin adds a bean alarmer of type com.solab.alarms.AlarmSender to the application's ApplicationContext. Alarm channels can be configured as any other beans would, inside the src/spring/resources.groovy file. It will also inject the following dynamic methods to controllers and services by default: sendAlarm(String msg) - sends an alarm to all configured channelssendAlarm(String msg, String source) - sends an alarm to all configured channels that have source configured Dynamic method injection Dynamic methods will be added to controllers and services by default.
Grails.jalarms.injectInto = ["Controller", "Service", "Routes"] Refactr blog on software development, design, agile processes, and business. Before we dive into gotchas, let me start by saying that the Grails Database Migration plugin is great.
It’s usually the second plugin I install on any new project, right after the Spring Security Core plugin. You’ll likely never run into the problems I describe below, but I did and learned something in the process so I figured I’d pass it along in hopes it saves someone a bit of debugging time. Setting the Stage: BeersDB It’s the start of Iteration 2 on our fictional BeersDB project, a simple Grails app for tracking and rating different beers. In Iteration 1 we came up with a simple domain class to model the relevant information about a Beer and some real-world data for testing the app: class Beer { enum Style { GERMAN_ALE, GERMAN_LAGER, BRITISH_ALE, BRITISH_LAGER, AMERICAN_ALE, AMERICAN_LAGER, OTHER } String name Style style }
Database Migration Plugin 1.0. Plugin - WebXmlConfig. Add additional Features to your web.xml, such as Filters, Config Listeners or Context Parameter definitions.
Plugin - geb. Running Geb specs using a separate driver profile to test mobile views in Grails. We’re currently building mobile views for our grails application using jQuery mobile and the Spring mobile plugin.
As such, we wanted to add a set of mobile tests in Geb to run in parallel with our application’s functional tests. In this post, I show how you can set up a separate webdriver profile for a subset of your spock/geb functional tests. In order to specify a separate driver profile ( we’re setting an iPhone user agent in our tests ), we needed a way to mark the new tests we’re creating to use this separate profile. Marcin Erdman suggested in the Geb mailing list that it is possible to use the Geb Configuration mechanism to accomplish this, but you would end up creating a new driver for each test, which we wanted to avoid. After a little bit of tweaking, we came up with the following base class for our tests to extend.
Geb - Very Groovy Browser Automation. UiPerformance Plugin. The UI Performance Plugin addresses some of the 14 rules from Steve Souders and the Yahoo performance team.
Starting with version 1.2 the plugin is enabled in all environments, including development. See the discussion below about the 'enabled' config attribute for how to disable it for development. Installation. Springcache Plugin. Standalone App Runner. Monitor your Quartz jobs. JavaMelody Grails Plugin. Javamelody - monitoring of JavaEE applications. The goal of JavaMelody is to monitor Java or Java EE application servers in QA and production environments.
It is not a tool to simulate requests from users, it is a tool to measure and calculate statistics on real operation of an application depending on the usage of the application by users. JavaMelody is opensource (ASL) and production ready: in production in an application of 25 person years. JavaMelody is easy to integrate in most applications and is lightweight (no profiling and no database). JavaMelody is mainly based on statistics of requests and on evolution charts. It allows to improve applications in QA and production and helps to: give facts about the average response times and number of executions make decisions when trends are bad, before problems become too serious optimize based on the more limiting response times find the root causes of response times verify the real improvement after optimizations. Blackbird JavaScript Logging.
Test Code Coverage Plugin. This plugin will generate code coverage reports using Cobertura.
Currently Grails 2.3 Forked mode is not supported. Please create issues in JIRA if you encounter problems. Grails & Hudson / Jenkins: Monitoring Build Status. There are a number of ways you can monitor the progress of your Grails build: using the Hudson / Jenkins web app; or leveraging the API: from your IDE, bespoke API clients or even your enterprise monitoring client.
We’ll look at all of them here and build a simple Grails taglib to display build status in the ‘Application Status’ panel. This is the 5th installment in the series, but the first since the announcement of the new project name of Jenkins (see Kohsuke’s post here). Note: The particular Hudson instance I’ll be using for this post was set up with a single job for my presentation at the London GGUG and has the Green Balls plugin. Hudson / Jenkins View Plugins There are several plugins that provide ‘information radiators’ which make very useful wall displays for agile teams. e.g.radiator view extreme feedback IDE plugins For developers, being able to see the build status within the IDE can be very useful (e.g. if deciding whether to check out the HEAD revision on a large project). 1. " Grails & Hudson / Jenkins Part 6: Sonar. Sonar is an open source code quality management tool – this requested addition to the Grails & Hudson / Jenkins series gives a quick run through of how to set up Sonar to analyse Grails code from a Jenkins job.
Sonar Download the latest version of Sonar (currently 2.9) from The installation instructions are here, but for speed of evaluation you can just unpack the zip. Before we start up Sonar, we’ll need to install the Groovy support. Grails & Hudson Part 3: Testing. C.R.A.P. metrics for Grails. This is a quick how-to post on getting Change Risk Anti-Patterns statistics for your Grails code.
Firstly thanks to Jeff Winkler for bringing the new GMetrics v0.5 CrapMetric to my attention and thanks to Chris Mair for his great work on GMetrics (and Codenarc). What is Change Risk Anti-Patterns? It is a method to analyze and predict the amount of effort, pain, and time required to maintain an existing body of code.
CodeNarc Plugin. Runs CodeNarc static analysis rules for Groovy source. The CodeNarc Plugin provides static code analysis for Groovy code. It uses the CodeNarc library. CodeNarc: Bugs. Grails & Hudson part 1: CodeNarc. Grails has a rich plugin eco-system with over 400 hundred plugins – so it’s easy to miss something useful. If you’re serious about software craftsmanship, then using static code analysis tools should be part of your quality regime as it gives further insight into the code base (and if you insist, yes it’ll help with your Technical Debt management).
CodeNarc provides static code analysis for Groovy and the CodeNarc plugin for Grails allows you to perform this analysis with the “grails codenarc” script. Behind the scenes this uses the CodeNarc ant task and settings from grails-app/conf/Config.groovy and produces an HTML report by default. Until recently, if you used the codenarc target within a continuous integration server such as Hudson – then the HTML report would be generated and sit in the workspace waiting for a diligent developer to check it.
You can imagine how often that happens in practice with all the other demands of a project! You can also get a breakdown by priority: User - Using CodeNarc. CodeNarc - CodeNarc - Develop. Groovy CodeNarc: How to Write a Rule. Grails Activiti Plugin - Enabled Activiti BPM Suite support for Grails. The Grails Activiti Evolution - Waterfox. In the end of April, I published a message to the Grails Activiti plugin's discussion forum, the plugin development progress will shift to low gear. An active plugin user from US semiconductor firm saw my message and contacted me for a consulting work opportunity related to the plugin, unluckily the deal was not materialized.
So, my priority for development of the plugin remain the same. I would like to see the plugin keep evolving, even I can't promise I will be always active in development and super responsive in community support, you will see me there :). Hence, I write about the future of the Grails Activiti I envisioned in this blog post. You can assume it is evolution roadmap of the plugin, your feedback and comments are very much appreciated.
Business Process Management 101 What is Business Process Management (hereafter called "BPM")? What is Missing in Activiti BPM? Hibernate Filter. This plugin integrates hibernate filters with Grails. The plugin now works with 1.3 and 2.0+ This plugin currently does not work with WebFlow. I am working on the issue. Overview. Spring Security Core Plugin. ACL support for the Spring Security plugin. Bean Fields. Smart rendering of fields of domain and command objects. Plugins Portal.