Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@jurberg
jurberg / CleanTestApp.groovy
Created October 18, 2012 00:46
Grails clean-test-app script
includeTargets << grailsScript("_GrailsClean")
includeTargets << grailsScript("RefreshDependencies")
includeTargets << grailsScript("TestApp")
target(cleanTestApp: "Clean, refresh dependencies, then test app") {
depends(cleanAll, refreshDependencies, 'default')
}
setDefaultTarget("cleanTestApp")
@jurberg
jurberg / expose-jmx.groovy
Created October 30, 2012 02:38
Exposing a few methods using the Grails JMX plugin
class MyService {
static expose = ['jmx']
static jmxmethods = ['getTimeout', 'setTimeout']
static jmxexpose = ['excludeMethods':
MyService.metaClass.methods*.name.findAll{
!jmxmethods.contains(it)
}.join(',')]
int timeout
@jurberg
jurberg / XmlToFlatFile.groovy
Created November 11, 2012 20:07
Convert XML to Flat File
def xmlToFlatFile(xml, tag, mapping) {
def flatFile = new StringBuffer()
xml[tag].each { row ->
mapping.each { col ->
col.closure.delegate = [(tag): row]
def result = col.closure() ?: ''
flatFile << result
.trim()
.padRight(col.length)
.substring(0, col.length)
@jurberg
jurberg / XmlToFlatFileData.groovy
Created November 11, 2012 20:11
Convert XML To Flat File Test Data
def data = '''<?xml version="1.0"?>
<catalog>
<book id="bk101">
<author>Gambardella, Matthew</author>
<title>XML Developer's Guide</title>
<genre>Computer</genre>
<price>44.95</price>
<publish_date>2000-10-01</publish_date>
</book>
<book id="bk102">
@jurberg
jurberg / XmlToFlatFileTest.groovy
Created November 11, 2012 20:12
Convert XML to Flat File Test
def sep = System.getProperty('line.separator')
def expected =
"bk101Gambardella Matthew " + sep +
"bk102Ralls Kim " + sep +
"bk103Corets Eva " + sep
void testParsing() {
def books = new XmlSlurper().parseText(data)
assertEquals expected, xmlToFlatFile(books, 'book', mapping)
}
@jurberg
jurberg / XmlToFlatFileMapping.groovy
Created November 11, 2012 21:09
Convert XML to Flat File Mapping
def mapping = [[closure: { book.@id.text() }, length: 5],
[closure: { book.author.text().split(',')[0] }, length: 15],
[closure: { book.author.text().split(',')[1] }, length: 10]]
@jurberg
jurberg / drop_constraints.sql
Created November 28, 2012 02:14
Drop all table constraints in Oracle
-- Drop all table constraints:
BEGIN
FOR c IN
(SELECT c.owner, c.table_name, c.constraint_name
FROM user_constraints c, user_tables t
WHERE c.table_name = t.table_name
AND c.status = 'ENABLED'
ORDER BY c.constraint_type DESC)
LOOP
dbms_utility.exec_ddl_statement('alter table "' || c.owner || '"."' || c.table_name || '" disable constraint ' || c.constraint_name);
@jurberg
jurberg / GenerateSources.groovy
Created November 28, 2012 02:41
Groovy script to generate JAXB classes from an XSD
// Add the following to BuildConfig.groovy:
// build('com.sun.xml.bind:jaxb-xjc:2.1')
// build('com.sun.xml.bind:jaxb-impl:2.1')
target('generateSources': "Generate JAXB classes from a schema") {
def classpath = grailsSettings
.getBuildDependencies()
.join(System.getProperty("path.separator"))
Ant.taskdef(name: "xjc",
classname: "com.sun.tools.xjc.XJCTask",
classpath: classpath)
@jurberg
jurberg / Jaxb-no-jxc.groovy
Created December 2, 2012 01:19
Generate JAXB classes without jaxb-jxc on your classpath
Ant.java(classname: "com.sun.tools.internal.xjc.XJCFacade") {
arg(value: "-d")
arg(value: "src/java")
arg(value: "-p")
arg(value: "com.microsoft.books")
arg(value: "etc/schema/books.xsd")
}
@jurberg
jurberg / eventWebXmlEnd.groovy
Created January 24, 2013 04:02
Adding a context-param to the beginning a Grails app web.xml
eventWebXmlEnd = { String tmpfile ->
def contextParam = '''<context-param>
<description>Spring Expression Language Support</description>
<param-name>springJspExpressionSupport</param-name>
<param-value>false</param-value>
</context-param>'''
def root = new XmlParser().parse(webXmlFile)
root.children().add(0, new XmlParser().parseText(contextParam))
new XmlNodePrinter(new PrintWriter(new FileWriter(webXmlFile))).print(root)
}