<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5372376616325579954</id><updated>2026-03-26T16:19:50.401-04:00</updated><category term="grails"/><category term="GORM"/><category term="grails ajax"/><category term="integration-tests"/><category term="introduction"/><category term="java"/><category term="tomcat"/><category term="validation"/><title type='text'>Explorations in software</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://krollrich.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5372376616325579954/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://krollrich.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Rich Kroll</name><uri>http://www.blogger.com/profile/16813942547195314076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzaAKCuZ0wR45dBmMhdiYvUo3uk-A9KbZXFoD99iUiB-JAGzCjlHy83mQt6-1AZDtY0XHXJESCrmsrv8c4tSBmBgwd9RZrl3Fv-Gug7uvWQKy63KQQZBQFvKprRa0n1A/s220/me.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>6</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5372376616325579954.post-6350697173591838989</id><published>2009-12-17T15:28:00.005-05:00</published><updated>2009-12-18T09:41:54.248-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="grails"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="tomcat"/><title type='text'>Run a Java web application within grails</title><summary type="text">Ever needed to run an existing java web application side by side with your grails project?  I found myself in exactly that position this week, and discovered that it (like most things in grails) was rather simple to accomplish.  Considering I work in a predominately Java environment, I often need to run a java web application side by side with my grails work.  To date, I would simply run grails </summary><link rel='replies' type='application/atom+xml' href='http://krollrich.blogspot.com/feeds/6350697173591838989/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://krollrich.blogspot.com/2009/12/run-java-web-application-within-grails.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5372376616325579954/posts/default/6350697173591838989'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5372376616325579954/posts/default/6350697173591838989'/><link rel='alternate' type='text/html' href='http://krollrich.blogspot.com/2009/12/run-java-web-application-within-grails.html' title='Run a Java web application within grails'/><author><name>Rich Kroll</name><uri>http://www.blogger.com/profile/16813942547195314076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzaAKCuZ0wR45dBmMhdiYvUo3uk-A9KbZXFoD99iUiB-JAGzCjlHy83mQt6-1AZDtY0XHXJESCrmsrv8c4tSBmBgwd9RZrl3Fv-Gug7uvWQKy63KQQZBQFvKprRa0n1A/s220/me.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5372376616325579954.post-4587244577997644332</id><published>2009-11-27T13:37:00.005-05:00</published><updated>2009-11-27T13:44:50.108-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="grails ajax"/><title type='text'>Easy in-place delete with ajax and grails</title><summary type="text">I was recently asked to implement new delete functionality on a list of items.  The catch of this request was that the removal of an item would be done without reloading the page.  This required me to write a boatload of code in both JavaScript and Java to successfully implement.  After this somewhat painful experience, I wanted to see how elegantly this experience would be handled in grails.  I </summary><link rel='replies' type='application/atom+xml' href='http://krollrich.blogspot.com/feeds/4587244577997644332/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://krollrich.blogspot.com/2009/11/easy-in-place-delete-with-ajax-and.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5372376616325579954/posts/default/4587244577997644332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5372376616325579954/posts/default/4587244577997644332'/><link rel='alternate' type='text/html' href='http://krollrich.blogspot.com/2009/11/easy-in-place-delete-with-ajax-and.html' title='Easy in-place delete with ajax and grails'/><author><name>Rich Kroll</name><uri>http://www.blogger.com/profile/16813942547195314076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzaAKCuZ0wR45dBmMhdiYvUo3uk-A9KbZXFoD99iUiB-JAGzCjlHy83mQt6-1AZDtY0XHXJESCrmsrv8c4tSBmBgwd9RZrl3Fv-Gug7uvWQKy63KQQZBQFvKprRa0n1A/s220/me.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5372376616325579954.post-6053724126631359270</id><published>2009-11-19T10:38:00.001-05:00</published><updated>2009-11-19T10:38:44.645-05:00</updated><title type='text'>Invoke test classes from groovy</title><summary type="text">Just a quick note, mostly for myself.  If a unit test extends GroovyTestCase, it can be run from groovy.

class GroovyTest extends GroovyTestCase {
    void testString {
        assertEquals &#39;Test failed!&#39;, &quot;Test&quot;, &quot;Test&quot;
    }
}

To execute this test, run the following command:

$ groovy GroovyTest.groovy
 Time: 0.125
 OK (1 test)
</summary><link rel='replies' type='application/atom+xml' href='http://krollrich.blogspot.com/feeds/6053724126631359270/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://krollrich.blogspot.com/2009/11/invoke-test-classes-from-groovy.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5372376616325579954/posts/default/6053724126631359270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5372376616325579954/posts/default/6053724126631359270'/><link rel='alternate' type='text/html' href='http://krollrich.blogspot.com/2009/11/invoke-test-classes-from-groovy.html' title='Invoke test classes from groovy'/><author><name>Rich Kroll</name><uri>http://www.blogger.com/profile/16813942547195314076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzaAKCuZ0wR45dBmMhdiYvUo3uk-A9KbZXFoD99iUiB-JAGzCjlHy83mQt6-1AZDtY0XHXJESCrmsrv8c4tSBmBgwd9RZrl3Fv-Gug7uvWQKy63KQQZBQFvKprRa0n1A/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5372376616325579954.post-1060088715166924108</id><published>2009-11-13T15:05:00.001-05:00</published><updated>2009-11-13T15:09:14.310-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="grails"/><category scheme="http://www.blogger.com/atom/ns#" term="validation"/><title type='text'>Grails, validation, constraints, oh my!</title><summary type="text">I must admit that I am continually impressed by the ease with which grails makes previously tedious tasks simple and easy.  In my current project I found it necessary to enforce a constraint that a date be in the future.  My first reaction was along the lines of &quot;no problem, I&#39;ll just validate the data in the business tier&quot;, and then luckily discovered a much more elegant solution in grails: </summary><link rel='replies' type='application/atom+xml' href='http://krollrich.blogspot.com/feeds/1060088715166924108/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://krollrich.blogspot.com/2009/11/grails-validation-constraints-oh-my.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5372376616325579954/posts/default/1060088715166924108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5372376616325579954/posts/default/1060088715166924108'/><link rel='alternate' type='text/html' href='http://krollrich.blogspot.com/2009/11/grails-validation-constraints-oh-my.html' title='Grails, validation, constraints, oh my!'/><author><name>Rich Kroll</name><uri>http://www.blogger.com/profile/16813942547195314076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzaAKCuZ0wR45dBmMhdiYvUo3uk-A9KbZXFoD99iUiB-JAGzCjlHy83mQt6-1AZDtY0XHXJESCrmsrv8c4tSBmBgwd9RZrl3Fv-Gug7uvWQKy63KQQZBQFvKprRa0n1A/s220/me.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5372376616325579954.post-6883293395049178862</id><published>2009-11-07T10:55:00.004-05:00</published><updated>2009-11-13T15:09:48.321-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="GORM"/><category scheme="http://www.blogger.com/atom/ns#" term="grails"/><category scheme="http://www.blogger.com/atom/ns#" term="integration-tests"/><title type='text'>Grails 1.1, integration tests, and unsaved transient instance errors</title><summary type="text">In the grails documentation, and every book on the subject you will find an example similar to:

class Author {
    static hasMany = [ books : Book ]
    String name
}

class Book {
  static belongsTo = Author
  Author author
  String title
}

The belongsTo reference ensures that saves, updates, and deletes are cascaded. All the information that I have found provides an example to save your </summary><link rel='replies' type='application/atom+xml' href='http://krollrich.blogspot.com/feeds/6883293395049178862/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://krollrich.blogspot.com/2009/11/grails-11-integration-tests-and-unsaved.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5372376616325579954/posts/default/6883293395049178862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5372376616325579954/posts/default/6883293395049178862'/><link rel='alternate' type='text/html' href='http://krollrich.blogspot.com/2009/11/grails-11-integration-tests-and-unsaved.html' title='Grails 1.1, integration tests, and unsaved transient instance errors'/><author><name>Rich Kroll</name><uri>http://www.blogger.com/profile/16813942547195314076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzaAKCuZ0wR45dBmMhdiYvUo3uk-A9KbZXFoD99iUiB-JAGzCjlHy83mQt6-1AZDtY0XHXJESCrmsrv8c4tSBmBgwd9RZrl3Fv-Gug7uvWQKy63KQQZBQFvKprRa0n1A/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5372376616325579954.post-2831501549890264953</id><published>2009-11-06T23:01:00.001-05:00</published><updated>2009-11-13T15:10:03.913-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="grails"/><category scheme="http://www.blogger.com/atom/ns#" term="introduction"/><title type='text'>The Grails journey begins</title><summary type="text">After working with ColdFusion and becoming frustrated with some of it&#39;s shortcomings, I decided to use a &quot;grown up&quot; language; Java.&amp;nbsp; It&#39;s been quite a few years since I made the leap to Java, and it has been a very interesting journey.&amp;nbsp; I have had the &quot;pleasure&quot; to work with many different frameworks, tools, and technologies.&amp;nbsp; With each I began with the same goal: to find an easier</summary><link rel='replies' type='application/atom+xml' href='http://krollrich.blogspot.com/feeds/2831501549890264953/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://krollrich.blogspot.com/2009/11/grails-journey-begins.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5372376616325579954/posts/default/2831501549890264953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5372376616325579954/posts/default/2831501549890264953'/><link rel='alternate' type='text/html' href='http://krollrich.blogspot.com/2009/11/grails-journey-begins.html' title='The Grails journey begins'/><author><name>Rich Kroll</name><uri>http://www.blogger.com/profile/16813942547195314076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzaAKCuZ0wR45dBmMhdiYvUo3uk-A9KbZXFoD99iUiB-JAGzCjlHy83mQt6-1AZDtY0XHXJESCrmsrv8c4tSBmBgwd9RZrl3Fv-Gug7uvWQKy63KQQZBQFvKprRa0n1A/s220/me.jpg'/></author><thr:total>5</thr:total></entry></feed>