Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 19 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,25 @@
# Airbrake Plugin for Grails
# Airbrake Plugin for Grails 3.1.4 > *

This is the notifier plugin for integrating grails apps with [Airbrake](http://airbrake.io).

When an uncaught exception occurs, Airbrake will POST the relevant data to the Airbrake server specified in your environment.

## Installation & Configuration

Add the following to your `BuildConfig.groovy`
Add the following to your `build.gradle`

```
compile ":airbrake:0.9.4"
repositories {
...
maven { url "http://dl.bintray.com/marcatriflmedia/plugins" }
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what is this?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just packaged the plugin on my repo for testing purpose on my servers. It was easier than building the plugin on each of them. Of course it can be reversed.
Again, i'm sorry if i made some mistakes here and there... I'm not used to github, it's the first time i use it so feel free to change whatever you want...

}
```

```
compile "grails.plugins:airbrake-grails-3.1:1.0.2"
```

Once the plugin is installed, you need to provide your Api Key in `Config.groovy` file:
Once the plugin is installed, you need to provide your Api Key in `application.groovy` file:

```groovy
grails.plugins.airbrake.apiKey = 'YOUR_API_KEY'
Expand Down Expand Up @@ -83,7 +90,7 @@ grails.plugins.airbrake.excludes
```

### Enabling/Disabling Notifications
By default all errors are sent to Airbrake. However, you can disable error notifications (essentially disabling the plugin) by setting `grails.plugins.airbrake.enabled = false`. For example to disable error notificaitons in development and test environments you might have the following in `Config.groovy`:
By default all errors are sent to Airbrake. However, you can disable error notifications (essentially disabling the plugin) by setting `grails.plugins.airbrake.enabled = false`. For example to disable error notificaitons in development and test environments you might have the following in `application.groovy`:

```groovy
grails.plugins.airbrake.apiKey = 'YOUR_API_KEY'
Expand Down Expand Up @@ -128,7 +135,7 @@ grails.plugins.airbrake.env = grails.util.Environment.current.name[0..0] // Airb

By default only uncaught errors or errors logged with an exception are reported to Airbrake. It is often convenient to loosen that restriction so that all messages logged at the `Error` level are reported to Airbrake. This often most useful in `src/java` or `src/groovy` classes that can more easily have a log4j logger than get accees to the dependency injected `airbrakeService`.

With the following line in `Config.groovy`:
With the following line in `application.groovy`:

```groovy
grails.plugins.airbrake.includeEventsWithoutExceptions = true
Expand Down Expand Up @@ -225,7 +232,7 @@ This configuration takes a closure with two parameters the `Notice` to send and
This plugin does not introduce a default choice for processing notices asynchronously. You should choose a method that suits your application.
You could just create a new thread or use a scheduler/queuing plugin such as [Quartz](http://grails.org/plugin/quartz) or [Jesque](http://grails.org/plugin/jesque)

For example if you are using the Quartz plugin you can send notifications asynchronously using the following setting in `Config.groovy`
For example if you are using the Quartz plugin you can send notifications asynchronously using the following setting in `application.groovy`

```groovy
grails.plugins.airbrake.async = { notice, grailsApplication ->
Expand All @@ -250,7 +257,7 @@ class AirbrakeNotifyJob {

### Stack Trace Filtering
By default all stack traces are filtered using an instance of `org.codehaus.groovy.grails.exceptions.DefaultStackTraceFilterer` to remove common Grails and java packages.
To provide custom stack trace filtering simple configure an instance of a class that implements the interface `org.codehaus.groovy.grails.exceptions.StackTraceFilterer` in `Config.groovy`
To provide custom stack trace filtering simple configure an instance of a class that implements the interface `org.codehaus.groovy.grails.exceptions.StackTraceFilterer` in `application.groovy`

```groovy
grails.plugins.airbrake.stackTraceFilterer = new MyCustomStackTraceFilterer()
Expand All @@ -265,6 +272,10 @@ A backport to Grails 2.2 is available on the [grails-2.2 branch] (https://github

## Release Notes

* 1.0.2 - 2016/04/11
* Fix AirbrakeAppender for Grails 3.1.4.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do we need to minor releases?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess not necessarily

* 1.0.1 - 2016/04/11
* Support for Grails 3.1.4.
* 1.0.0.RC1 - 2015/07/27
* Support for Grails 3.0. #40
* 0.9.4 - 2013/06/25
Expand Down
82 changes: 33 additions & 49 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -11,38 +11,22 @@ buildscript {
}
}

plugins {
id "io.spring.dependency-management" version "0.5.2.RELEASE"
id "com.jfrog.bintray" version "1.2"
}

version "1.0.0.RC1"
group "org.grails.plugins"
//ext.isReleaseVersion = !version.endsWith("SNAPSHOT")
version "1.0.2"
group "grails.plugins"

apply plugin: 'maven-publish'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: "spring-boot"
apply plugin: "org.grails.grails-plugin"
apply plugin: "org.grails.grails-gsp"
// Used for publishing to central repository, remove if not needed
apply from:'https://raw.githubusercontent.com/grails/grails-profile-repository/master/profiles/plugin/templates/grailsCentralPublishing.gradle'
apply from:'https://raw.githubusercontent.com/grails/grails-profile-repository/master/profiles/plugin/templates/bintrayPublishing.gradle'
apply plugin:"eclipse"
apply plugin:"idea"
apply plugin:"org.grails.grails-plugin"
apply plugin:"org.grails.grails-plugin-publish"
apply plugin:"org.grails.grails-gsp"

ext {
grailsVersion = project.grailsVersion
gradleWrapperVersion = project.gradleWrapperVersion
}

sourceCompatibility = 1.7
targetCompatibility = 1.7


repositories {
mavenLocal()
mavenCentral()
jcenter()
maven { url "https://repo.grails.org/grails/core" }
}

Expand All @@ -54,37 +38,37 @@ dependencyManagement {
}

dependencies {
provided 'org.springframework.boot:spring-boot-starter-logging'
provided "org.springframework.boot:spring-boot-starter-actuator"
provided "org.springframework.boot:spring-boot-autoconfigure"
provided "org.springframework.boot:spring-boot-starter-tomcat"

provided "org.grails:grails-web-boot"
provided "org.grails:grails-dependencies"
provided 'javax.servlet:javax.servlet-api:3.1.0'

testCompile "org.grails:grails-plugin-testing"

compile "org.springframework.boot:spring-boot-starter-logging"
compile "org.springframework.boot:spring-boot-autoconfigure"
compile "org.grails:grails-core"
compile "org.springframework.boot:spring-boot-starter-actuator"
compile "org.springframework.boot:spring-boot-starter-tomcat"
compile "org.grails:grails-dependencies"
compile "org.grails:grails-web-boot"
compile "org.grails.plugins:cache"
compile "org.grails.plugins:scaffolding"
console "org.grails:grails-console"
profile "org.grails.profiles:web-plugin:3.1.4"
provided "org.grails:grails-plugin-services"
provided "org.grails:grails-plugin-domain-class"
testCompile "org.grails:grails-plugin-testing"
testCompile "org.grails.plugins:geb"
testRuntime "org.seleniumhq.selenium:selenium-htmlunit-driver:2.47.1"
testRuntime "net.sourceforge.htmlunit:htmlunit:2.18"
}

task wrapper(type: Wrapper) {
gradleVersion = gradleWrapperVersion
}

bintray {
pkg {
userOrg = ''
name = 'airbrake-grails'
desc = 'Airbrake Client for Grails'
websiteUrl = 'https://github.com/cavneb/airbrake-grails'
issueTrackerUrl = 'https://github.com/cavneb/airbrake-grails/issues'
vcsUrl = 'https://github.com/cavneb/airbrake-grails'
licenses = ['Apache-2.0']
version {
attributes = ['grails-plugin': "airbrake-grails"]
name = project.version
}
publicDownloadNumbers = true
grailsPublish {
// TODO: Provide values here
user = ''
key = ''
githubSlug = 'foo/bar'
license {
name = 'Apache-2.0'
}
title = "Airbrake-3.1"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we need the Grails version in the title or description.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree

desc = "Grails Airbrake plugin compatible with version 3.1.4 > *"
developers = [marcatriflmedia:"Marc-Emmanuel Ramage"]
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The publish config can be removed/replaced... It was for my own usage only.

}
4 changes: 2 additions & 2 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
grailsVersion=3.0.3
gradleWrapperVersion=2.3
grailsVersion=3.1.4
gradleWrapperVersion=2.9
Binary file modified gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
4 changes: 2 additions & 2 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#Wed Feb 04 17:05:29 CST 2015
#Mon Apr 11 02:22:43 CEST 2016
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.3-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-2.9-all.zip
10 changes: 3 additions & 7 deletions gradlew

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading