Annyce Davis

Davis Technology Consulting

  • Home
  • About Me
  • Blog
  • Courses
  • Newsletter

Migrate a Gradle Plugin from Groovy to Kotlin

April 20, 2017 by Annyce Davis

I recently migrated my Gradle Plugin from Groovy to Kotlin. It was essentially a four step process:

  1. Update the build.gradle file
  2. Modify the Project Structure
  3. Convert Groovy code to Kotlin
  4. Migrate the JUnit tests

Let’s walk through each step…

Continue Reading

Storing JSON in External EhCache Server

July 11, 2011 by Annyce Davis

If you would like to store JSON data in an external EhCache Server you would need to use either REST or SOAP calls.  The below example uses REST calls and the HTTPBuilder library.  It assumes that you have your EhCache Server running at the following location:
http://localhost:8080/ehcache/rest.

The name of the cache that I’m using in this example is just sampleCache.

def getCachedItem(key) {
def uri = "http://localhost:8080/ehcache/rest/sampleCache/"
def restClient = new RESTClient(uri)

def res
try {
res = restClient.get(path:key)
}
catch (Exception e) {
log.error("Error retrieving item from cache for this key: $key")
}

return res?.data
}

def putCachedItem(key, html) {
def url = "http://localhost:8080/ehcache/rest/sampleCache/"

try {
def json = html as grails.converters.JSON

def http = new HTTPBuilder(url)
http.request(Method.PUT) { req ->
uri.path = key
send('application/json', grails.converters.JSON.parse(json?.toString()))

response.'201' = { resp ->
log.info("success in adding item to cache: ${resp.status}")
}

response.success = { resp, object ->
log.info("success in adding item to cache: ${resp.status}")
}

response.failure = { resp ->
log.error("error adding item to cache: ${resp.statusLine}")
}
}
}
catch (Exception e) {
log.error("Error setting the cache for this key: $key")
}
}

Mocking Hibernate Criteria in Grails App

January 14, 2010 by Annyce Davis

Testing is always a sore spot in many applications, and Grails is no exception, but mocking objects and methods is actually not as bad as you think. Here is a simple way to mock the Hibernate Criteria object that is available from Grails domain classes.

Example:
If this is the code that you want to test, and for this particular test you want to have no results, this how you would mock it out.

Code:

Test Code:

The key piece of code is the creation of the bookCriteria object, in this case it is a member of the test class that is why it is not declared locally in the function. However, you will notice that the bookCriteria is simply a HashMap that returns a empty list for the ‘list’ parameter. This way when testing ‘c.list’ a empty list will be returned. Simple hunh!

Using ConfigSlurper Scripts in Grails

October 21, 2009 by Annyce Davis

In Java .properties files are used to configure an application. You can use similar notation to configure Grails applications as well.
A sample appName-config.groovy file that sets up the configuration items that we need.


abtesting {
amazon = new Double(0.5)
ebay = new Double(0.5)
}

A sample function in a controller that will access the configuration properties and modify them.


def abtesting = {
def propValue = grailsApplication.config.abtesting.amazon
println propValue


grailsApplication.config.abtesting.amazon = new Double(1.0)
println grailsApplication.config.abtesting.amazon
}

This code produces the following output:
>> 0.5
>> 1.0

Next Page »

Follow Me

  • Bluesky

Categories

  • Android (60)
  • Career (5)
  • Communication (4)
  • Flutter (1)
  • Git (4)
  • Gradle (4)
  • Grails (23)
  • iOS (1)
  • Java (8)
  • JavaScript (6)
  • Kotlin (17)
  • Life (5)
  • Public Speaking (26)
  • Revenue (2)
  • RxJava (1)
  • Software Development (13)
  • Twitter (3)
  • Uncategorized (11)
  • Video Course (5)

Follow Me

  • Bluesky

Copyright © 2025 · All Rights Reserved · Log in