Skip to content

Instantly share code, notes, and snippets.

@deigote
deigote / GrailsCheckBeanConfigurationAtRuntime.groovy
Last active August 29, 2015 14:01
Grails - Checking which beans are available and how are they configured
def grailsApplication // Injected by default in controllers, accessible as a regular bean elsewhere
assert grailsApplication.mainContext.getBeanDefinition('sessionFactory') instanceof org.springframework.beans.factory.support.GenericBeanDefinition
// Have I any non-singleton bean ?
grailsApplication.mainContext.getBeanDefinitionNames().any {
!grailsApplication.mainContext.getBeanDefinition(it).singleton
}
@deigote
deigote / modules_config.fish
Created May 19, 2014 17:14
An example of the modules definitions for using fish-modules
module "git@github.com:deigote/fish-common.git" fish-common
module "git@github.com:deigote/gh-issues-flow.git" gh-issues-flow
@deigote
deigote / update-fish-modules.sh
Created May 19, 2014 17:16
Updating your fish modules when using fish-modules
~/.config/fish/fish-modules/update_modules.fish
@deigote
deigote / config.fish
Created May 19, 2014 17:17
Making your fish modules available to each fish shell with fish-modules
# Some other fish configuration goes here
# Fish modules
source $HOME/.config/fish/fish-modules/add_modules_to_path.fish
@deigote
deigote / add-fish-modules-as-git-submodule.sh
Created May 19, 2014 17:18
Adding fish-modules as a submodule of your fish config repo
cd $HOME/.config/fish
git submodule add git@github.com:deigote/fish-modules.git fish-modules
git ci fish-modules .gitmodules -m 'Added fish-modules as a submodule for convenience'
@deigote
deigote / groovy_closure_params_generics.groovy
Created May 30, 2014 10:24
Trying to use type checked closures in Groovy, including their parameters
private static File findOuputFile() {
this.<File>logAndReturn('info', { File outputFile -> "Using '$outputFile' as output file" }) {
new File("${System.getProperty('outputDir')}/memolo.html")
}
}
private static <O> O logAndReturn(
String logLevel,
@ClosureParams(ThirdParam.FirstGenericType.class) Closure<String> stringMessageGenerator,
Closure<O> resultProducer
@deigote
deigote / ExpandoWithDelegate.groovy
Created June 10, 2014 14:17
Groovy - ExpandoWithDelegate
class ExpandoWithDelegate {
private delegate
private Map<String, Closure> mockedMethods
ExpandoWithDelegate(delegate) {
this.delegate = delegate
this.mockedMethods = [:]
}
@deigote
deigote / GrailsHibernateSafeDomainClassPropertyEditor.groovy
Last active August 29, 2015 14:04
Grails - Hibernate-safe domain class property editor
import static org.codehaus.groovy.grails.orm.hibernate.cfg.GrailsHibernateUtil.unwrapIfProxy
public class DomainClassLookupPropertyEditor extends PropertyEditorSupport {
Class domainClass
String property
Boolean doAssert = true
String getAsText() {
value."$property"
@deigote
deigote / GrailsHibernateSimpleDomainClassPropertyEditor.groovy
Last active August 29, 2015 14:04
Grails - Simple domain class property editor
public class DomainClassLookupPropertyEditor extends PropertyEditorSupport {
Class domainClass
String property
Boolean doAssert = true
String getAsText() {
value."$property"
}
@deigote
deigote / groovy
Last active August 29, 2015 14:26
Hibernate criteria: Wrong results when join + pagination
class Car {
static hasMany = [brands: Brand]
}
class Brand { }
class CarService {
def searchCars(int firstResult, int maxResults) {
Car.createCriteria().list {
createAlias('brands', 'brands', CriteriaSpecification.INNER_JOIN)